ES2875418T3 - Acceso aleatorio regional en vídeo de 360 grados - Google Patents

Acceso aleatorio regional en vídeo de 360 grados Download PDF

Info

Publication number
ES2875418T3
ES2875418T3 ES17726481T ES17726481T ES2875418T3 ES 2875418 T3 ES2875418 T3 ES 2875418T3 ES 17726481 T ES17726481 T ES 17726481T ES 17726481 T ES17726481 T ES 17726481T ES 2875418 T3 ES2875418 T3 ES 2875418T3
Authority
ES
Spain
Prior art keywords
image
region
video
regions
images
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
ES17726481T
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 ES2875418T3 publication Critical patent/ES2875418T3/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/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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • 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/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/176Methods 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 block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/68Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream
    • 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

Abstract

Un procedimiento de decodificación de datos de vídeo de 360 grados, comprendiendo el procedimiento: recibir un flujo de bits de vídeo codificado que comprende una pluralidad de imágenes codificadas de datos de vídeo de 360 grados en un orden de decodificación, en el que cada imagen respectiva de la pluralidad de imágenes comprende una pluralidad de regiones; determinar una ventana de observación actual correspondiente a un campo de visión que se vaya a visualizar, en el que la ventana de observación actual es diferente de una ventana anterior, comprendiendo el campo de visión un subconjunto de toda la región de vídeo de 360 grados representada por una primera imagen en la que, cuando la primera imagen no es una imagen de punto de acceso intraaleatorio, IRAP, y la ventana de observación actual corresponde a un campo de visión esperado, la ventana de observación actual corresponde a una o más regiones accesibles de forma aleatoria dentro de la primera imagen; buscar, dependiendo de un elemento de sintaxis que indica si una región en la primera imagen corresponde a una región accesible de forma aleatoria en una imagen que no es una imagen IRAP, para una región accesible de forma aleatoria de la primera imagen correspondiente a la ventana de observación actual, en el que una primera región es una región accesible de forma aleatoria cuando: la primera región se puede decodificar independiente de las demás regiones de la primera imagen y la primera región se puede decodificar independiente de una segunda imagen precedente a la primera imagen en el orden de decodificación; y en respuesta a determinar que la primera región en la primera imagen es una región accesible de forma aleatoria, decodificar cada bloque de vídeo en la primera región en la primera imagen independiente de cada una de las otras regiones de la primera imagen e independiente de la segunda imagen precedente a la primera imagen en el orden de decodificación y decodificar al menos un bloque de vídeo en al menos otra región de la primera imagen dependiente de la primera región o dependiente de otras regiones que son dependientes de la primera región.

Description

DESCRIPCIÓN
Acceso aleatorio regional en vídeo de 360 grados
CAMPO TÉCNICO
[0001] La divulgación se refiere a la codificación 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 personales digitales (PDA), ordenadores portátiles o de escritorio, tabletas electrónicas, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o de radio por satélite, los denominados "smartphones", dispositivos de videoconferencia, dispositivos de transmisión continua de vídeo y similares. Los dispositivos de vídeo digitales implementan técnicas de codificación de vídeo, tales como las descritas en diversos estándares incluyendo los definidos por UIT-T H.261, ISO/IEC MPEG-1 Visual, UIT-T H.262 o ISO/IEC MPEG-2 Visual, UIT-T H.263, ISO/IEC MPEG-4 Visual, UIT-T H.264 o ISO/IEC MPEG-4 AVC, incluyendo sus ampliaciones de codificación de vídeo escalable (SVC) y de codificación de vídeo multivista (MVC), y de codificación de vídeo de alta eficacia (HEVC), también conocida como UIT-T H.265 e ISO/IEC23008-2, incluyendo su ampliación de codificación escalable (es decir, codificación de vídeo escalable de alta eficacia, SHVC), su ampliación multivista (es decir, codificación de vídeo multivista de alta eficacia, MV-HEVC) y su ampliación 3D (es decir, codificación de vídeo 3D de alta eficacia, 3D-HEVC). Los dispositivos de vídeo pueden transmitir, recibir, codificar, decodificar y/o almacenar información de vídeo digital más eficazmente implementando dichas técnicas de codificación de vídeo.
[0003] Las técnicas de codificación de vídeo incluyen la predicción espacial (intraimagen) y/o la predicción temporal (interimagen) para reducir o eliminar la redundancia intrínseca en las secuencias de vídeo. En la codificación de vídeo basada en bloques, un fragmento de vídeo (por ejemplo, una trama de vídeo o una porción de una trama de vídeo) se puede particionar en bloques de vídeo, que también se pueden denominar bloques de árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un fragmento intracodificado (I) de una imagen se codifican usando predicción espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen. Los bloques de vídeo en un fragmento intercodificado (P o B) de una imagen pueden usar predicción espacial con respecto a muestras de referencia de bloques contiguos de la misma imagen o predicción temporal con respecto a muestras de referencia de otras imágenes de referencia. Las imágenes se pueden denominar tramas, y las imágenes de referencia se pueden denominar tramas de referencia.
[0004] La predicción espacial o temporal da como resultado un bloque predictivo para un bloque que se va a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original que se va a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo y con los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificación y los datos residuales. Para una mayor compresión, los datos residuales se pueden transformar desde el dominio de píxel en un dominio de transformada, dando como resultado coeficientes de transformada residuales que, a continuación, se pueden cuantificar. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, se pueden escanear para producir un vector unidimensional de coeficientes de transformada, y se puede aplicar codificación por entropía para lograr aún más compresión.
BREVE EXPLICACIÓN
[0005] En general, la divulgación de técnicas para el acceso aleatorio regional dentro de una imagen de datos de vídeo. La invención se expone en el conjunto adjunto de reivindicaciones.
[0006] Los detalles de uno o más ejemplos de la divulgación se exponen en los dibujos adjuntos y en la descripción siguiente. Otras características, objetivos y ventajas de la divulgación serán evidentes a partir de la descripción y de los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0007]
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y decodificación de vídeo de ejemplo que puede utilizar las técnicas descritas en la presente divulgación.
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo que puede implementar las técnicas descritas en la presente divulgación.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo que puede implementar las técnicas descritas en la presente divulgación.
La FIG. 4 es un diagrama conceptual que ilustra un entrelazado de ejemplo de regiones accesibles de forma aleatoria de acuerdo con una o más técnicas de la presente divulgación.
La FIG. 5 es un diagrama conceptual que ilustra secuencias de datos de vídeo para dos vistas, una vista del ojo izquierdo y una vista del ojo derecho.
La FIG. 6 es un diagrama de flujo que ilustra una técnica de ejemplo para determinar una región accesible de forma aleatoria dentro de una imagen de datos de vídeo de acuerdo con una o más técnicas descritas en la presente divulgación.
La FIG. 7 es un diagrama conceptual que ilustra un cubo de datos de vídeo de 360 grados que tiene seis caras, dividida cada una en cuatro mosaicos, para un total de veinticuatro mosaicos (o regiones).
La FIG. 8 es un diagrama conceptual que ilustra ejemplos de mosaicos opuestos y mosaicos adyacentes para un mosaico de ejemplo de la FIG. 7.
La FIG. 9 es un diagrama conceptual que ilustra una proyección de mapa de cubos de ejemplo.
La FIG. 10 es un diagrama conceptual que ilustra una proyección de mapa de cubos de ejemplo.
La FIG. 11 es un diagrama conceptual que ilustra una proyección de mapa de cubos de ejemplo.
DESCRIPCIÓN DETALLADA
[0008] En general, la presente divulgación describe técnicas relacionadas con los procedimientos de codificación y señalización para codificar una región en una secuencia de vídeo de manera que se pueda acceder de forma aleatoria a la región a partir de una imagen en particular, mientras que se pueda o no acceder de forma aleatoria a otras regiones a partir de esa imagen en particular. En otras palabras, las técnicas descritas en el presente documento pueden permitir que un codificador de vídeo codifique una imagen de modo que solo una porción de la imagen sea accesible de forma aleatoria en lugar de la imagen completa. Dicho acceso aleatorio regional se puede aplicar en aplicaciones de realidad virtual (VR) que usan decodificación de vídeo parcial y cualquier otra aplicación de vídeo en la que sea deseable acceder de forma aleatoria solo a una parte de todo el área de vídeo. Para los propósitos de la presente divulgación, la codificación no debería limitarse genéricamente a codificar o decodificar. Más bien, la codificación se usa en el presente documento como un término general que puede abarcar codificación o decodificación o tanto codificación como decodificación.
[0009] Por ejemplo, en las aplicaciones VR, cuando cambia el punto de vista del usuario, el dispositivo de codificación de vídeo debe comenzar a codificar el nuevo punto de vista localizando imágenes accesibles de forma aleatoria. Sin embargo, si el nuevo punto de vista contiene cincuenta imágenes que deben decodificarse, y solo una sola imagen es accesible de forma aleatoria, la calidad de las imágenes restantes será muy baja mientras el proceso de codificación alcanza el punto de vista cambiante. Sin embargo, para la misma tasa de bits, el dispositivo de codificación de vídeo puede utilizar las técnicas descritas en el presente documento para que una porción de múltiples imágenes diferentes sea accesible de forma aleatoria. Un dispositivo de codificación de vídeo que utiliza las técnicas descritas en el presente documento se beneficia de alcanzar una salida de vídeo VR de alta calidad en un período de tiempo más corto o al disminuir en gran medida la tasa de bits de una transmisión continua de vídeo VR que alcanza una alta calidad en el mismo período de tiempo que las técnicas anteriores. De esta manera, el dispositivo de codificación de vídeo requiere menos energía de procesamiento y consume menos energía.
[0010] Las técnicas de la presente divulgación se describen en general con respecto a UIT-T H.265, también conocida como codificación de vídeo de alta eficiencia (HEVC), que se describe en "SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services-Coding of moving video", codificación de vídeo de alta eficiencia, UIT-T H.265, abril de 2013, incluyendo su ampliación de codificación escalable (es decir, codificación de vídeo escalable de alta eficiencia, SHVC), ampliación de multivista (es decir, codificación de vídeo de alta eficiencia de multivista, MV-HEVC) y ampliación 3D (es decir, codificación de vídeo 3D de alta eficiencia, 3D-HEVC). Sin embargo, estas técnicas se pueden aplicar a otros estándares de codificación de vídeo, incluyendo las ampliaciones de HEVC y las ampliaciones de otros estándares. Los ejemplos de otros estándares de codificación de vídeo incluyen UIT-T H.261, ISO/IEC MPEG-1 Visual, UIT-T H.262 o ISO/IEC MPEG-2 Visual, UIT-T H.263, ISO/IEC MPEG-4 Visual, UIT-T H.264 o ISO/IEC MPEG-4 AVC, incluyendo sus ampliaciones de codificación de vídeo escalable (SVC) y de codificación de vídeo multivista (MVC), y de codificación de vídeo de alta eficacia (HEVC), también conocida como UIT-T H.265 e ISO/IEC23008-2, incluyendo su ampliación de codificación escalable (es decir, codificación de vídeo escalable de alta eficacia, SHVC), su ampliación multivista (es decir, codificación de vídeo de alta eficacia multivista, MV-HEVC) y su ampliación 3D (es decir, codificación de vídeo 3D de alta eficacia, 3D-HEVC).
[0011] El estándar H.265 se finalizó recientemente por el Equipo de colaboración conjunta sobre codificación de vídeo (JCT-VC) del Grupo de expertos sobre codificación de vídeo (VCEG) de la UIT-T y el Grupo de expertos sobre imágenes en movimiento (MPEG) de la ISO/IEC. El borrador de la memoria descriptiva de HEVC más reciente, denominado HEVC WD a continuación en el presente documento, está disponible en http://phenix.intevry.fr/ict/doc end user/documents/14 Vienna/wg11/JCTVC-N1003-v1.zip.
[0012] El JCT-3V también está desarrollando la ampliación multivista de la HEVC, la MV-HEVC. Un ejemplo de un borrador de trabajo (WD) de MV-HEVC, denominado MV-HEVC WD8, está disponible en phenix.itsudparis.eu/jct2/doc_end_user/documents/8_Valencia/wg11/JCT3V-H1002-v5.zip. La ampliación escalable a HEVC, denominada SHV, también se está desarrollando por el JCT-VC. Un ejemplo de un borrador de trabajo (WD) de SHVC, denominado SHVC WD6, está disponible en phenix.itsudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1008-v2.zip.
[0013] FRANCK DENOUAL ETAL.: "Comments on tile descriptors in MPEG-4 Part-15", 115. REUNIÓN MPEG; 30-5-2016-3-6-2016; GINEBRA; (GRUPO DE EXPERTOS SOBRE IMÁGENES EN MOVIMIENTO O ISO/IEC JTC1/SC29/WG11), n.° m38242, 27 de abril de 2016, proporciona un ejemplo sobre cómo señalizar mosaicos de una imagen, codificándose dichos mosaicos independientemente de acuerdo con ISOBMFF.
[0014] SKUPIN R ET AL.: "On MCTS extraction", 24. REUNIÓN JCT-VC; 26-5-2016-1-6-2016; GINEBRA; (EQUIPO CONJUNTO COLABORATIVO SOBRE CODIFICACIÓN DE VÍDEO DE ISO/IEC JTC1/SC29/WG11 Y UIT-T SG.16); n.° JCTVC-X0039, 16 de mayo de 2016, proporciona un ejemplo sobre cómo usar los conjuntos de mosaicos para la transmisión continua de vídeo en realidad virtual.
[0015] La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y decodificació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 proporciona datos de vídeo codificados que se van a decodificar en un momento posterior por un dispositivo de destino 14. En particular, el dispositivo de origen 12 proporciona los datos de vídeo al dispositivo de destino 14 por medio de un medio legible por ordenador 16. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera de entre una amplia gama de dispositivos, incluyendo ordenadores de mesa, ordenadores plegables (es decir, portátiles), tabletas electrónicas, decodificadores, auriculares telefónicos tales como los denominados “smartphones”, los denominados paneles “inteligentes”, televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, un dispositivo de transmisión continua de vídeo en tiempo real o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicación inalámbrica.
[0016] El dispositivo de destino 14 puede recibir los datos de vídeo codificados que se van a decodificar por medio del medio legible por ordenador 16. El medio legible por ordenador 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 medio legible por ordenador 16 puede comprender un medio de comunicación para habilitar el dispositivo de origen 12 para transmitir datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados se pueden modular de acuerdo con un estándar de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitir al dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o alámbrica, tal como un espectro de radiofrecuencia (RF) o una o más líneas físicas de transmisión. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área extensa o una red global, tal como Internet. El medio de comunicación puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
[0017] En algunos ejemplos, se pueden emitir datos codificados desde la interfaz de salida 22 hasta un dispositivo de almacenamiento. De forma similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento mediante una interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera de una variedad de medios de almacenamiento de datos, distribuidos o de acceso local, tales como un 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 un ejemplo adicional, el dispositivo de almacenamiento puede corresponder a un servidor de ficheros o a otro dispositivo de almacenamiento intermedio que pueda almacenar el vídeo codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados desde el dispositivo de almacenamiento 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. Servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para una página web), un servidor FTP, dispositivos de almacenamiento conectado a red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión WiFi), una conexión cableada (por ejemplo, DSL, módem de cable, etc.) o una combinación de ambas cosas que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento puede ser una transmisión continua, una transmisión de descarga o una combinación de ambas.
[0018] Las técnicas de 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 como soporte 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 continua de vídeo por Internet, tales como la transmisión continua adaptativa dinámica por HTTP (DASH), vídeo digital que se codifica en un medio de almacenamiento de datos, decodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 puede estar configurado para admitir una transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como transmisión continua de vídeo, reproducción de vídeo, radiodifusión de vídeo y/o videotelefonía.
[0019] En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye una fuente de vídeo 18, un codificador de vídeo 20 y una interfaz de salida 22. El dispositivo de destino 14 incluye una interfaz de entrada 28, un decodificador de vídeo 30 y un dispositivo de visualización 32. De acuerdo con la presente divulgación, el codificador de vídeo 20 del dispositivo de origen 12 se puede configurar para aplicar las técnicas descritas en la presente divulgación, tales como técnicas relacionadas con la intrapredicción de vídeo mejorada usando una combinación de predicción dependiente de la posición. De acuerdo con la presente divulgación, el decodificador de vídeo 30 del dispositivo de destino 14 se puede configurar para aplicar las técnicas descritas en la presente divulgación, tales como las técnicas relacionadas con la intrapredicción de vídeo mejorada usando una combinación de predicción dependiente de la posición. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo de origen 12 puede recibir datos de vídeo desde una fuente de vídeo externa 18, tal como una cámara externa. Del mismo modo, el dispositivo de destino 14 puede interactuar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
[0020] Como se indica anteriormente, el dispositivo de origen 12 incluye la interfaz de salida 22 y el dispositivo de destino 14 incluye la interfaz de entrada 28. En algunos ejemplos, la interfaz de salida 22 representa un transmisor y la interfaz de entrada 28 representa un receptor. En otros ejemplos, la interfaz de salida 22 y la interfaz de entrada 28 representan ejemplos de transceptores (es decir, interfaces capaces tanto de transmitir como de recibir señales de datos de forma inalámbrica). Los transceptores se pueden configurar para enviar y recibir datos de vídeo en señales inalámbricas. Por ejemplo, la interfaz de salida 22, cuando se implementa como un transceptor, puede enviar una señal de datos (por ejemplo, medio legible por ordenador 16) que incluya datos de vídeo codificados, mientras que la interfaz de entrada 28, cuando se implementa como un transceptor, puede recibir una señal de datos (por ejemplo, medio legible por ordenador 16) que incluya datos de vídeo codificados. Como se analiza anteriormente, el codificador de vídeo 20 puede proporcionar los datos de vídeo codificados a la interfaz de salida 22, mientras que la interfaz de entrada 28 puede proporcionar datos de vídeo codificados al decodificador de vídeo 30.
[0021] El sistema 10 ilustrado de la FIG. 1 es simplemente un ejemplo. Las técnicas descritas en la presente divulgación se pueden realizar mediante cualquier dispositivo de codificación y/o decodificación de vídeo digital. Aunque, en general, las técnicas de la presente divulgación se realizan mediante un dispositivo de codificación de vídeo, las técnicas también se pueden realizar mediante un codificador/decodificador de vídeo, denominado típicamente "CÓDEC". Además, las técnicas de la presente divulgación también se pueden realizar mediante un preprocesador de vídeo. El dispositivo de origen 12 y el dispositivo de destino 14 son simplemente ejemplos de dichos dispositivos de codificación en los cuales el dispositivo de origen 12 genera datos de vídeo codificados para su transmisión al dispositivo de destino 14. En algunos ejemplos, los dispositivos 12, 14 pueden funcionar de manera sustancialmente simétrica, de modo que cada uno de los dispositivos 12, 14 incluye componentes de codificación y decodificación de vídeo. Por lo tanto, el sistema 10 puede admitir una transmisión de vídeo unidireccional o bidireccional entre los dispositivos de vídeo 12, 14, por ejemplo, para la transmisión continua de vídeo, la reproducción de vídeo, la radiodifusión de vídeo o la videotelefonía.
[0022] La fuente de vídeo 18 del dispositivo de origen 12 puede incluir un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contiene vídeo capturado previamente y/o una interfaz de suministro de vídeo para recibir vídeo desde un proveedor de contenidos de vídeo. Como otra alternativa, la fuente de vídeo 18 puede generar datos basados en gráficos de ordenador como la fuente de vídeo, o una combinación de vídeo en directo, vídeo archivado y vídeo generado por ordenador. En algunos casos, si la fuente de vídeo 18 es una cámara de vídeo, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, como se menciona anteriormente, las técnicas descritas en la presente divulgación pueden ser aplicables a la codificación de vídeo en general, y se pueden aplicar a aplicaciones inalámbricas y/o alámbricas. En cada caso, el codificador de vídeo 20 puede codificar el vídeo capturado, precapturado o generado por ordenador. A continuación, la información de vídeo codificada se puede emitir por la interfaz de salida 22 a un medio legible por ordenador 16.
[0023] El medio legible por ordenador 16 puede incluir medios transitorios, tales como una radiodifusión inalámbrica o una transmisión de red por cable, o medios de almacenamiento (es decir, medios de almacenamiento no transitorios), tales como un disco duro, una unidad de memoria flash, un disco compacto, un disco de vídeo digital, un disco Blu-ray u otros medios legibles por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de vídeo codificados desde el dispositivo de origen 12 y proporcionar los datos de vídeo codificados al dispositivo de destino 14, por ejemplo, por medio de transmisión por red. De forma similar, un dispositivo informático de una instalación de producción de medios, tal como una instalación de estampado de discos, puede recibir datos de vídeo codificados desde el dispositivo de origen 12 y producir un disco que contenga los datos de vídeo codificados. Por lo tanto, se puede entender que el medio legible por ordenador 16 incluye uno o más medios legibles por ordenador de diversas formas, en diversos ejemplos.
[0024] La interfaz de entrada 28 del dispositivo de destino 14 recibe información desde el medio legible por ordenador 16. La información del medio legible por ordenador 16 puede incluir información sintáctica definida por el codificador de vídeo 20, que también se usa por el decodificador de vídeo 30, que incluye elementos sintácticos que describen funciones y/o procesamiento de bloques y otras unidades codificadas, por ejemplo, los GOP. El dispositivo de visualización 32 visualiza los datos de vídeo decodificados a un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0025] El codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar de acuerdo con un estándar de codificación de vídeo, tal como los estándares descritos anteriormente y, en algunos ejemplos, de acuerdo con el estándar de codificación de vídeo de alta eficiencia (HEVC), también denominado UIT-T H.265, o con ampliaciones del estándar HEVC, o de acuerdo con la próxima generación de estándares de codificación de vídeo. Sin embargo, las técnicas de la presente divulgación no se limitan a ningún estándar de codificación particular. Otros ejemplos de normas de codificación de vídeo incluyen MPEG-2 y UIT-T H.263. Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador de vídeo 20 y el decodificador de vídeo 30 se pueden integrar cada uno con un codificador y un decodificador de audio, y pueden incluir unidades MUX-DEMUX apropiadas, u otro hardware y software, para gestionar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Cuando proceda, las unidades MUX-DEMUX se pueden ajustar a un protocolo tal como el protocolo de multiplexor UIT H.223 o a otros protocolos tales como el protocolo de datagramas de usuario (UDP).
[0026] El codificador de vídeo 20 y el decodificador de vídeo 30 se pueden implementar como cualquiera de una variedad de circuitos de codificador o decodificador 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 por campo (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. Tanto el codificador de vídeo 20 como el decodificador de vídeo 30 se pueden incluir en uno o más codificadores o decodificadores, cualquiera de los cuales se puede integrar como parte de un codificador/decodificador (CÓDEC) combinado en un dispositivo respectivo. Un dispositivo que incluye el codificador de vídeo 20 y/o el decodificador de vídeo 30 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
[0027] En general, una trama o imagen de vídeo se puede dividir en una secuencia de bloques de árbol, que se conocen también como unidades de codificación de mayor tamaño (LCU), que incluyen muestras tanto de luma como de croma. Los datos de sintaxis dentro de un flujo de bits pueden definir un tamaño para la LCU, que es la unidad de codificación más grande en cuanto al número de píxeles. Un fragmento incluye un número de bloques de árbol consecutivos en orden de codificación. Una trama o imagen de vídeo se puede particionar en uno o más fragmentos. Cada bloque de árbol se puede dividir en unidades de codificación (CU) de acuerdo con una estructura de datos en árbol cuaternario. En general, una estructura de datos en árbol cuaternario incluye un nodo por CU, con un nodo raíz correspondiente al bloque de árbol. Si una CU se divide en cuatro subCU, el nodo correspondiente a la CU incluye cuatro nodos hoja, cada uno de los cuales corresponde a una de las subCU.
[0028] Cada nodo de la estructura de datos en árbol cuaternario puede proporcionar datos de sintaxis para la CU correspondiente. Por ejemplo, un nodo en el árbol cuaternario puede incluir un indicador de división, que indica si la CU correspondiente al nodo está dividida en diversas subCU. Los elementos de sintaxis para una CU se pueden definir de forma recursiva y pueden depender de si la CU está dividida en diversas subCU. Si una CU no está dividida adicionalmente, se denomina CU hoja. En la presente divulgación, cuatro subCU de una CU hoja también se denominarán CU hoja, incluso si no existe ninguna división explícita de la CU hoja original. Por ejemplo, si una CU de tamaño 16x16 no está dividida adicionalmente, las cuatro subCU de 8x8 también se denominarán CU hoja aunque la CU de 16x16 nunca estuviera dividida.
[0029] Una CU tiene un propósito similar a un macrobloque del estándar H.264, excepto en que una CU no tiene una distinción de tamaño. Por ejemplo, un bloque de árbol se puede dividir en cuatro nodos hijo (también denominados subCU) y cada nodo hijo puede ser a su vez un nodo padre y se puede dividir en otros cuatro nodos hijo. Un nodo hijo final, no dividido, denominado nodo hoja del árbol cuaternario, comprende un nodo de codificación, también denominado CU hoja. Los datos de sintaxis asociados a un flujo de bits codificado pueden definir un número máximo de veces en que se puede dividir un bloque de árbol, denominado profundidad máxima de CU, y también pueden definir un tamaño mínimo de los nodos de codificación. En consecuencia, un flujo de bits también puede definir la unidad de codificación más pequeña (SCU). La presente divulgación usa el término "bloque" para referirse a cualquiera de una CU, una unidad de predicción (PU) o una unidad de transformada (TU), en el contexto de la HEVC, o a estructuras de datos similares en el contexto de otras normas (por ejemplo, macrobloques y subbloques de las mismas en H.264/AVC).
[0030] 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 es en general de forma cuadrada. El tamaño de la CU puede variar desde 8x8 píxeles hasta el tamaño del bloque de árbol con un máximo de 64x64 píxeles o más. Cada CU puede contener una o más PU y una o más TU. Los datos de sintaxis asociados a una CU pueden describir, por ejemplo, la partición de la CU en una o más PU. Los modos de partició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 particionar para tener una conformación no cuadrada. Los datos de sintaxis asociados a una CU también pueden describir, por ejemplo, la partició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 (por ejemplo, rectangular).
[0031] El estándar 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 este no sea siempre el caso. 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 en árbol cuaternario conocida como "árbol cuaternario residual" (RQT). Los nodos hoja del RQT se pueden denominar unidades de transformada (TU). Los valores de diferencias de píxeles asociados a las TU se pueden transformar para producir coeficientes de transformada, que se pueden cuantificar.
[0032] Una CU hoja puede incluir una o más PU. En general, una PU representa un área espacial correspondiente a la totalidad, o a una porción, de la CU correspondiente, y puede incluir datos para recuperar y/o generar una muestra de referencia para la PU. Además, una PU incluye datos relacionados con la predicción. Por ejemplo, cuando la PU está codificada mediante intramodo se pueden incluir datos para la PU en un árbol cuaternario residual (RQT), que puede incluir datos que describan un modo de intrapredicción para una TU correspondiente a la PU. El RQT también se puede denominar árbol de transformada. En algunos ejemplos, el modo de intrapredicción se puede señalar en la sintaxis de la CU hoja, en lugar del RQT. Como otro ejemplo, cuando la PU está codificada mediante intermodo, la PU puede incluir datos que definan información de movimiento, tal como uno o más vectores de movimiento, para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un 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 cual 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.
[0033] Una CU hoja que tiene una o más PU también puede incluir una o más TU. Las unidades de transformada se pueden especificar usando un RQT (también denominado estructura en árbol cuaternario de TU), como se analiza anteriormente. Por ejemplo, un indicador de división puede indicar si una CU hoja está dividida en cuatro unidades de transformada. A continuación, cada unidad de transformada se puede dividir además en subTU adicionales. Cuando una TU no se divide más, se puede denominar TU hoja. En general, en la intracodificación, todas las TU hoja que pertenecen a una CU hoja comparten el mismo modo de intrapredicción. Es decir, el mismo modo de intrapredicción se aplica en general para calcular valores predichos para todas las TU de una CU hoja. Para la intracodificación, un codificador de vídeo puede calcular un valor residual para cada TU hoja usando el modo de intrapredicción, como una diferencia entre la porción de la CU correspondiente a la TU y el bloque original. Una TU no se limita necesariamente al tamaño de una PU. Por tanto, las TU pueden ser más grandes o más pequeñas que una PU. Para la intracodificación, una PU puede estar colocada junto con una TU hoja correspondiente para la misma CU. En algunos ejemplos, el tamaño máximo de una TU hoja puede corresponder al tamaño de la CU hoja correspondiente.
[0034] Además, las TU de las CU hoja también se pueden asociar a estructuras de datos de árbol cuaternario respectivas, denominadas árboles cuaternarios residuales (RQT). Es decir, una CU hoja puede incluir un árbol cuaternario que indica cómo se particiona la CU hoja en TU. El nodo raíz de un árbol cuaternario de TU corresponde, en general, a una CU hoja, mientras que el nodo raíz de un árbol cuaternario de CU corresponde, en general, a un bloque de árbol (o LCU). Las TU del RQT que no están divididas se denominan TU hoja. En general, la presente divulgación usa los términos CU y TU para hacer referencia a una CU hoja y a una TU hoja, respectivamente, a menos que se indique de otro modo.
[0035] Una secuencia de vídeo típicamente incluye una serie de tramas de vídeo o imágenes, a partir de una imagen de punto de acceso aleatorio (RAP). Una secuencia de vídeo puede incluir datos de sintaxis en un conjunto de parámetros de secuencia (SPS) que caracterizan a la secuencia de vídeo. 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 típicamente funciona 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 un estándar de codificación especificado.
[0036] Como ejemplo, la predicción se puede realizar para PU de diversos tamaños. Suponiendo que el tamaño de una CU particular es 2Nx2N, la intrapredicción se puede realizar en tamaños de PU de 2Nx2N o NxN, y la interpredicción en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N o NxN. La partición asimétrica para la interpredicción también se puede realizar para tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En la partición asimétrica, una dirección de una CU no está particionada, mientras que la otra dirección está particionada en un 25 % y un 75 %. La porción de la CU correspondiente a la partición de un 25 % se indica mediante una "n" seguida de una indicación de "Arriba", "Abajo", "Izquierda" o "Derecha". Por tanto, por ejemplo, "2NxnU" se refiere a una CU de 2Nx2N que está particionada horizontalmente, con una PU de 2Nx0,5N encima y una PU de 2Nx1,5N debajo.
[0037] En la presente divulgación, "NxN" y "N por N" se pueden usar de manera intercambiable para hacer referencia a las dimensiones de píxel de un bloque de vídeo en lo que respecta a 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.
[0038] Después de la codificación de intrapredicción o interpredicción usando las PU de una CU, el codificador de vídeo 20 puede calcular datos residuales para las TU de la CU. Las PU pueden comprender datos de sintaxis que describan un procedimiento o modo de generación de datos de píxeles predictivos en el dominio espacial (también denominado dominio de píxel) y las TU pueden comprender coeficientes en el dominio de transformada después de la aplicación de una transformada, por ejemplo, una transformada de coseno discreta (DCT), una transformada de enteros, una transformada de ondícula 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 para incluir coeficientes de transformada cuantificados representativos de los datos residuales de la CU. Es decir, el codificador de vídeo 20 puede calcular los datos residuales (en forma de un bloque residual), transformar el bloque residual para producir un bloque de coeficientes de transformada y a continuación cuantificar los coeficientes de transformada para formar coeficientes de transformada cuantificados. El codificador de vídeo 20 puede formar una TU que incluya los coeficientes de transformada cuantificados, así como otra información de sintaxis (por ejemplo, información de división para la TU).
[0039] Como se indica anteriormente, después de 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 proceso en el cual los coeficientes de transformada se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando una compresión adicional. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los coeficientes. Por ejemplo, un valor de n bits se puede redondear hacia abajo hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
[0040] Después de la cuantificación, el codificador de vídeo 20 puede escanear los coeficientes de transformada, produciendo un vector unidimensional a partir de la matriz bidimensional que incluye los coeficientes de transformada cuantificados. El escaneo se puede diseñar para colocar los coeficientes de mayor energía (y, por lo tanto, de menor frecuencia) en la parte delantera de la matriz y para colocar los coeficientes de menor energía (y, por lo tanto, de mayor frecuencia) en la parte trasera de la matriz. En algunos ejemplos, el codificador de vídeo 20 puede utilizar un orden de escaneo predefinido para escanear los coeficientes de transformada cuantificados para producir un vector serializado que se puede codificar por entropía. En otros ejemplos, el codificador de vídeo 20 puede realizar un escaneo adaptativo. Después de escanear 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), con la codificación aritmética binaria adaptativa al contexto (CABAC), con la codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), con la codificación por entropía por división en intervalos de probabilidad (PIPE) o con 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 codificados para su uso por el decodificador de vídeo 30 en la decodificación de los datos de vídeo.
[0041] Para realizar la CABAC, el codificador de vídeo 20 puede asignar un contexto dentro de un modelo de contexto a un símbolo que se va a transmitir. El contexto se puede referir, por ejemplo, a si los valores contiguos del símbolo son distintos de cero o no. Para realizar la CAVLC, el codificador de vídeo 20 puede seleccionar un código de longitud variable para un símbolo que se va a transmitir. Las palabras de código en la VLC se pueden construir de modo que los códigos relativamente más cortos correspondan a símbolos más probables, mientras que los códigos más largos correspondan a símbolos menos probables. De esta manera, el uso de la VLC puede conseguir un ahorro en bits con respecto, por ejemplo, al uso de palabras de código de igual longitud para cada símbolo que se va a transmitir. La determinación de la probabilidad se puede basar en un contexto asignado al símbolo.
[0042] En general, el decodificador de vídeo 30 realiza un proceso sustancialmente similar, aunque recíproco, al realizado por el codificador de vídeo 20 para decodificar datos codificados. Por ejemplo, el decodificador de vídeo 30 cuantifica y transforma inversamente los coeficientes de una TU recibida para reproducir un bloque residual. El decodificador de vídeo 30 usa un modo de predicción señalizado (intra o interpredicción) para formar un bloque predicho. A continuación, el decodificador de vídeo 30 combina el bloque predicho y el bloque residual (píxel por píxel) para reproducir el bloque original. Se puede realizar un procesamiento adicional, tal como realizar un proceso de desbloqueo para reducir los artefactos visuales a lo largo de los límites de los bloques. Además, el decodificador de vídeo 30 puede decodificar elementos de sintaxis usando CABAC de una manera sustancialmente similar, aunque recíproca, al proceso de codificación CABAC del codificador de vídeo 20.
[0043] Además, el codificador de vídeo 20 puede enviar además datos de sintaxis, tales como datos de sintaxis basados en bloques, datos de sintaxis basados en tramas y datos de sintaxis basados en GOP, al decodificador de vídeo 30, por ejemplo, en una cabecera de trama, una cabecera de bloque, una cabecera de fragmento o una cabecera de GOP. Los datos de sintaxis de GOP pueden describir un número de tramas en el GOP respectivo, y los datos de sintaxis de trama pueden indicar un modo de codificación/predicción usado para codificar la trama correspondiente.
[0044] De acuerdo con las técnicas de la presente divulgación, un dispositivo de codificación de vídeo, tal como un codificador de vídeo 20, puede determinar si una región en una imagen tiene accesibilidad aleatoria. Por ejemplo, el codificador de vídeo 20 puede recibir una pluralidad de imágenes en un orden de codificación. Cada imagen respectiva de la pluralidad de imágenes comprende una pluralidad de regiones. Para una primera región en una primera imagen de la pluralidad de imágenes, el codificador de vídeo 20 puede determinar que la primera región es codificable independiente de las otras regiones de la primera imagen. El codificador de vídeo 20 también puede determinar que la primera región es codificable independiente de una región en cada imagen que precede a la primera imagen en el orden de codificación. En respuesta a determinar que la primera región es codificable independiente de cada una de las otras regiones de la primera imagen y que la primera región es codificable independiente de la primera región en la segunda imagen precedente a la primera imagen en el orden de codificación, el codificador de vídeo 20 puede determinar que la primera región respectiva en la primera imagen tiene accesibilidad aleatoria. El codificador de vídeo 20 puede codificar a continuación cada bloque de vídeo en la primera región en la primera imagen independiente de cada otra región de la primera imagen e independiente de la primera región en la segunda imagen precedente a la primera imagen en el orden de codificación.
[0045] La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo 20 que puede implementar las técnicas descritas en la presente divulgación. De acuerdo con la presente divulgación, el codificador de vídeo 20 se puede configurar para recibir una pluralidad de imágenes en un orden de codificación, tal como desde la fuente de vídeo 18 de la FIG. 1. Este es solo un ejemplo de un codificador de vídeo que puede realizar las técnicas descritas en el presente documento. Otros codificadores de vídeo, incluyendo los codificadores de vídeo que incluyen funciones adicionales o menos funciones, aún pueden estar habilitados para realizar las técnicas descritas en el presente documento. Por ejemplo, el codificador de vídeo 20 puede incluir además una batería u otras fuentes de energía. En otros casos, el codificador de vídeo 20 puede incluir una memoria u otro dispositivo de almacenamiento configurado para almacenar datos de vídeo de entrada.
[0046] Como se muestra en la FIG. 2, el codificador de vídeo 20 recibe un bloque de vídeo actual dentro de una trama de vídeo que se va a codificar. En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye la unidad de selección de modalidad 40, la memoria de imágenes de referencia 64 (que también se puede denominar memoria intermedia de imágenes decodificadas (DPB)), el sumador 50, la unidad de procesamiento de transformada 52, la unidad de cuantificación 54 y la unidad de codificación por entropía 56. A su vez, la unidad de selección de modo 40 incluye una unidad de compensación de movimiento 44, una unidad de estimación de movimiento 42, una unidad de intrapredicción 46 y una unidad de partición 48. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 incluye también una unidad de cuantificación inversa 58, una unidad de transformada inversa 60 y un sumador 62. También se puede incluir un filtro de desbloqueo (no mostrado en la FIG. 2) para filtrar los límites de bloque para eliminar distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de desbloqueo filtrará típicamente la salida del sumador 62. También se pueden usar filtros adicionales (en bucle o tras un bucle), además del filtro de desbloqueo. Dichos filtros no se muestran por razones de brevedad, pero, si se desea, pueden filtrar la salida del sumador 50 (como un filtro en bucle).
[0047] Durante el proceso de codificación, el codificador de vídeo 20 recibe una trama o un fragmento de vídeo que se va a codificar. La trama o el fragmento se pueden dividir en múltiples bloques de vídeo. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 realizan la codificación interpredictiva del bloque de vídeo recibido en relación con uno o más bloques en una o más tramas de referencia para proporcionar predicción temporal. La unidad de intrapredicción 46 puede realizar de forma alternativa la codificación intrapredictiva del bloque de vídeo recibido con respecto a uno o más bloques contiguos en la misma trama o fragmento que el bloque que se va a codificar para proporcionar predicción espacial. El codificador de vídeo 20 puede realizar múltiples pasadas de codificación, por ejemplo, para seleccionar un modo de codificación apropiado para cada bloque de datos de vídeo.
[0048] Además, la unidad de partición 48 puede particionar bloques de datos de vídeo en subbloques, en base a la evaluación de esquemas de partición previos en las pasadas de codificación previas. Por ejemplo, la unidad de partición 48 puede dividir inicialmente una trama o un fragmento en LCU, y particionar cada una de las LCU en subCU en base a un análisis de velocidad-distorsión (por ejemplo, una optimización de velocidad-distorsión). La unidad de selección de modo 40 puede producir además una estructura de datos en árbol cuaternario, indicativa de la división de una LCU en subCU. Las CU de nodos hoja del árbol cuaternario pueden incluir una o más PU y una o más TU.
[0049] La unidad de selección de modo 40 puede seleccionar uno de los modos de codificación, intra o inter, por ejemplo, en base a los resultados de errores, y proporciona el bloque predicho resultante al sumador 50 para generar datos de bloques residuales, y al sumador 62 para reconstruir el bloque codificado para su uso como una trama de referencia. La unidad de selección de modo 40 también proporciona elementos de sintaxis, tales como vectores de movimiento, indicadores de intramodo, información de división y otra información de sintaxis de este tipo a la unidad de codificación por entropía 56.
[0050] La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar altamente integradas, pero se ilustran por separado con fines conceptuales. La estimación de movimiento, realizada por la unidad de estimación de movimiento 42, es el proceso de generación de vectores de movimiento, que estiman el movimiento para los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de una trama de vídeo o imagen actual, con respecto a un bloque predictivo dentro de una trama de referencia (u otra unidad codificada) con respecto al bloque actual que se está codificando dentro de la trama actual (o de otra unidad codificada). Un bloque predictivo es un bloque que se considera estrechamente coincidente con el bloque que se va a codificar, en lo que respecta a la diferencia de píxeles, lo cual se puede determinar mediante una suma de diferencias absolutas (SAD), una suma de diferencias al cuadrado (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones de píxel subentero de imágenes de referencia almacenadas en la memoria de imágenes de referencia 64. Por ejemplo, el codificador de vídeo 20 puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de píxel fraccionario de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento relativa a las posiciones de píxel completo y a las posiciones de píxel fraccionario, y proporcionar un vector de movimiento con una precisión de píxel fraccionario.
[0051] La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de vídeo en un fragmento 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 (Lista 0) de imágenes de referencia o de una segunda lista (Lista 1) de imágenes de referencia, cada una de las cuales identifica una o más imágenes de referencia almacenadas en una memoria de imágenes de referencia 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y a la unidad de compensación de movimiento 44.
[0052] La compensación de movimiento, realizada por la unidad de compensación de movimiento 44, puede implicar buscar o generar el bloque predictivo en base al vector de movimiento determinado por la unidad de estimación de movimiento 42. De nuevo, la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 se pueden integrar funcionalmente, en algunos ejemplos. Tras recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad de compensación de movimiento 44 puede localizar el bloque predictivo al cual apunta el vector de movimiento en una de las listas de imágenes de referencia. El sumador 50 forma un bloque de vídeo residual restando 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 diferencias de píxel, como se analiza a continuación. En general, la unidad de estimación de movimiento 42 realiza la estimación de movimiento en relación con los componentes de luma, y la unidad de compensación de movimiento 44 usa vectores de movimiento calculados en base a las componentes de luma tanto para componentes de croma como para componentes de luma. La unidad de selección de modo 40 también puede generar elementos de sintaxis asociados con los bloques de vídeo y el fragmento de vídeo para su uso por el decodificador de vídeo 30 en la decodificación de los bloques de vídeo del fragmento de vídeo.
[0053] La unidad de intrapredicción 46 puede intrapredecir un bloque actual, como alternativa a la interpredicción realizada por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se describe anteriormente. En particular, la unidad de intrapredicción 46 puede determinar un modo de intrapredicción que se va a usar para codificar un bloque actual. En algunos ejemplos, la unidad de intrapredicción 46 puede codificar un bloque actual usando diversos modos de intrapredicción, por ejemplo, durante pases de codificación separados, y la unidad de intrapredicción 46 (o unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo de intrapredicción apropiado para usar de los modos sometidos a prueba.
[0054] Por ejemplo, la unidad de intrapredicción 46 puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para los diversos modos de intrapredicción sometidos a prueba, y seleccionar el modo de intrapredicción que tenga las mejores funciones de velocidad-distorsión entre los modos sometidos a prueba. El análisis de velocidad-distorsión determina, en general, una cantidad de distorsión (o de 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 intrapredicción 46 puede calcular proporciones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar qué modo de intrapredicción presenta el mejor valor de velocidad-distorsión para el bloque.
[0055] Después de seleccionar un modo de intrapredicción para un bloque, la unidad de intrapredicción 46 puede proporcionar información indicativa del modo de intrapredicción seleccionado para el bloque a la unidad de codificación por entropía 56. La unidad de codificación por entropía 56 puede codificar la información que indica el modo de intrapredicción seleccionado. El codificador de vídeo 20 puede incluir, en el flujo de bits transmitido, datos de configuración, que pueden incluir una pluralidad de tablas de índices de modo de intrapredicción y una pluralidad de tablas de índices de modo de intrapredicción modificadas (también denominadas tablas de correlación de palabras de código), definiciones de contextos de codificación para diversos bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índices de modo de intrapredicción y una tabla de índices de modo de intrapredicción modificada para su uso para cada uno de los contextos.
[0056] El codificador de vídeo 20 forma un bloque de vídeo residual restando los datos de predicción de la unidad de selección de modo 40 al bloque de vídeo original que se está codificando. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. La unidad de procesamiento de transformada 52 aplica una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficientes de transformada residuales. Transformadas de ondículas, transformadas de enteros, transformadas de subbandas, transformadas de seno discreto (DST) u otros tipos de transformadas se podrían usar en lugar de una DCT. En cualquier caso, la unidad de procesamiento de transformada 52 aplica la transformada al bloque residual, produciendo un bloque de coeficientes de transformada. La transformada puede convertir la información residual desde un dominio de píxel en un dominio de transformada, tal como un dominio de frecuencia. La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir más la tasa de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación.
[0057] Después de la cuantificación, la unidad de codificación por entropía 56 codifica por entropía los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede realizar 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 sintaxis (SBAC), la codificación por entropía por división en intervalos de probabilidad (PIPE) u otra técnica de codificación por entropía. En el caso de la codificación por entropía basada en contexto, el contexto se puede basar en bloques contiguos. Tras la codificación por entropía por la unidad de codificación por entropía 56, el flujo de bits codificado se puede transmitir a otro dispositivo (por ejemplo, el decodificador de vídeo 30) o archivar para su posterior transmisión o recuperación.
[0058] La unidad de cuantificación inversa 58 y la unidad de transformada inversa 60 aplican la cuantificación inversa y la transformada inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxel. En particular, el sumador 62 añade el bloque residual reconstruido al bloque de predicción compensado por movimiento producido por la unidad de compensación de movimiento 44 o la unidad de intrapredicción 46 para producir un bloque de vídeo reconstruido para su almacenamiento en la memoria de imágenes de referencia 64. El bloque de vídeo reconstruido se puede usar por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como un bloque de referencia para intercodificar un bloque en una trama de vídeo posterior.
[0059] De acuerdo con las técnicas de la presente divulgación, la unidad de selección de modo 40 del codificador de vídeo 20 puede determinar si una región en una imagen tiene accesibilidad aleatoria. Por ejemplo, la unidad de selección de modo 40 del codificador de vídeo 20 puede recibir una pluralidad de imágenes en un orden de codificación. Cada imagen respectiva de la pluralidad de imágenes comprende una pluralidad de regiones. Para una primera región en una primera imagen de la pluralidad de imágenes, la unidad de selección de modo 40 del codificador de vídeo 20 puede determinar que la primera región es codificable independiente de las demás regiones de la primera imagen.
[0060] La unidad de selección de modo 40 del codificador de vídeo 20 también puede determinar que la primera región es codificable independiente de una región en cada imagen precedente a la primera imagen en el orden de codificación. En algunos ejemplos, la primera región respectiva puede ser un mosaico, un fragmento, un conjunto de mosaicos o un conjunto de fragmentos. En algunos ejemplos, al determinar que la primera región es codificable independiente de una primera región en una segunda imagen precedente a la primera imagen en el orden de codificación, la unidad de selección de modo 40 del codificador de vídeo 20 puede determinar que un elemento de sintaxis respectivo en un encabezado de unidad NAL respectivo en cada imagen respectiva precedente a la primera imagen en el orden de codificación indica que la imagen respectiva no está disponible.
[0061] En respuesta a la determinación de que la primera región es codificable independiente de las otras regiones de la primera imagen y que la primera región es codificable independiente de la primera región en la segunda imagen precedente a la primera imagen en el orden de codificación, la unidad de selección de modo 40 del codificador de vídeo 20 puede determinar que la primera región respectiva en la primera imagen tiene accesibilidad aleatoria. La unidad de codificación por entropía 52 del codificador de vídeo 20 puede codificar a continuación cada bloque de vídeo en la primera región en la primera imagen independiente de cada región de la primera imagen e independiente de la primera región en la segunda imagen precedente a la primera imagen en el orden de codificación.
[0062] Si la unidad de selección de modo 40 del codificador de vídeo 20 determina que la primera región no es codificable independiente de otras regiones de la primera imagen o que la primera región no es codificable independiente de la primera región en la segunda imagen precedente a la primera imagen en el orden de codificación, la unidad de selección de modo 40 del codificador de vídeo 20 puede determinar que la primera región respectiva en la primera imagen no tiene accesibilidad aleatoria. Como tal, la unidad de codificación por entropía 52 del codificador de vídeo 20 puede codificar un bloque de vídeo en la primera región en la primera imagen en base al menos en parte a la información de movimiento para un bloque de vídeo en otra región de la primera imagen o en base al menos en parte a información de movimiento para un bloque de vídeo en una región de una imagen precedente a la primera imagen en el orden de codificación.
[0063] En algunos ejemplos, la unidad de selección de modo 40 del codificador de vídeo 20 puede determinar además que cada región de la primera imagen tiene accesibilidad aleatoria. En respuesta a la determinación de que cada región en la primera imagen tiene accesibilidad aleatoria, la unidad de selección de modo 40 del codificador de vídeo 20 puede determinar que la primera imagen es una imagen de punto de acceso intraaleatorio. Como tal, la unidad de codificación por entropía 52 del codificador de vídeo 20 puede codificar cada bloque de vídeo en la primera imagen independiente de cada una de las otras imágenes en el orden de codificación.
[0064] En algunos ejemplos, en respuesta a la determinación de que la primera región tiene accesibilidad aleatoria, la unidad de selección de modo 40 del codificador de vídeo 20 puede señalar un elemento de sintaxis que indique que la primera región tiene accesibilidad aleatoria. El elemento de sintaxis puede estar localizado en un encabezado de la primera imagen, en un encabezado de un fragmento, en un encabezado de la primera región respectiva, en un encabezado de unidad NAL o en metadatos. La unidad de codificación por entropía 52 del codificador de vídeo 20 puede codificar el elemento de sintaxis en un flujo de bits.
[0065] En algunos ejemplos, en respuesta a la determinación de que la primera región respectiva tiene accesibilidad aleatoria, la unidad de selección de modo 40 del codificador de vídeo 20 puede determinar que la primera imagen es una imagen de punto de acceso intraaleatorio.
[0066] En algunos ejemplos, la unidad de selección de modo 40 del codificador de vídeo 20 puede definir una agrupación de muestra para indicar que la primera imagen tiene una región accesible de forma aleatoria. De forma alternativa, la unidad de selección de modo 40 del codificador de vídeo 20 puede definir una agrupación de muestras para indicar si la primera imagen es completamente accesible de forma aleatoria o si solo una porción de las regiones de la primera imagen son accesibles de forma aleatoria.
[0067] En algunos ejemplos, la unidad de selección de modo 40 del codificador de vídeo 20 puede además, para una tercera imagen que sigue a la primera imagen en el orden de codificación, determinar que se ha codificado un número umbral de imágenes en el orden de codificación desde que se codificó la primera región de la primera imagen. En respuesta a determinar que el número umbral de imágenes en el orden de codificación se ha codificado desde que se codificó la primera región de la primera imagen, la unidad de selección de modo 40 del codificador de vídeo 20 puede determinar que una región en la tercera imagen correspondiente a la primera región de la primera imagen tiene accesibilidad aleatoria. Como tal, la unidad de codificación por entropía 52 del codificador de vídeo 20 puede codificar cada bloque de vídeo en la región en la tercera imagen correspondiente a la primera región de la tercera imagen independiente de cada otra región de la tercera imagen e independiente de cualquier región en una cuarta imagen precedente a la tercera imagen en el orden de codificación.
[0068] El codificador de vídeo 20 en general usa el proceso analizado anteriormente para codificar cada bloque de cada imagen en una secuencia de vídeo codificada. Además, en algunos ejemplos, el codificador de vídeo 20 puede determinar capas temporales a las cuales asignar cada una de las imágenes. Además, el codificador de vídeo 20 se puede configurar para codificar imágenes de otras capas, por ejemplo, otras vistas, capas de codificación de vídeo escalables o similares. En cualquier caso, el codificador de vídeo 20 puede codificar además datos que indiquen una capa a la cual pertenece cada imagen, para una o más capas (por ejemplo, de diversas dimensiones de vídeo).
[0069] La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de decodificador de vídeo 30 que puede implementar las técnicas descritas en la presente divulgación. Este es solo un ejemplo de un decodificador de vídeo que puede realizar las técnicas descritas en el presente documento. Otros decodificadores de vídeo, incluyendo los decodificadores de vídeo que incluyen funciones adicionales o menos funciones, aún pueden estar habilitados para realizar las técnicas descritas en el presente documento. Por ejemplo, el decodificador de vídeo 30 puede incluir además una batería u otras fuentes de energía. En otros casos, el decodificador de vídeo 30 puede incluir una memoria u otro dispositivo de almacenamiento configurado para almacenar datos de vídeo de entrada.
[0070] En el ejemplo de la FIG. 3, el decodificador de vídeo 30 incluye una unidad de decodificación por entropía 70, una unidad de compensación de movimiento 72, una unidad de intrapredicción 74, una unidad de cuantificación inversa 76, una unidad de transformación inversa 78, una memoria de imágenes de referencia 82 y un sumador 80. En algunos ejemplos, el decodificador de vídeo 30 puede realizar un pase de decodificación, en general, recíproco al pase de codificación descrito con respecto al codificador de vídeo 20 (FIG. 2). La unidad de compensación de movimiento 72 puede generar datos de predicción en base a vectores de movimiento recibidos desde la unidad de decodificación por entropía 70, mientras que la unidad de intrapredicción 74 puede generar datos de predicción en base a indicadores de modo de intrapredicción recibidos desde la unidad de decodificación por entropía 70.
[0071] Durante el proceso de decodificación, el decodificador 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. La unidad de decodificación por entropía 70 del decodificador de vídeo 30 decodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intrapredicción y otros elementos de sintaxis. La unidad de decodificación por entropía 70 reenvía los vectores de movimiento y otros elementos sintácticos a la unidad de compensación de movimiento 72. El decodificador 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.
[0072] Cuando el fragmento de vídeo se codifica como un fragmento intracodificado (I), la unidad de intrapredicción 74 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ñalizado y a datos de bloques previamente decodificados de la trama o imagen actual. Cuando la trama de vídeo se codifica como un fragmento intercodificado (es decir, B, P o GPB), la unidad de compensación de movimiento 72 produce bloques predictivos para un bloque de vídeo del fragmento de vídeo actual en base a los vectores de movimiento y a otros elementos de sintaxis recibidos desde la unidad de decodificación por entropía 70. 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 decodificador 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 82. La unidad de compensación de movimiento 72 determina información de predicción para un bloque de vídeo del fragmento de vídeo actual analizando los vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para producir los bloques predictivos para el bloque de vídeo actual que se esté decodificando. Por ejemplo, la unidad de compensación de movimiento 72 usa algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, de intra o interpredicción) usado para codificar los bloques de vídeo del fragmento de vídeo, un tipo de fragmento de interpredicción (por ejemplo, un fragmento B, un fragmento P o un fragmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el fragmento, vectores de movimiento para cada bloque de vídeo intercodificado del fragmento, el estado de interpredicción para cada bloque de vídeo intercodificado del fragmento y otra información para decodificar los bloques de vídeo del fragmento de vídeo actual.
[0073] La unidad de compensación de movimiento 72 también puede realizar interpolación en base a filtros de interpolación. La unidad de compensación de movimiento 72 puede usar filtros de interpolación como los usados por el codificador de vídeo 20 durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles fraccionarios de bloques de referencia. En este caso, la unidad de compensación de movimiento 72 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 a partir de los elementos de sintaxis recibidos y usar los filtros de interpolación para producir bloques predictivos.
[0074] La unidad de cuantificación inversa 76 cuantifica de forma inversa, es decir, descuantifica, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y decodificados por la unidad de decodificación por entropía 70. El procedimiento de cuantificación inversa puede incluir el uso de un parámetro de cuantificación QPy calculado por el decodificador de vídeo 30 para cada bloque de vídeo en el fragmento de vídeo para determinar un grado de cuantificación y, asimismo, un grado de cuantificación inversa que se debería aplicar.
[0075] La unidad de transformada inversa 78 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.
[0076] Después de que la unidad de compensación de movimiento 72 genere el bloque predictivo para el bloque de vídeo actual en base a los vectores de movimiento y otros elementos sintácticos, el decodificador de vídeo 30 forma un bloque de vídeo decodificado sumando los bloques residuales de la unidad de transformada inversa 78 a los bloques predictivos correspondientes generados por la unidad de compensación de movimiento 72. El sumador 80 representa el componente o los componentes que realizan esta operación de suma. Si se desea, también se puede aplicar un filtro de desbloqueo para filtrar los bloques decodificados para eliminar distorsiones de pixelado. También se pueden usar otros filtros en bucle (bien en el bucle de codificación o bien después del bucle de codificación) para suavizar las transiciones entre píxeles o mejorar de otro modo la calidad de vídeo. Los bloques de vídeo decodificados en una trama o imagen dada se almacenan a continuación en la memoria de imágenes de referencia 82, que almacena imágenes de referencia usadas para la compensación de movimiento posterior. La memoria de imágenes de referencia 82 también almacena vídeo decodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la FIG. 1.
[0077] El decodificador de vídeo 30 en general usa el proceso analizado anteriormente para decodificar cada bloque de cada imagen en una secuencia de vídeo codificada. Además, en algunos ejemplos, el decodificador de vídeo 30 puede decodificar datos que indiquen capas temporales a las cuales se asignan imágenes. Además, el decodificador de vídeo 30 se puede configurar para decodificar imágenes de otras capas, por ejemplo, otras vistas, capas de codificación de vídeo escalables o similares. En cualquier caso, el decodificador de vídeo 30 puede decodificar además datos que indiquen una capa a la cual pertenece cada imagen, para una o más capas (por ejemplo, de diversas dimensiones de vídeo).
[0078] De acuerdo con las técnicas descritas en el presente documento, el decodificador de vídeo 30 puede decodificar imágenes de datos de vídeo donde una o más regiones de la imagen son accesibles de forma aleatoria y una o más regiones de la imagen no son accesibles de forma aleatoria. El decodificador de vídeo 30 puede recibir datos de vídeo VR con una pluralidad de imágenes y decodificar una o más de las imágenes dependiendo de una ventana de observación actual. Cuando el decodificador de vídeo 30 cambia los puntos de vista, el decodificador de vídeo 30 puede buscar una región accesible de forma aleatoria en una o más de las imágenes de la nueva ventana de observación. La región de acceso aleatorio puede estar en una imagen que incluya además otras regiones que no sean accesibles de forma aleatoria. Después de localizar una región que tenga accesibilidad aleatoria, el decodificador de vídeo 30 puede decodificar primero la región accesible de forma aleatoria antes de decodificar el resto de las imágenes en la nueva ventana de observación. El decodificador de vídeo 30 puede determinar qué regiones son accesibles de forma aleatoria en base a elementos de sintaxis recibidos en un flujo de bits desde el codificador de vídeo 20.
[0079] Con los fines de la presente divulgación, el acceso aleatorio se refiere a la decodificación de un flujo de bits de vídeo a partir de una imagen codificada que no es la primera imagen codificada en el flujo de bits. Se necesita acceso aleatorio a un flujo de bits en muchas aplicaciones de vídeo, tales como radiodifusión y transmisión continua, por ejemplo, para que los usuarios conmuten entre diferentes canales, para saltar a partes específicas del vídeo o para conmutar a un flujo de bits diferente para la adaptación de transmisión continua (de la tasa de bits binaria, la tasa de tramas, la resolución espacial, y así sucesivamente). Esta función se habilita insertando imágenes de acceso aleatorio o puntos de acceso aleatorio muchas veces en intervalos regulares, en el flujo de bits de vídeo.
[0080] La división de flujos de bits se refiere a la concatenación de dos o más flujos de bits o partes de los mismos. Por ejemplo, un segundo flujo de bits se puede adjuntar a un primer flujo de bits, posiblemente con algunas modificaciones a uno cualquiera o a ambos flujos de bits para generar un flujo de bits dividido. La primera imagen codificada del segundo flujo de bits también se denomina punto de división. Por lo tanto, las imágenes que siguen al punto de división en el flujo de bits dividido se originan a partir del segundo flujo de bits, mientras que las imágenes precedentes al punto de división en el flujo de bits dividido se originan a partir del primer flujo de bits.
[0081] La división de flujos de bits se puede realizar mediante divisores de flujos de bits. Los divisores de flujo de bits a menudo son ligeros (es decir, requieren menos hardware o un software menos complicado) y menos inteligentes que los codificadores. Por ejemplo, los divisores de flujos de bits pueden no estar equipados con capacidades de decodificación y codificación por entropía.
[0082] La conmutación de flujo de bits se puede usar en entornos de transmisión continua adaptativa. Una operación de conmutación de flujo de bits a una imagen determinada en el flujo de bits conmutado es efectivamente una operación de división de flujo de bits, en la que el punto de división es el punto de conmutación de flujo de bits, es decir, la primera imagen del flujo de bits conmutado.
[0083] Las imágenes de actualización de decodificación instantánea (IDR) como se especifica en AVC o HEVC se pueden usar para el acceso aleatorio. Sin embargo, dado que las imágenes que siguen una imagen IDR en orden de decodificación no pueden usar imágenes decodificadas antes de la imagen IDR como referencia, los flujos de bits que dependen de imágenes IDR para acceso aleatorio pueden tener una eficacia de codificación significativamente menor.
[0084] Para mejorar la eficiencia de codificación, el concepto de imágenes de acceso aleatorio limpio (CRA) se introdujo en HEVC para permitir imágenes que siguieran a una imagen CRA en orden de decodificación, pero que la precedieran en orden de salida para usar imágenes decodificadas antes de la imagen CRA como imágenes de referencia. Las imágenes que siguen a una imagen CRA en orden de decodificación, pero preceden a la imagen CRA en orden de salida, se denominan imágenes principales asociadas con la imagen CRA (o imágenes principales de la imagen CRA). Las imágenes principales de una imagen CRA son correctamente decodificables si la decodificación comienza a partir de una imagen IDR o CRA anterior a la imagen CRA actual. Sin embargo, las imágenes principales de una imagen CRA pueden no ser decodificables cuando se produzca un acceso aleatorio a partir de la imagen CRA. Como tal, las imágenes principales se descartan típicamente durante la decodificación de acceso aleatorio. Para evitar la propagación de errores a partir de imágenes de referencia que pueden no estar disponibles dependiendo de dónde comienza la decodificación, todas las imágenes que siguen a una imagen CRA tanto en orden de decodificación como en orden de salida no deben usar ninguna imagen que preceda a la imagen CRA en orden de decodificación u orden de salida (lo cual incluye las imágenes principales) como referencia.
[0085] El concepto de una imagen de acceso de enlace roto (BLA) se introdujo más en la HEVC después de la introducción de las imágenes CRA, y se basa en el concepto de las imágenes CRA. Una imagen BLA se origina típicamente a partir de una operación de división de flujo de bits en la posición de una imagen CRA. En el flujo de bits dividido, la imagen CRA del punto de división se cambia a una imagen BLA.
[0086] La imagen IDR, la imagen CRA y la imagen BLA se denominan conjuntamente imágenes de punto de acceso intraaleatorio (RAP). Una diferencia entre imágenes BLA e imágenes CRA es que, para una imagen CRA, las imágenes principales asociadas son correctamente decodificables si la decodificación comienza a partir de una imagen RAP antes de la imagen CRA en orden de decodificación, y pueden no ser correctamente decodificables cuando se produzca un acceso aleatorio a partir de la imagen CRA (es decir, cuando la decodificación comienza a partir de la imagen CRA, o, en otras palabras, cuando la imagen CRA sea la primera imagen en el flujo de bits). Para una imagen BLA, las imágenes principales asociadas pueden ser no decodificables en todos los casos, incluso cuando la decodificación comienza a partir de una imagen RAP antes de la imagen BLA en orden de decodificación.
[0087] Para una imagen CRA o BLA particular, algunas de las imágenes principales asociadas son correctamente decodificables incluso cuando la imagen CRA o BLA es la primera imagen en el flujo de bits. Estas imágenes principales se denominan imágenes principales decodificables de acceso aleatorio (RADL) y otras imágenes principales se denominan imágenes principales omitidas de acceso aleatorio (RASL).
[0088] El acceso aleatorio se puede usar en diversas aplicaciones, incluyendo la realidad virtual (VR). La VR es la capacidad de estar virtualmente presente en un mundo no físico creado por la renderización de imágenes y sonidos naturales y/o sintéticos correlacionados por los movimientos del usuario sumergido que permiten interactuar con ese mundo. Con el reciente progreso realizado en dispositivos de renderización, tales como las pantallas montadas en el encabezado (HMD) y la creación de vídeo VR (a menudo también conocido como vídeo de 360 grados), se puede ofrecer una experiencia de calidad significativa. Las aplicaciones VR incluyen juegos, entrenamiento, educación, vídeos deportivos, compras en línea, entretenimiento para adultos, y así sucesivamente.
[0089] Un sistema VR típico puede incluir diversos componentes y pasos. Se puede usar un conjunto de cámaras para capturar vídeo VR, que típicamente consiste en múltiples cámaras individuales que apuntan a diferentes direcciones e idealmente cubren todos los puntos de vista alrededor del conjunto de cámaras. Desde estos puntos de vista, un dispositivo de vídeo puede utilizar el proceso de unión de imágenes, donde las imágenes de vídeo tomadas por las múltiples cámaras individuales se sincronizan en el dominio de tiempo y se unen en el dominio de espacio para ser un vídeo esférico, pero se mapean a un formato rectangular, tal como equirrectangular (como un mapa del mundo) o mapa de cubos. El vídeo en el formato rectangular mapeado se puede codificar/comprimir usando un códec de vídeo, por ejemplo, H.265/HEVC o H.264/AVC.
[0090] El o los flujos de bits de vídeo comprimido se pueden almacenar y/o encapsular en un formato de medios y transmitir (posiblemente solo el subconjunto que cubre solo el área que está viendo un usuario) a través de una red a un receptor. El receptor recibe el o los flujos de bits de vídeo o parte de los mismos, posiblemente encapsulados en un formato, y envía la señal de vídeo decodificada o parte de la misma a un dispositivo de renderización. El dispositivo de renderización puede ser, por ejemplo, un HMD, que puede seguir el movimiento de la cabeza e incluso el momento del movimiento de los ojos y renderizar la parte correspondiente del vídeo de modo que el usuario reciba una experiencia inmersiva.
[0091] Una función distintiva del vídeo VR en comparación con el vídeo normal es que, en VR, típicamente solo se puede visualizar un subconjunto de la región de vídeo completa representada por las imágenes de vídeo, correspondiente al campo de visión (FOV) actual, mientras que, en aplicaciones de vídeo normales, se visualiza típicamente toda la región de vídeo. El FOV a veces también se denomina ventana de observación, por ejemplo, el área que el usuario está viendo actualmente. Esta función se puede utilizar para mejorar el rendimiento de los sistemas de vídeo VR, por ejemplo, usando el mapeo de proyección dependiente de la ventana de observación o la codificación de vídeo dependiente de la ventana de observación. La mejora del rendimiento puede ser de menor ancho de banda de transmisión y menor complejidad de decodificación en comparación con los sistemas de vídeo VR convencionales con la misma resolución o calidad de la parte de vídeo presentada al usuario.
[0092] El mapeo de proyección dependiente de la ventana de observación también se puede denominar mapeo de proyección asimétrico. Un ejemplo es el mapa de cubos submuestreado. Un mapa de cubos típico consiste en seis caras de igual tamaño. En un ejemplo de un mapa de cubos submuestreado, una de las caras se puede mantener sin cambios, mientras que la cara en el lado opuesto del cubo se puede submuestrear o reducir la escala a un tamaño más pequeño localizado en el área central de la forma de la cara original, y otras caras se escalan geométricamente en consecuencia (manteniendo las seis caras). El ejemplo extremo es reducir la escala de la cara en el lado opuesto del cubo para que sea un solo punto, y por tanto el cubo se convierte en una pirámide. En otro ejemplo de mapa de cubos submuestreado, algunas caras se reducen proporcionalmente, por ejemplo, en una proporción de 2x2 (es decir, 2:1 en cada dirección paralela a un borde de la cara). Dicha escala reducida también se puede aplicar a diferentes regiones para otros mapeos de proyección tales como equirrectangular. Un ejemplo es reducir el tamaño de las regiones superior e inferior (es decir, los polos) de la forma.
[0093] La codificación de vídeo dependiente de la ventana de observación también se puede denominar decodificación de vídeo parcial basada en la ventana de observación, ya que la clave puede ser permitir la decodificación solo parcialmente para la región de vídeo codificada para proporcionar información suficiente para la visualización del FOV o de la ventana de observación actual. En un ejemplo de codificación de vídeo dependiente de la ventana de observación, el vídeo VR se puede codificar usando conjuntos de mosaicos con limitación de movimiento de modo que cada región potencial que cubre un FOV o una ventana de observación se puede decodificar independientemente de otras regiones. Para un FOV o una ventaja de observación actual en particular, los datos de vídeo codificados del conjunto mínimo de mosaicos decodificables independientemente que cubren el FOV o la ventaja de observación actual se pueden enviar al cliente, decodificar y visualizar. Una deficiencia de este enfoque puede ser que, cuando el usuario vuelve la cabeza rápidamente a un nuevo FOV que no está cubierto por los datos de vídeo enviados, no se puede ver nada en el área no cubierta por los mosaicos de los datos de vídeo antes de que lleguen los datos que cubren el nuevo FOV. Esto puede suceder a menos que el tiempo de ida y vuelta de la red sea extremadamente bajo, por ejemplo, en una magnitud de 10 ms, lo que puede no ser factible, o al menos puede ser un criterio computacionalmente desafiante.
[0094] Otro ejemplo de codificación de vídeo dependiente de la ventana de observación puede ser la codificación de resolución múltiple independiente (IMRC). En la IMRC, el vídeo esférico/panorámico se puede codificar en múltiples resoluciones diferentes independientes entre sí, y cada representación se puede codificar usando conjuntos de mosaicos con restricción de movimiento. El receptor puede optar por decodificar diferentes porciones del vídeo esférico/panorámico a diferentes resoluciones. Típicamente, la porción del vídeo esférico que el usuario está observando actualmente, es decir, el campo de visión actual (FOV) o la ventana de visualización actual, puede ser parte del flujo de bits de vídeo codificado con la resolución más alta. La región que rodea el FOV actual es parte del flujo de bits de vídeo codificado con una resolución ligeramente más baja. La porción del panorama directamente detrás de la cabeza del observador es parte del flujo de bits de vídeo codificado con la resolución más baja. Se reivindica que, en caso de un movimiento de cabeza por parte del usuario, la experiencia del usuario se degradará solo en una pequeña cantidad en la mayoría de los casos, y la degradación de la calidad será más severa solo en caso de un movimiento repentino de cabeza muy grande.
[0095] En otro ejemplo más de codificación de vídeo dependiente de la ventana de observación, los flujos de bits de vídeo de múltiples resoluciones se codifican usando un códec de vídeo escalable, tal como SHVC. Además, se puede enviar todo el flujo de bits del vídeo de menor resolución (o la capa base). No es necesario codificar el vídeo de menor resolución mediante mosaicos o conjuntos de mosaicos con restricción de movimiento, aunque este procedimiento de codificación de vídeo dependiente de la ventana de observación también funcionaría si se codificara mediante mosaicos o conjuntos de mosaicos con restricción de movimiento. Para otros aspectos, se aplica la misma estrategia descrita anteriormente. Este enfoque permite una codificación más eficaz del vídeo de resolución más baja porque la codificación de mosaicos o conjuntos de mosaicos restringidos de movimiento de mosaicos reduce la eficacia de codificación, y también una codificación más eficaz de flujos de resoluciones más altas debido al uso de predicción entre capas. Además, este enfoque también permite una conmutación de FOV más eficaz, porque, una vez que se inicia la conmutación de FOV, el servidor o servidor perimetral puede dejar de enviar inmediatamente datos de vídeo que provengan de la transmisión continua de vídeo de una resolución más alta (que la capa base) y que no sea cubriendo cualquier región del nuevo FOV. Si los datos de vídeo de la resolución más baja que cubren el campo de visión actual no se envían (por ejemplo, solo se envían los datos de vídeo de la resolución más alta que cubren el campo de visión actual), durante el cambio de campo de visión, el servidor puede continuar enviando datos de vídeo que provengan de la transmisión continua de vídeo de una resolución más alta y que cubra solo el antiguo FOV o parte del mismo, de modo que el usuario pueda al menos ver el vídeo de menor calidad en caso de que vuelva al antiguo FOV o parte del mismo.
[0096] Al usar sistemas VR dependientes de la ventana de observación, cuando un usuario cambia su VR, la decodificación y la visualización de la nueva ventana solo pueden comenzar desde la siguiente imagen IRAP. Típicamente, una imagen IRAP está presente con poca frecuencia (por ejemplo, una vez por segundo) en un flujo de bits codificado porque la codificación de una imagen IRAP es mucho menos eficaz y, por tanto, requiere muchos más bits en comparación con otros tipos de imágenes codificadas (por ejemplo, imagen P o imagen B). Cuando un sistema de realidad virtual usa el mapeo de proyección dependiente de la ventana de observación, hasta que se reciba la siguiente imagen IRAP en la nueva ventana de observación, el reproductor VR solo puede visualizar una región de la ventana de observación actual que tenga una calidad de imagen más baja, ya que el campo de visión del usuario puede no ser la parte de la imagen en esa ventana de observación que está codificada con la calidad más alta debido a la distribución en gran medida desigual de píxeles por grado de dichas asignaciones de proyección. De forma similar, cuando un sistema VR usa decodificación de vídeo parcial dependiente de la ventana de observación (por ejemplo, IMRC o el esquema de decodificación de vídeo parcial basado en SHVC), hasta que la siguiente imagen IRAP esté presente en la representación o capa con alta calidad/resolución, el reproductor VR solo puede visualizar regiones de una representación/capa con menor calidad/resolución. Para minimizar el período de visualización de regiones de menor calidad/resolución cuando el usuario cambie su FOV, un dispositivo de codificación de vídeo puede codificar el flujo de bits con imágenes IRAP más frecuentes. Sin embargo, dicha estrategia reduce en consecuencia la eficiencia de codificación del flujo de bits y hace que el flujo de bits tenga una tasa de bits más alta.
[0097] La presente divulgación describe técnicas para abordar el problema mencionado anteriormente. Una o más de estas técnicas descritas a continuación se pueden aplicar independientemente o en combinación con otras.
[0098] En lugar de codificar una imagen completa como una imagen IRAP, el codificador de vídeo 20 puede codificar solo una o más regiones que cubran un subconjunto de la imagen completa con accesibilidad aleatoria. Se dice que una región de una imagen en particular tiene (o se dice que tiene) accesibilidad aleatoria si es posible decodificar correctamente la región de la imagen en particular y las regiones correspondientes en todas las imágenes posteriores en orden de salida, cuando se codifican datos de vídeo de todas las demás regiones de estas imágenes no están disponibles y no hay imágenes que precedan a la imagen en particular en el orden de decodificación. Esto puede implicar la región de la imagen en particular y las regiones correspondientes en todas las imágenes posteriores en el orden de salida que no depende, directa o indirectamente, de los datos de vídeo codificados de las imágenes precedentes a la imagen particular en el orden de decodificación o datos de vídeo codificados de cualquier otra región todas estas fotos. De forma alternativa, ambas casos de "en orden de salida" anteriores se pueden cambiar a "en orden de decodificación".
[0099] Para las imágenes que siguen a la imagen con una región accesible de forma aleatoria en el orden de codificación, o para otras regiones dentro de la misma imagen que la región accesible de forma aleatoria, el codificador de vídeo 20 puede utilizar la información de movimiento usada para codificar la región accesible de forma aleatoria en la codificación de la respectiva región. En otras palabras, las otras regiones en la misma imagen que la región accesible de forma aleatoria o las imágenes que siguen a la región accesible de forma aleatoria en el orden de codificación o en el orden de salida pueden ser dependientes de la región accesible de forma aleatoria, o pueden ser dependientes de otras regiones que son a su vez dependientes de la región accesible de forma aleatoria.
[0100] Las regiones codificadas para ser accesibles de forma aleatoria pueden ser mosaicos, fragmentos, conjuntos de mosaicos, conjuntos de fragmentos u otras regiones que sean subconjuntos de imágenes. La región correspondiente se puede definir como la región colocada espacialmente, o como una región diferente definida de otro modo. Una región que tiene accesibilidad aleatoria se denomina región de acceso aleatorio y se dice que es de acceso aleatorio. Un ejemplo de una región accesible de forma aleatoria es un mosaico que está intracodificado y sus mosaicos colocados en las imágenes posteriores se codifican con restricción de movimiento como un mosaico que es el único mosaico en un conjunto de mosaicos con restricción de movimiento, como lo indica la restricción de movimiento temporal. El mosaico establece el mensaje SEI en HEVC. También se dice que una imagen IRAP es completamente accesible de forma aleatoria, y una imagen que contiene regiones accesibles de forma aleatoria, pero que también puede contener regiones que no sean accesibles de forma aleatoria, también se dice que es accesible de forma aleatoria regional. Cuando todas las regiones de una imagen son accesibles de forma aleatoria, entonces la imagen es completamente accesible de forma aleatoria y se puede codificar como una imagen IRAP. Sin embargo, una región en una imagen IRAP puede o no ser accesible de forma aleatoria. En otras palabras, una imagen completamente accesible de forma aleatoria puede o no ser accesible de forma aleatoria regional.
[0101] El codificador de vídeo 20 puede usar además indicación/señalización para indicar una región accesible de forma aleatoria. El codificador de vídeo 20 puede proporcionar dicha señalización en un encabezado de imagen codificada, un encabezado de un fragmento, un encabezado de la región en sí (denominado encabezado de región para simplificar), algunos metadatos especiales en un archivo ISOBMFF que contenga el flujo de bits, una información de mejora suplementaria especial (SEI) o cualquier otro medio.
[0102] Se puede definir un nuevo tipo de imagen para indicar una imagen accesible de forma aleatoria regional, es decir, una imagen en la que una o más regiones/fragmentos/mosaicos dentro de esa imagen son accesibles de forma aleatoria. Para este nuevo tipo de imagen (por ejemplo, identificado por un tipo de unidad NAL en particular), se proporciona señalización adicional para indicar qué región de la imagen es accesible de forma aleatoria (por ejemplo, mediante un campo o elemento de sintaxis en el encabezado de la unidad NAL, en el encabezado de fragmento o en el encabezado de región).
[0103] De forma alternativa, la definición de imagen IRAP se puede ampliar de modo que se pueda decir que una imagen es una imagen IRAP si una o más regiones/fragmentos/mosaicos en esa imagen son accesibles de forma aleatoria. En este caso, una imagen IRAP es una imagen accesible de forma aleatoria regional.
[0104] El codificador de vídeo 20 también puede proporcionar una indicación o señalización para indicar si las regiones correspondientes a una región accesible de forma aleatoria en las imágenes posteriores en el orden de decodificación pero antes en el orden de salida (como las imágenes iniciales) se pueden decodificar correctamente. El codificador de vídeo 20 puede usar nuevos tipos de imágenes (por ejemplo, identificadas por tipos de unidades NAL similares a las imágenes RADL y RASL en HEVC) con este fin.
[0105] Para el formateado, se puede definir una nueva agrupación de muestras para indicar muestras para las cuales las imágenes tienen regiones codificadas, fragmentos, mosaicos, conjuntos de fragmentos o conjuntos de mosaicos que son accesibles de forma aleatoria. De forma alternativa, la agrupación de muestras existente para muestras de puntos de acceso aleatorio (RAP) se puede actualizar para tener una indicación de si las muestras son completamente accesibles de forma aleatoria o accesibles de forma aleatoria regionales. Para el último caso, se indican además las regiones accesibles de forma aleatoria.
[0106] La FIG. 4 es un diagrama conceptual que ilustra un ejemplo de entrelazado de regiones accesibles de forma aleatoria 90A-90D, 91A-91D, 92A-92D, 93A-93D y 94A-94D, de acuerdo con una o más técnicas descritas en la presente divulgación. Las regiones accesibles de forma aleatoria (por ejemplo, las regiones 90A, 90C, 93B y 93D) pueden estar presentes en una frecuencia regular y uniforme (por ejemplo, cada 16 imágenes o 32 imágenes, etc.; o cada 0,5 segundos, 1 segundo o 2 segundos, etc.). Además, aunque la frecuencia de ocurrencia de regiones accesibles de forma aleatoria puede ser la misma, se pueden producir de manera intercalada, tal como se ilustra en la FIG. 4.
[0107] Las regiones accesibles de forma aleatoria también pueden estar presentes en una frecuencia no regular. Una región se puede codificar para que sea accesible de forma aleatoria con más frecuencia (por lo tanto, codificar para ser accesible de forma aleatoria en más imágenes) que otra región. La frecuencia de ocurrencia de una región accesible de forma aleatoria puede depender de muchos factores. Los factores pueden incluir funciones de la escena o del contenido, por ejemplo, las regiones que contienen una nueva escena, más acción o más movimientos de objetos se pueden codificar para que sean accesibles de forma aleatoria con más frecuencia que otras regiones. Otro factor puede incluir la intención del director, por ejemplo, las regiones que cubren los FOV en los que se espera que los usuarios se centren de acuerdo con la intención del director se pueden codificar para ser accesibles de forma aleatoria con más frecuencia que otras regiones.
[0108] La FIG. 5 es un diagrama conceptual que ilustra secuencias 150 de datos de vídeo para dos vistas, una vista del ojo izquierdo y una vista del ojo derecho. En particular, en este ejemplo, la vista del ojo izquierdo incluye imágenes de punto de acceso aleatorio (RAP) 154A, 154B e imágenes no RAP 156A-156E, y la vista del ojo derecho incluye imágenes no RAP158A-158E e imágenes RAP 160A, 160B. Las imágenes RAP también se pueden denominar puntos de conmutación. Un grupo de imágenes (GOP) en general se refiere a una secuencia de imágenes que incluye una imagen RAP y, posteriormente, imágenes no RAP en orden de codificación hasta la siguiente imagen RAP. En este ejemplo, los GOP tienen un período de GOP 152 de cuatro imágenes, aunque debería entenderse que este período de ejemplo se muestra a modo de ejemplo. En general, el período de GOP puede tener cualquier longitud/número de imágenes.
[0109] Además, las imágenes de la vista del ojo izquierdo y de la vista del ojo derecho en general tienen la misma calidad para los propósitos de las técnicas de la presente divulgación (por ejemplo, la misma resolución espacial). Por tanto, en general, estas imágenes se recuperarían para la vista del ojo izquierdo y la vista del ojo derecho juntas cuando se seleccionara una calidad particular, en base a una región a la cual se dirige el enfoque visual de un usuario. El enfoque visual del usuario se puede determinar, por ejemplo, usando acelerómetros, seguimiento de cámara u otros procedimientos similares.
[0110] De acuerdo con determinadas técnicas de ejemplo de la presente divulgación, la latencia relacionada con la estructura de GOP (retardo máximo de trama I) se puede reducir en el caso de datos de vídeo estéreo, como sigue. Las tramas I de los canales izquierdo y derecho (por ejemplo, imágenes RAP 154A, 154B, 160A, 160B) se pueden desplazar en el tiempo entre sí mediante el período de GOP de una mitad. Por tanto, el retardo en la trama I, ya sea en el canal izquierdo o en el canal derecho, siempre será menor o igual a / período de GOP. El ojo humano puede percibir una mejora en la calidad de la imagen si cualquiera de los ojos observa un contenido de mayor resolución. Por tanto, la latencia percibida cuando se cambia de baja resolución a alta resolución se puede reducir / de un período de GOP, usando estas técnicas.
[0111] En consecuencia, en el ejemplo de la FIG. 5, las imágenes RAP de la vista del ojo derecho se producen a medio camino entre los períodos de GOP de las imágenes RAP de la vista del ojo izquierdo. Es decir, la imagen RAP 160A de la vista del ojo derecho se produce a medio camino entre las imágenes RAP 154A, 154B de la vista del ojo izquierdo, y la imagen RAP 154B de la vista del ojo izquierdo se produce a medio camino entre las imágenes RAP 160A, 160B de la vista del ojo derecho.
[0112] Por tanto, si se produjera una conmutación a las imágenes de la vista del ojo izquierdo y la vista del ojo derecho en, por ejemplo, la imagen RAP 154A y la imagen no RAP 158A, el dispositivo de destino 14 puede cambiar a la vista del ojo izquierdo antes de cambiar a la vista del ojo derecho. Es decir, el dispositivo de destino 14 puede recuperar la imagen RAP 154 y la imagen no RAP 156A de la vista del ojo izquierdo, pero continuar recuperando imágenes de la vista del ojo derecho que tengan una calidad diferente (por ejemplo, resolución espacial) en lugar de las imágenes no RAP 158A, 158B. Entonces, al llegar a la imagen RAP 160A, el dispositivo de destino 14 puede recuperar la imagen no RAP 156B y la imagen RAP 160A. Esto puede reducir la latencia relacionada con la estructura de GOP, vis a vis si ambas imágenes RAP para las vistas del ojo izquierdo y derecho se produjeron en la posición de la imagen RAP 160A.
[0113] De forma similar, si el cambio se produjera en la posición de la imagen RAP 160A, el dispositivo de destino 14 puede recuperar la imagen RAP 160A y la imagen no RAP 158C de la vista del ojo derecho, pero continuar recuperando imágenes de una vista anterior del ojo izquierdo en lugar de imágenes no RAP 156B, 156C. Sin embargo, al llegar a la imagen RAP 154B, el dispositivo de destino 14 puede recuperar la imagen RAP 154B y la imagen no RAP 158D.
[0114] En el caso de que el enfoque visual del usuario cambie y los datos de vídeo incluyan dos o más vistas (por ejemplo, para su reproducción tridimensional), la unidad de determinación de región 34 puede conmutar conjuntos de datos de vídeo para las vistas en diferentes momentos, como se explica con respecto a la FIG. 5. Es decir, los puntos de acceso aleatorio (RAP) de las vistas, también denominados puntos de conmutación, se pueden desplazar entre las vistas, lo que puede reducir la latencia asociada con la conmutación de un conjunto de datos de vídeo a otro. De esta manera, los datos de vídeo se pueden recuperar de un conjunto de datos de vídeo para una vista que tenga una calidad más alta que los datos de vídeo recuperados de otro conjunto de datos de vídeo para otra vista, hasta que se pueda recuperar una imagen RAP de la otra vista.
[0115] La calidad de los diversos conjuntos de datos de vídeo se puede definir de acuerdo con una o más funciones. Como se explicó anteriormente, un ejemplo de métrica de calidad es la resolución espacial (es decir, la densidad de píxeles). Otra métrica de calidad posible, que se puede utilizar de forma adicional o alternativa, es la tasa de bits de los datos de vídeo correspondientes. De esta manera, se pueden proporcionar diferentes representaciones de datos de vídeo (por ejemplo, de acuerdo con la transmisión dinámica adaptativa sobre HTTP (DASH)) para cada una de las regiones. Por ejemplo, se pueden proporcionar diversas representaciones para cada una de las regiones y, en algunos ejemplos, se pueden proporcionar una o más representaciones que correspondan a múltiples regiones. Cada una de las representaciones para una región dada (o conjunto de regiones) en general puede ser conmutable a las otras, por ejemplo, de manera que los puntos de conmutación o los puntos de acceso aleatorio (RAP) se puedan alinear entre las representaciones.
[0116] Además, cada una de las representaciones de una región dada (o conjunto de regiones) puede tener una tasa de bits distinta. Un archivo de manifiesto, tal como una descripción de presentación de medios (MPD), puede incluir metadatos para las representaciones, tales como velocidades de bits de las representaciones, localizadores de recursos uniformes (URL) para segmentos de las representaciones y/o un mapeo de representaciones a regiones de la pantalla. El archivo de metadatos/manifiesto también puede describir localizaciones de puntos de conmutación dentro de las representaciones. De esta manera, el dispositivo de destino 14 puede seleccionar una representación para una región en base al enfoque visual de un usuario (y por tanto la proximidad de la región al campo de visión del usuario) y a la calidad de la representación, que se puede referir a la tasa de bits de la representación. Otros ejemplos de funciones de calidad incluyen parámetros de cuantificación (QP) para bloques, fragmentos y/o imágenes en los datos de vídeo, proporción de señal con respecto a ruido (PSNR) para los datos de vídeo y tasas de bits para los datos de vídeo.
[0117] La FIG. 6 es un diagrama de flujo que ilustra una técnica de ejemplo para determinar una región accesible de forma aleatoria dentro de una imagen de datos de vídeo de acuerdo con una o más técnicas descritas en la presente divulgación. El procedimiento de la FIG. 6 se explica con respecto a un dispositivo de codificación de vídeo, tal como el codificador de vídeo 20 de la FIG. 1, aunque debe entenderse que se pueden configurar otros dispositivos para realizar el mismo procedimiento o uno similar.
[0118] De acuerdo con las técnicas de la presente divulgación, el dispositivo de codificación de vídeo puede determinar si una región en una imagen tiene accesibilidad aleatoria. Por ejemplo, el dispositivo de codificación de vídeo puede recibir una pluralidad de imágenes en un orden de codificación (102). Cada imagen respectiva de la pluralidad de imágenes comprende una pluralidad de regiones. Para una primera región en una primera imagen de la pluralidad de imágenes, el dispositivo de codificación de vídeo puede determinar que la primera región es codificable independiente de las demás regiones de la primera imagen (104).
[0119] Si el dispositivo de codificación de vídeo determina que esto es cierto (rama SÍ de 104), el dispositivo de codificación de vídeo también puede determinar que la primera región es codificable independiente de una primera región en una segunda imagen precedente a la primera imagen en el orden de codificación (106). En algunos ejemplos, la primera región respectiva puede ser un mosaico, un fragmento, un conjunto de mosaicos o un conjunto de fragmentos. En algunos ejemplos, al determinar que la primera región es codificable independiente de una primera región en una segunda imagen precedente a la primera imagen en el orden de codificación, el dispositivo de codificación de vídeo puede determinar que un elemento de sintaxis respectivo en un encabezado de unidad NAL respectivo en cada imagen respectiva precedente a la primera imagen en el orden de codificación indica que la imagen respectiva no está disponible.
[0120] En respuesta a la determinación de que la primera región es codificable independiente de las demás regiones de la primera imagen y que la primera región es codificable independiente de la primera región en la segunda imagen precedente a la primera imagen en el orden de codificación (rama SÍ de 106), el dispositivo de codificación de vídeo puede determinar que la primera región respectiva en la primera imagen tiene accesibilidad aleatoria (108). El dispositivo de codificación de vídeo puede entonces codificar cada bloque de vídeo en la primera región en la primera imagen independiente de cada otra región de la primera imagen e independiente de la primera región en la segunda imagen precedente a la primera imagen en el orden de codificación (110).
[0121] Si el dispositivo de codificación de vídeo determina que la primera región no es codificable independiente de otras regiones de la primera imagen (rama NO de 104) o que la primera región no es codificable independiente de la primera región en la segunda imagen precedente a la primera imagen en el orden de codificación (rama NO de 106), el dispositivo de codificación de vídeo puede determinar que la primera región respectiva en la primera imagen no tiene accesibilidad aleatoria (112). Como tal, el dispositivo de codificación de vídeo puede codificar un bloque de vídeo en la primera región en la primera imagen en base al menos en parte a información de movimiento para un bloque de vídeo en otra región de la primera imagen o en base al menos en parte a información de movimiento para un bloque de vídeo en una región de una imagen precedente a la primera imagen en el orden de codificación (114).
[0122] En algunos ejemplos, el dispositivo de codificación de vídeo puede determinar además que cada región en la primera imagen tiene accesibilidad aleatoria. En respuesta a la determinación de que cada región en la primera imagen tiene accesibilidad aleatoria, el dispositivo de codificación de vídeo puede determinar que la primera imagen es una imagen de punto de acceso intraaleatorio. Como tal, el dispositivo de codificación de vídeo puede codificar cada bloque de vídeo en la primera imagen independiente de cada una de las otras imágenes en el orden de codificación.
[0123] En algunos ejemplos, en respuesta a la determinación de que la primera región tiene accesibilidad aleatoria, el dispositivo de codificación de vídeo puede señalar un elemento de sintaxis que indique que la primera región tiene accesibilidad aleatoria. El elemento de sintaxis puede estar localizado en un encabezado de la primera imagen, en un encabezado de un fragmento, en un encabezado de la primera región respectiva, en un encabezado de unidad NAL o en metadatos. El dispositivo de codificación de vídeo puede codificar el elemento de sintaxis en un flujo de bits.
[0124] En algunos ejemplos, en respuesta a la determinación de que la primera región respectiva tiene accesibilidad aleatoria, el dispositivo de codificación de vídeo puede determinar que la primera imagen es una imagen de punto de acceso intraaleatorio. En respuesta a la determinación de que la primera imagen es la imagen de punto de acceso intraaleatorio, el dispositivo de codificación de vídeo puede señalar un elemento de sintaxis que indique que la primera imagen es la imagen de punto de acceso intraaleatorio. El dispositivo de codificación de vídeo puede entonces codificar el elemento de sintaxis en un flujo de bits.
[0125] En algunos ejemplos, el dispositivo de codificación de vídeo puede definir una agrupación de muestras para indicar que la primera imagen tiene una región accesible de forma aleatoria. De forma alternativa, el dispositivo de codificación de vídeo puede definir una agrupación de muestras para indicar si la primera imagen es completamente accesible de forma aleatoria o si solo una porción de las regiones de la primera imagen son accesibles de forma aleatoria.
[0126] En algunos ejemplos, el dispositivo de codificación de vídeo puede además, para una tercera imagen que sigue a la primera imagen en el orden de codificación, determinar que se ha codificado un número umbral de imágenes en el orden de codificación desde que se codificó la primera región de la primera imagen. En respuesta a la determinación de que el número umbral de imágenes en el orden de codificación se ha codificado desde que se codificó la primera región de la primera imagen, el dispositivo de codificación de vídeo puede determinar que una región en la tercera imagen correspondiente a la primera región de la primera imagen tiene accesibilidad aleatoria. Como tal, el dispositivo de codificación de vídeo puede codificar cada bloque de vídeo en la región de la tercera imagen correspondiente a la primera región de la tercera imagen independiente de cada región de la tercera imagen e independiente de cualquier región en una cuarta imagen precedente a la tercera imagen en el orden de codificación.
[0127] La FIG. 7 es un diagrama conceptual que ilustra un cubo de datos de vídeo de 360 grados que tiene seis caras, dividida cada una en cuatro mosaicos, para un total de veinticuatro mosaicos (o regiones). Los mosaicos están representados en un espacio tridimensional de los ejes x, y, z y cada cara cuadrada mostrada tiene un área de una unidad por una unidad en el espacio bidimensional correspondiente. Una primera cara contiene los mosaicos 3, 4, 9 y 10, una segunda cara contiene los mosaicos 1,2, 7 y 8, una tercera cara contiene los mosaicos 15, 16, 21 y 22, una cuarta cara contiene los mosaicos 13, 14, 19 y 20, una quinta cara contiene 5, 6, 11 y 12, y una última, sexta cara contiene los mosaicos 17, 18, 23 y 24.
[0128] Un algoritmo de ejemplo para pedir datos de vídeo para mosaicos, teniendo los datos de vídeo diferentes calidades (por ejemplo, resoluciones espaciales), en base al campo de visión de un usuario (FOV), se describe con respecto a las FIGS. 7 y 8 a continuación. El dispositivo de destino 14 (por ejemplo, la unidad de determinación de región 34) se puede configurar para realizar este o un algoritmo similar.
[0129] Se supone que la unidad de determinación de región 34 recibe una entrada de mapa de cubos que tiene una configuración de veinticuatro mosaicos (cuatro mosaicos por cara del cubo) como se muestra en la FIG. 7. Se supone que los datos de vídeo están disponibles para cada uno de los mosaicos en cuatro calidades (por ejemplo, capas de resolución), y que los números de los mosaicos siguen el orden mostrado en la FIG. 7.
[0130] La FIG. 8 es un diagrama conceptual que ilustra ejemplos de mosaicos opuestos y mosaicos adyacentes para el mosaico número 3 de la FIG. 7. Para cada mosaico en la estructura del cubo, su mosaico opuesto se define como el mosaico obtenido al reflejar la localización del mosaico a través del centro del cubo. Los cuatro mosaicos adyacentes a un mosaico actual (por ejemplo, el mosaico 3) son los cuatro mosaicos que tienen bordes adyacentes en la estructura del cubo con el mosaico actual. Por ejemplo, como se ilustra en la FIG. 8, el mosaico opuesto del mosaico número 3 es el mosaico 21. Los mosaicos adyacentes del mosaico número 3 son los mosaicos 2, 4, 9 y 12. El número de mosaico opuesto y cuatro números de mosaico adyacentes para cada mosaico en la estructura del cubo se pueden guardar en una tabla de consulta en una memoria del dispositivo de destino 14, por ejemplo, una memoria de la unidad de determinación de región 34.
[0131] Dado el FOV de un usuario, el dispositivo de destino 14 puede ejecutar el algoritmo para resolver el problema de asignar los veinticuatro mosaicos de la estructura del cubo a diferentes calidades (por ejemplo, capas de resolución) de datos de vídeo, siendo la capa uno la de mayor calidad (por ejemplo, resolución), y la capa cuatro es la de menor calidad (por ejemplo, resolución). En base al FOV pedido por el usuario, el dispositivo de destino 14 ejecuta el algoritmo para calcular primero el área del FOV que está cubierta por cada mosaico. Para los propósitos de explicación, la resolución se usa como un ejemplo de calidad en el análisis a continuación, aunque debe entenderse que se pueden usar métricas de calidad adicionales y/o alternativas.
[0132] De acuerdo con el algoritmo, el dispositivo de destino 14 define un umbral para la cobertura de área A° (por ejemplo, 5 % de la superficie total de la proyección del mapa de cubos). Todos los mosaicos que cubren un área mayor o igual al umbral A° (es decir, mosaicos que tienen un área mayor que el área del umbral, por ejemplo, mayor o igual al 5 % del área total de la proyección del mapa del cubo, donde el área se puede calcular en píxeles) se asignan a la capa de resolución uno. El dispositivo de destino 14 asigna mosaicos opuestos de los mosaicos de la capa uno a la capa cuatro. El dispositivo de destino 14 asigna mosaicos que tienen cobertura de área no cero menor que el umbral A° a la capa de resolución dos, y mosaicos opuestos de la capa de dos azulejos a la capa tres. En esta etapa, el algoritmo normalmente ha causado que el dispositivo de destino 14 asigne la mayoría de los 24 mosaicos a sus correspondientes capas de resolución.
[0133] Para cada uno de los mosaicos restantes no asignados, el dispositivo de destino 14 puede calcular una métrica de mosaico Ta . La métrica de mosaico Ta para un mosaico determinado es igual a la suma de las áreas de FOV cubiertas por sus 4 mosaicos adyacentes. Por ejemplo, Ta para el mosaico 3 = suma de las áreas del campo de visión cubiertas por los mosaicos 2, 4, 9 y 12. El dispositivo de destino 14 puede clasificar los mosaicos restantes no asignados en un orden descendente en base a su métrica Ta . El dispositivo de destino 14 puede asignar la mitad de los mosaicos restantes con la Tas más alta a la capa de resolución dos, y la otra mitad con la Tas más baja a la capa de resolución tres.
[0134] Tenga en cuenta que el algoritmo solo se basa en la cobertura de área de cada mosaico. Por lo tanto, la complejidad de la asignación de mosaicos es baja. El uso de un umbral para la cobertura de área A° puede controlar el número máximo de mosaicos que se pedirán de la capa uno de mayor resolución. El algoritmo también equilibra las peticiones de diferentes capas de resolución aplicando condiciones: número de mosaicos de la capa uno = número de mosaicos de la capa cuatro y número de mosaicos de la capa dos = número de mosaicos de la capa tres, en el ejemplo analizado anteriormente. Por lo tanto, el algoritmo puede controlar el número máximo de píxeles decodificados totales en el dispositivo del observador en el peor de los casos, y garantizar que este número esté dentro de las capacidades del decodificador de usuario final (por ejemplo, decodificador de vídeo 30).
[0135] El algoritmo de petición de mosaico analizado anteriormente se puede simplificar a menos capas de resolución. Por ejemplo, si solo hay tres capas de resolución, entonces se puede realizar el mismo algoritmo, pero las asignaciones de mosaicos de las capas de resolución dos y tres (o capas tres y cuatro) se pueden combinar en una sola capa de resolución. El algoritmo se puede ampliar para usar más de cuatro capas de resolución definiendo más de un umbral para la cobertura del área de FOV. Finalmente, el algoritmo también se puede extender para cubrir diferentes representaciones geométricas del vídeo de entrada de 360 grados, además de la entrada CubeMap con veinticuatro mosaicos.
[0136] La FIG. 9 es un diagrama conceptual que ilustra una proyección de mapa de cubos 200 de ejemplo. La proyección de mapa de cubos 200 incluye seis caras 202A-202F (caras 202), incluyendo la cara frontal 202A, la cara superior 202B, la cara izquierda 202c , la cara inferior 202D, la cara derecha 202E y la cara trasera 202F. En este ejemplo, cualquiera o todas las caras 202 se pueden dividir en regiones (también denominadas en el presente documento mosaicos). Por ejemplo, cada una de las caras 202 se puede dividir en cuatro mosaicos, incluyendo un mosaico superior izquierdo, un mosaico superior derecho, un mosaico inferior izquierdo y un mosaico inferior derecho. Un dispositivo de origen, tal como el dispositivo de origen 12 (FIG. 1), puede proporcionar datos de vídeo en una variedad de niveles de calidad (por ejemplo, resoluciones espaciales, QP, tasas de bits, PSNR o similares) para cada uno de los mosaicos.
[0137] Además, se pueden combinar dos o más de los mosaicos. Por ejemplo, como se analiza anteriormente (por ejemplo, con respecto a la FIG. 4), el dispositivo de origen 12 (FIG. 1) puede proporcionar datos de vídeo para un mosaico grande, que puede abarcar cuatro mosaicos pequeños. Por ejemplo, el mosaico grande puede cubrir una de las caras 202 completa. Por tanto, puede estar disponible un conjunto separado de datos de vídeo para el mosaico grande, que puede incluir uno o más niveles de calidad para el mosaico grande.
[0138] Aunque es posible un mosaico grande que cubra una sola de las caras 202, como se analiza anteriormente, en otros ejemplos, los mosaicos más pequeños se pueden combinar de otras formas, de modo que los datos de vídeo estén disponibles para otras combinaciones de mosaicos. En el ejemplo de la FIG. 9, se muestran dos mosaicos horizontales 204A, 204B en la cara frontal 202A. Por tanto, aunque la cara frontal 202A se puede dividir en general en los cuatro mosaicos analizados anteriormente, los mosaicos superior izquierda y superior derecha se pueden combinar para formar el mosaico horizontal 204A, y los mosaicos inferior izquierda e inferior derecha se pueden combinar para formar un mosaico horizontal 204B. De esta manera, el dispositivo de origen 12 (FIG. 1) puede proporcionar datos de vídeo en uno o más niveles de calidad para los mosaicos horizontales 204A, 204B.
[0139] Por consiguiente, dependiendo del FOV de un usuario, el dispositivo de destino 14 (FIG. 1) y, en particular, la unidad de determinación de región 34, pueden determinar que los datos de vídeo deben recuperarse para uno o ambos mosaicos horizontales 204A, 204B. Por ejemplo, si el FOV de un usuario se dirige hacia o cerca del centro del borde que bordea la cara frontal 202A y la cara superior 202B, la unidad de determinación de región 34 puede recuperar una versión de alta calidad de datos de vídeo para el mosaico horizontal 204A, o una calidad intermedia versión de los datos de vídeo para el mosaico horizontal 204A.
[0140] Además, la FIG. 9 también muestra ejemplos de mosaicos más pequeños. Por ejemplo, el dispositivo de origen 12 (FIG. 1) puede proporcionar datos de vídeo para medios mosaicos, tales como el medio mosaico 206, o cuartos de mosaicos, tales como los cuartos de mosaicos 208A, 208B. En general, se pueden proporcionar datos de vídeo para cualquiera de una variedad de particiones del mapa de cubos 200. Por tanto, no se debe suponer que sólo son posibles cuatro mosaicos por cara de cubo, ya que se puede usar cualquier número de particiones en mosaicos de acuerdo con las técnicas de la presente divulgación.
[0141] La FIG. 10 es un diagrama conceptual que ilustra una proyección de mapa de cubos 210 de ejemplo. La proyección de mapa de cubos 210 incluye seis caras 212A-212F (caras 212), incluyendo la cara frontal 212A, la cara superior 212B, la cara izquierda 212c , la cara inferior 212D, la cara derecha 212E y la cara trasera 212F.
[0142] Como se analiza anteriormente, el dispositivo de origen 12 (FIG. 1) puede proporcionar datos de vídeo para mosaicos de caras de cubos, tales como caras 212, donde puede haber cuatro mosaicos cada uno para las caras 212. Además, sin embargo, el dispositivo de origen 12 puede proporcionar datos de vídeo para un "mega mosaico" que cubre, por ejemplo, una cara de cubo completa y porciones de caras de cubo vecinas. En el ejemplo ilustrado de la FIG. 10, dicho megamosaico cubre las regiones 214A-214E, donde la región 214A cubre completamente la cara frontal 212A, la región 214B cubre parcialmente la cara superior 212B, la región 214C cubre parcialmente la cara izquierda 212C, la región 214D cubre parcialmente la cara inferior 212D y la región 214E parcialmente cubre la cara derecha 212E. El megamosaico en este ejemplo no cubre ninguna porción de la cara trasera 212F.
[0143] Además, el dispositivo de origen 12 puede proporcionar una pluralidad de dichos megamosaicos (que se pueden denominar megamosaicos centrados en caras de cubo). El ejemplo de megamosaico mostrado en la FIG.
10 está centrado en la cara frontal 212A. En algunos ejemplos, el dispositivo de origen 12 puede proporcionar seis de dichos megamosaicos, un megamosaico centrado en cada una de las caras 212. Además, o como alternativa, el dispositivo de origen 12 puede proporcionar megamosaicos centrados en los vértices de las esquinas de la proyección del mapa de cubos 210, como se describe a continuación.
[0144] La FIG. 11 es un diagrama conceptual que ilustra una proyección de mapa de cubos 220 de ejemplo. La proyección de mapa de cubos 220 incluye seis caras 222A-222F (caras 222), incluyendo la cara frontal 222A, la cara superior 222B, la cara izquierda 222C, la cara inferior 222D, la cara derecha 222E y la cara trasera 222F. El ejemplo de la FIG. 11 también representa un megamosaico centrado en el vértice 226 de la proyección de mapa de cubo 220. En particular, el megamosaico incluye los mosaicos 224A, 224B y 224C en la cara superior 222B, los mosaicos 226A, 226B y 226C de la cara izquierda 222C y los mosaicos 228a , 228B y 228C en la cara trasera 222F.
[0145] El dispositivo de origen 12 (FIG. 1) puede proporcionar una pluralidad de dichos megamosaicos (que se pueden denominar megamosaicos centrados en los vértices). Por ejemplo, el dispositivo de origen 12 puede proporcionar ocho de dichos megamosaicos, un megamosaico para cada vértice de esquina de la proyección de mapa de cubos 220. Las técnicas de la FIG. 11 se puede combinar con las técnicas de la FIG. 10, de modo que el dispositivo de origen 12 puede proporcionar catorce megamosaicos, seis megamosaicos centrados en caras de cubo y ocho megamosaicos centrados en vértices.
[0146] Se debe reconocer que, dependiendo del ejemplo, determinadas acciones o eventos de cualquiera de las técnicas descritas en el presente documento se pueden realizar en una secuencia distinta, se pueden añadir, fusionar o excluir por completo (por ejemplo, no todas las acciones o eventos descritos son necesarios para la puesta en práctica de las técnicas). Además, en determinados ejemplos, las acciones o eventos se pueden realizar simultáneamente, por ejemplo, a través de procesamientos de múltiples hilos, procesamientos por interrupciones o mediante múltiples procesadores, en lugar de secuencialmente.
[0147] 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 por, un medio legible por ordenador como una o más instrucciones o código, y ejecutar mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador que correspondan a un medio tangible, tales como medios de almacenamiento de datos, o medios de comunicación que incluyan 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 desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en la presente divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0148] 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 mediante un ordenador. Asimismo, 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, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidos en la definición de medio. Sin embargo, se deberá entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que, en cambio, están dirigidos a medios de almacenamiento tangibles no transitorios. El término disco, como se usa en el presente documento, incluye disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray, donde unos discos reproducen normalmente los datos magnéticamente, mientras que otros discos reproducen datos ópticamente con láseres. Las combinaciones de lo anterior también se deben incluir dentro del alcance de los medios legibles por ordenador.
[0149] 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 uso general, circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables por campo (FPGA) u otra circuitería lógica integrada o discreta equivalente. 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 la codificación y la decodificación, o incorporar en un códec combinado. Asimismo, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
[0150] Las técnicas de la presente divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un auricular inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En la presente divulgación se describen diversos componentes, módulos o unidades para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no se requiere necesariamente su realización mediante diferentes unidades de hardware. En cambio, como se describe anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar mediante un grupo de unidades de hardware interoperativas, que incluyen uno o más procesadores descritos anteriormente, junto con software y/o firmware adecuados.
[0151] Se han descrito diversos ejemplos de la divulgación. Se contempla cualquier combinación de los sistemas, operaciones o funciones descritos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.

Claims (12)

REIVINDICACIONES
1. Un procedimiento de decodificación de datos de vídeo de 360 grados, comprendiendo el procedimiento:
recibir un flujo de bits de vídeo codificado que comprende una pluralidad de imágenes codificadas de datos de vídeo de 360 grados en un orden de decodificación, en el que cada imagen respectiva de la pluralidad de imágenes comprende una pluralidad de regiones;
determinar una ventana de observación actual correspondiente a un campo de visión que se vaya a visualizar, en el que la ventana de observación actual es diferente de una ventana anterior, comprendiendo el campo de visión un subconjunto de toda la región de vídeo de 360 grados representada por una primera imagen en la que, cuando la primera imagen no es una imagen de punto de acceso intraaleatorio, IRAP, y la ventana de observación actual corresponde a un campo de visión esperado, la ventana de observación actual corresponde a una o más regiones accesibles de forma aleatoria dentro de la primera imagen;
buscar, dependiendo de un elemento de sintaxis que indica si una región en la primera imagen corresponde a una región accesible de forma aleatoria en una imagen que no es una imagen IRAP, para una región accesible de forma aleatoria de la primera imagen correspondiente a la ventana de observación actual, en el que una primera región es una región accesible de forma aleatoria cuando:
la primera región se puede decodificar independiente de las demás regiones de la primera imagen y la primera región se puede decodificar independiente de una segunda imagen precedente a la primera imagen en el orden de decodificación; y
en respuesta a determinar que la primera región en la primera imagen es una región accesible de forma aleatoria,
decodificar cada bloque de vídeo en la primera región en la primera imagen independiente de cada una de las otras regiones de la primera imagen e independiente de la segunda imagen precedente a la primera imagen en el orden de decodificación y decodificar al menos un bloque de vídeo en al menos otra región de la primera imagen dependiente de la primera región o dependiente de otras regiones que son dependientes de la primera región.
2. Un procedimiento de codificación de datos de vídeo de 360 grados, comprendiendo el procedimiento:
recibir una pluralidad de imágenes de datos de vídeo de 360 grados, en el que cada imagen respectiva de la pluralidad de imágenes comprende una pluralidad de regiones;
determinar, para una primera imagen de una pluralidad de imágenes, un primer subconjunto de regiones a la pluralidad de regiones de la primera imagen, correspondiendo la primera región a un campo de visión esperado de los datos de vídeo de 360 grados de la primera imagen;
codificar la pluralidad de imágenes en un orden de decodificación en el que una segunda imagen precede a la primera imagen en el orden de decodificación, en el que codificar la pluralidad de imágenes comprende codificar al menos la primera imagen como imagen accesible de forma aleatoria regional codificando cada bloque de vídeo en la primera región independiente de cada una de las otras regiones de la primera imagen e independiente de la segunda imagen precedente a la primera imagen en el orden de decodificación y codifica al menos un bloque de vídeo en al menos otra región de la primera imagen dependiente de la primera región o dependiente de la segunda imagen de manera que la primera imagen no está codificada como una imagen de punto de acceso intraaleatorio, IRAP; y
codificar uno o más elementos de sintaxis para indicar que la primera región corresponde a una región accesible de forma aleatoria en una imagen que no es una imagen IRAP.
3. El procedimiento de la reivindicación 1 o la reivindicación 2, en el que la primera región comprende un mosaico, un fragmento, un conjunto de mosaicos o un conjunto de fragmentos.
4. El procedimiento de la reivindicación 1 o la reivindicación 2, en el que el elemento de sintaxis está localizado en un encabezado de la primera imagen, en un encabezado de un fragmento, en un encabezado de la primera región, en un encabezado de unidad NAL o en metadatos.
5. El procedimiento de la reivindicación 1, en el que determinar que la primera región y todas las regiones correspondientes en todas las imágenes posteriores a la primera imagen en decodificación son decodificables independientes de todos los datos de vídeo codificados de imágenes precedentes a la primera imagen en el orden de decodificación comprende:
determinar que un elemento de sintaxis respectivo en un encabezado de unidad NAL respectivo en cada imagen respectiva precedente a la primera imagen en el orden de decodificación indica que la imagen respectiva no está disponible.
6. El procedimiento de la reivindicación 2, que comprende además:
definir una agrupación de muestras para indicar que la primera imagen tiene una región accesible de forma aleatoria.
7. El procedimiento de la reivindicación 2, que comprende además:
para una tercera imagen que sigue a la primera imagen en el orden de codificación, determinar que se ha codificado un número umbral de imágenes en el orden de codificación desde que se codificó la primera región de la primera imagen;
en respuesta a determinar que el número umbral de imágenes en el orden de codificación se ha codificado desde que se codificó la primera región de la primera imagen, determinar que una región en la tercera imagen correspondiente a la primera región de la primera imagen tiene accesibilidad aleatoria; y
codificar cada bloque de vídeo en la región de la tercera imagen correspondiente a la primera región de la tercera imagen independiente de cada otra región de la tercera imagen e independiente de cualquier región en una cuarta imagen precedente a la tercera imagen en el orden de codificación.
8. Un medio de almacenamiento legible por ordenador que comprende instrucciones que, cuando se ejecutan por uno o más procesadores, llevan a cabo el procedimiento de cualquiera de las reivindicaciones 1 a 7.
9. Un dispositivo de codificación de vídeo que comprende:
una memoria configurada para almacenar datos de vídeo; y
uno o más procesadores configurados para:
recibir un flujo de bits codificado que comprende una pluralidad de imágenes codificadas de datos de vídeo de 360 grados en un orden de decodificación, en el que cada imagen respectiva de la pluralidad de imágenes comprende una pluralidad de regiones;
determinar una ventana de visualización actual correspondiente a un campo de visión que se va a visualizar, en el que la ventana de observación actual es diferente de una ventana de observación anterior, comprendiendo el campo de visión un subconjunto de toda la región de vídeo de 360 grados representada por una primera imagen en la que, cuando la primera imagen no es una imagen de punto de acceso intraaleatorio, IRAP, y la ventana de observación actual corresponde a un campo de visión esperado, la ventana de observación actual corresponde a una o más regiones accesibles de forma aleatoria dentro de la primera imagen;
buscar, dependiente de un elemento de sintaxis que indica si una región en la primera imagen corresponde a una región accesible de forma aleatoria en una imagen que no es una imagen IRAP, para una región accesible de forma aleatoria de la primera imagen correspondiente a la ventana de observación actual, en el que una primera región es una región accesible de forma aleatoria cuando: la primera región se puede decodificar independiente de las demás regiones de la primera imagen y la primera región se puede decodificar independiente de una segunda imagen precedente a la primera imagen en el orden de decodificación; y
en respuesta a determinar que la primera región en la primera imagen es una región accesible de forma aleatoria, decodificar cada bloque de vídeo en la primera región en la primera imagen independiente de cada una de las otras regiones de la primera imagen e independiente de la segunda imagen precedente a la primera imagen en el orden de decodificación y decodificar al menos un bloque de vídeo en al menos otra región de la primera imagen dependiente de la primera región o dependiente de otras regiones que son dependientes de la primera región.
10. Un dispositivo de codificación de vídeo que comprende:
una memoria configurada para almacenar datos de vídeo; y
uno o más procesadores configurados para:
recibir una pluralidad de imágenes de datos de vídeo de 360 grados, en el que cada imagen respectiva de la pluralidad de imágenes comprende una pluralidad de regiones;
determinar, para una primera imagen de una pluralidad de imágenes, un primer subconjunto de regiones a la pluralidad de regiones de la primera imagen, correspondiendo la primera región a un campo de visión esperado de los datos de vídeo de 360 grados de la primera imagen;
codificar la pluralidad de imágenes en un orden de decodificación, en el que una segunda imagen precede a la primera imagen en un orden de decodificación, en el que codificar la pluralidad de imágenes comprende codificar al menos la primera imagen como una imagen accesible de forma aleatoria regional mediante la codificación de cada bloque de vídeo en la primera región independiente entre cada región de la primera imagen e independiente de la segunda imagen precedente a la primera imagen en el orden de decodificación y codificar al menos un bloque de vídeo en al menos otra región de la primera imagen dependiente de la primera región o dependiente de la segunda imagen de modo que la primera imagen no esté codificada como una imagen de punto de acceso intraaleatorio, IRAP; y
codificar uno o más elementos de sintaxis para indicar que la primera región corresponde a una región accesible de forma aleatoria en una imagen que no es una imagen IRAP.
11. El dispositivo de la reivindicación 9 o 10, en el que la primera región comprende un mosaico, un fragmento, un conjunto de mosaicos o un conjunto de fragmentos.
12. El dispositivo de codificación de vídeo de acuerdo con la reivindicación 10, en el que el elemento de sintaxis está localizado en un encabezado de la primera imagen, en un encabezado de un fragmento, en un encabezado de la primera región, en un encabezado de unidad NAL o en metadatos.
ES17726481T 2016-05-19 2017-05-19 Acceso aleatorio regional en vídeo de 360 grados Active ES2875418T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662339012P 2016-05-19 2016-05-19
US15/599,295 US11184624B2 (en) 2016-05-19 2017-05-18 Regional random access in pictures
PCT/US2017/033543 WO2017201408A1 (en) 2016-05-19 2017-05-19 Regional random access in pictures

Publications (1)

Publication Number Publication Date
ES2875418T3 true ES2875418T3 (es) 2021-11-10

Family

ID=58794226

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17726481T Active ES2875418T3 (es) 2016-05-19 2017-05-19 Acceso aleatorio regional en vídeo de 360 grados

Country Status (5)

Country Link
US (2) US11184624B2 (es)
EP (2) EP3843407A1 (es)
CN (1) CN109076245B (es)
ES (1) ES2875418T3 (es)
WO (1) WO2017201408A1 (es)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11108670B2 (en) 2015-09-09 2021-08-31 Vantrix Corporation Streaming network adapted to content selection
US10694249B2 (en) * 2015-09-09 2020-06-23 Vantrix Corporation Method and system for selective content processing based on a panoramic camera and a virtual-reality headset
US11287653B2 (en) 2015-09-09 2022-03-29 Vantrix Corporation Method and system for selective content processing based on a panoramic camera and a virtual-reality headset
US10419770B2 (en) 2015-09-09 2019-09-17 Vantrix Corporation Method and system for panoramic multimedia streaming
CN114257809B (zh) 2016-10-04 2023-03-24 有限公司B1影像技术研究所 图像数据编码/解码方法和计算机可读记录介质
US20180098090A1 (en) * 2016-10-04 2018-04-05 Mediatek Inc. Method and Apparatus for Rearranging VR Video Format and Constrained Encoding Parameters
US10573076B2 (en) * 2016-12-14 2020-02-25 Mediatek Inc. Method and apparatus for generating and encoding projection-based frame with 360-degree content represented by rectangular projection faces packed in viewport-based cube projection layout
US11290755B2 (en) 2017-01-10 2022-03-29 Qualcomm Incorporated Signaling data for prefetching support for streaming media data
US10818087B2 (en) 2017-10-02 2020-10-27 At&T Intellectual Property I, L.P. Selective streaming of immersive video based on field-of-view prediction
US10659815B2 (en) 2018-03-08 2020-05-19 At&T Intellectual Property I, L.P. Method of dynamic adaptive streaming for 360-degree videos
US10740957B1 (en) * 2018-06-14 2020-08-11 Kilburn Live, Llc Dynamic split screen
US10623736B2 (en) 2018-06-14 2020-04-14 Telefonaktiebolaget Lm Ericsson (Publ) Tile selection and bandwidth optimization for providing 360° immersive video
US10432970B1 (en) * 2018-06-14 2019-10-01 Telefonaktiebolaget Lm Ericsson (Publ) System and method for encoding 360° immersive video
US10567780B2 (en) 2018-06-14 2020-02-18 Telefonaktiebolaget Lm Ericsson (Publ) System and method for encoding 360° immersive video
US10573060B1 (en) * 2018-06-14 2020-02-25 Kilburn Live, Llc Controller binding in virtual domes
US10419738B1 (en) 2018-06-14 2019-09-17 Telefonaktiebolaget Lm Ericsson (Publ) System and method for providing 360° immersive video based on gaze vector information
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
US11831855B2 (en) * 2018-06-22 2023-11-28 Lg Electronics Inc. Method for transmitting 360-degree video, method for providing a user interface for 360-degree video, apparatus for transmitting 360-degree video, and apparatus for providing a user interface for 360-degree video
WO2020006287A1 (en) * 2018-06-28 2020-01-02 Apple Inc. Rate control for low latency video encoding and transmission
KR102073230B1 (ko) * 2018-06-28 2020-02-04 주식회사 알파서클 특정 영역의 화질을 개선하기 위해 복수의 가상현실영상을 재생하는 가상현실영상재생장치 및 가상현실영상생성방법
US10523914B1 (en) 2018-07-26 2019-12-31 Telefonaktiebolaget Lm Ericsson (Publ) System and method for providing multiple 360° immersive video sessions in a network
US10841662B2 (en) 2018-07-27 2020-11-17 Telefonaktiebolaget Lm Ericsson (Publ) System and method for inserting advertisement content in 360° immersive video
EP3797515A4 (en) * 2018-09-11 2021-04-28 SZ DJI Technology Co., Ltd. SYSTEM AND METHOD TO SUPPORT THE SWITCHING OF VIDEOBITSTREAMS
US10757389B2 (en) 2018-10-01 2020-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Client optimization for providing quality control in 360° immersive video during pause
US10440416B1 (en) 2018-10-01 2019-10-08 Telefonaktiebolaget Lm Ericsson (Publ) System and method for providing quality control in 360° immersive video during pause
KR102466900B1 (ko) * 2018-10-11 2022-11-14 삼성전자주식회사 타일 및 타일 그룹을 이용하는 비디오 부호화 및 복호화 방법, 타일 및 타일 그룹을 이용하는 비디오 부호화 및 복호화 장치
US10779014B2 (en) * 2018-10-18 2020-09-15 At&T Intellectual Property I, L.P. Tile scheduler for viewport-adaptive panoramic video streaming
US20210258590A1 (en) * 2020-04-09 2021-08-19 Intel Corporation Switchable scalable and multiple description immersive video codec
CN116684687B (zh) * 2023-08-01 2023-10-24 蓝舰信息科技南京有限公司 基于数字孪生技术的增强可视化教学方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100739686B1 (ko) * 2004-08-13 2007-07-13 경희대학교 산학협력단 영상 코딩 방법, 코딩 장치, 영상 디코딩 방법 및 디코딩장치
CN101849417A (zh) * 2007-11-05 2010-09-29 汤姆森特许公司 用于快速信道改变和增加的容错性的可缩放视频编码方法
CN102100069A (zh) 2008-07-16 2011-06-15 汤姆逊许可证公司 用于快速信道改变以增大编码效率的可分级视频编码方法
US8493390B2 (en) * 2010-12-08 2013-07-23 Sony Computer Entertainment America, Inc. Adaptive displays using gaze tracking
US9402082B2 (en) * 2012-04-13 2016-07-26 Sharp Kabushiki Kaisha Electronic devices for sending a message and buffering a bitstream
US9596486B2 (en) * 2013-04-05 2017-03-14 Qualcomm Incorporated IRAP access units and bitstream switching and splicing
GB2516224A (en) 2013-07-11 2015-01-21 Nokia Corp An apparatus, a method and a computer program for video coding and decoding
US10560710B2 (en) 2014-01-03 2020-02-11 Qualcomm Incorporated Method for coding recovery point supplemental enhancement information (SEI) messages and region refresh information SEI messages in multi-layer coding

Also Published As

Publication number Publication date
US20170339416A1 (en) 2017-11-23
CN109076245B (zh) 2021-03-09
US11184624B2 (en) 2021-11-23
CN109076245A (zh) 2018-12-21
EP3459254B1 (en) 2021-03-03
EP3459254A1 (en) 2019-03-27
EP3843407A1 (en) 2021-06-30
US20220159272A1 (en) 2022-05-19
WO2017201408A1 (en) 2017-11-23

Similar Documents

Publication Publication Date Title
ES2875418T3 (es) Acceso aleatorio regional en vídeo de 360 grados
ES2895270T3 (es) Codificación de mensajes SEI de MCTS-EIS de una unidad de acceso
US10225546B2 (en) Independent multi-resolution coding
ES2841312T3 (es) Predicción de vectores de movimiento para modelos de movimiento afines en codificación de vídeo
ES2620432T3 (es) Compensación de luminancia adaptativa en la codificación de vídeo tridimensional
ES2633150T3 (es) Predicción de vectores de movimiento en codificación de vídeo
ES2663444T3 (es) Información de temporización de codificación para codificación de vídeo
ES2745282T3 (es) Extensión del patrón de minicuñas para la intracodificación de profundidad
ES2780688T3 (es) Señalización para operaciones DPB basadas en un búfer de imágenes subdescodificadas (sub-DPB) en la codificación de vídeo
ES2647948T3 (es) Reutilización de conjuntos de parámetros para la codificación de vídeo
ES2884723T3 (es) Señalización de regiones de interés y actualización de decodificación gradual en la codificación de video
ES2753958T3 (es) Predicción de vector de movimiento temporal basada en subunidad de predicción (PU) en la HEVC y diseño de sub-PU en la 3D-HEVC
ES2799323T3 (es) Técnicas de codificación de vídeo usando particionamiento de movimiento asimétrica
ES2841986T3 (es) Identificación de bloques usando vector de disparidad en la codificación de vídeo
ES2637515T3 (es) Indicación y activación de conjuntos de parámetros para codificación de vídeo
ES2713087T3 (es) Procedimiento de codificación de vídeo y de almacenamiento de contenido de vídeo
ES2730876T3 (es) Capas de salida de destino en la codificación de vídeo
ES2736280T3 (es) Simplificaciones en la obtención de vectores de disparidad y la predicción de vectores de movimiento en codificación de vídeo 3D
ES2633651T3 (es) Codificación de conjuntos de parámetros y cabeceras de unidad NAL para codificación de vídeo
KR101927967B1 (ko) 다시점 비디오 데이터의 깊이맵 부호화 방법 및 장치, 복호화 방법 및 장치
ES2928248T3 (es) Relleno de segmentos en unidades NAL de la porción codificada
ES2648312T3 (es) Relleno de píxeles de borde para intra-predicción en codificación de vídeo
ES2707890T3 (es) Codificación de vídeo de múltiples visualizaciones
ES2630831T3 (es) Señalización de relaciones entre el recuento de orden de imágenes y la información de temporización, para la temporización de vídeo en la codificación de vídeo
ES2698515T3 (es) Predictor para la intra-codificación de mapas de profundidad