ES2883151T3 - Procesamiento de datos de vídeo esféricos sobre la base de una zona de interés - Google Patents

Procesamiento de datos de vídeo esféricos sobre la base de una zona de interés Download PDF

Info

Publication number
ES2883151T3
ES2883151T3 ES17781136T ES17781136T ES2883151T3 ES 2883151 T3 ES2883151 T3 ES 2883151T3 ES 17781136 T ES17781136 T ES 17781136T ES 17781136 T ES17781136 T ES 17781136T ES 2883151 T3 ES2883151 T3 ES 2883151T3
Authority
ES
Spain
Prior art keywords
roi
spherical
information
video data
projection
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
ES17781136T
Other languages
English (en)
Inventor
Lucia D'acunto
Emmanuel Thomas
Deventer Mattijs Van
Simon Gunkel
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.)
Koninklijke KPN NV
Original Assignee
Koninklijke KPN NV
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 Koninklijke KPN NV filed Critical Koninklijke KPN NV
Application granted granted Critical
Publication of ES2883151T3 publication Critical patent/ES2883151T3/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/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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/23Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Abstract

Un método para procesar datos de vídeo esféricos que comprende: un aparato cliente que recibe o genera información de la zona de interés (ROI) asociada con una ROI en una representación esférica de datos de vídeo, siendo la ROI un polígono esférico rectangular y que tiene un centro, una orientación y un límite en una superficie esférica, definiendo la representación esférica una vista de imagen de datos de vídeo esféricos en la superficie esférica sobre la base de un sistema de coordenadas esféricas, incluyendo la información de la ROI una coordenada de la ROI esférica asociada con una posición de la ROI, en donde la coordenada de la ROI esférica incluye un ángulo de guiñada, de cabeceo y de balanceo, indicando el ángulo de guiñada y el ángulo de cabeceo el centro de la ROI y el ángulo de balanceo indicando la orientación de la ROI, comprendiendo la información de la ROI, además, parámetros que representan una anchura de la ROI en grados de arco y una altura de la ROI en grados de arco, en donde la altura se define como un segmento en un primer círculo grande que pasa por el centro de la ROI y que tiene una elevación igual al ángulo de cabeceo, y en donde la anchura se define como un segmento que está ubicado en un segundo círculo grande que pasa por el centro de la ROI, en donde el segundo círculo grande es prácticamente ortogonal al primer círculo grande; el aparato cliente recibe un archivo de manifiesto que comprende uno o más identificadores de flujo de mosaicos para identificar uno o más flujos de mosaicos, comprendiendo cada flujo de mosaicos datos de vídeo esféricos transformados de un mosaico en la superficie esférica, resultando los datos de vídeo esféricos transformados de la transformación de los datos de vídeo esféricos, incluyendo la transformación al menos una proyección de los datos de vídeo esféricos sobre una superficie plana, preferiblemente una superficie plana rectangular; definiendo cada mosaico una subparte en la superficie esférica, comprendiendo, además, el archivo de manifiesto información de descripción espacial para señalizar la información del aparato cliente sobre la posición de los mosaicos en la superficie esférica; el aparato cliente recibe información de proyección para señalizar al aparato cliente sobre el tipo de proyección que se utiliza para la proyección de los datos de vídeo esféricos en la superficie plana, preferiblemente el tipo de proyección que incluye una proyección equirrectangular, una proyección cúbica, una proyección cilíndrica o derivadas y/o combinaciones de las mismas; y, el aparato cliente recibe y/o genera información de límites para definir el límite de la ROI sobre la base de la coordenada esférica de la ROI y los parámetros que representan la anchura de la ROI en grados de arco y la altura de la ROI en grados de arco, teniendo el límite una forma que es constante para cada posición en la superficie esférica y que define un zona de la ROI; y el aparato cliente que utiliza la zona de la ROI para seleccionar uno o más flujos de mosaicos sobre la base de la información de descripción espacial y la información de proyección, en donde cada uno de los flujos de mosaicos seleccionados define un mosaico en la esfera que se superpone con la zona de la ROI.

Description

DESCRIPCIÓN
Procesamiento de datos de vídeo esféricos sobre la base de una zona de interés
CAMPO DE LA INVENCIÓN
La invención se refiere al procesamiento de datos de vídeo esféricos sobre la base de una zona de interés y, en particular, aunque no de manera exclusiva, a métodos y sistemas para procesar datos de vídeo esféricos sobre la base de una zona de interés, una estructura de datos para permitir el procesamiento de datos de vídeo esféricos sobre la base de una zona de interés y un producto de programa informático para ejecutar dichos métodos.
ANTECEDENTES DE LA INVENCIÓN
Los avances en las tecnologías de procesamiento de imágenes y cámaras no solamente permiten la grabación en resoluciones cada vez más altas, sino que también unen la salida de diversas cámaras. De esta manera, un conjunto de cámaras puede grabar de manera conjunta en 360 grados completos a resoluciones superiores a 8Kx4K. Las representaciones de datos de vídeo proyectados en una superficie esférica, tales como vídeo omnidireccional o vídeo de 360 grados, pueden denominarse vídeo esférico. El vídeo esférico proporciona nuevas experiencias de usuario, tal como la realidad virtual (VR) y la realidad aumentada (AR), que actualmente están ganando impulso en el sector. Sin embargo, la transmisión de contenido de realidad virtual (VR) de alta calidad todavía plantea retos, incluyendo los requisitos de alto ancho de banda que se necesitan para la transmisión de vídeo esférico de alta calidad y la representación del contenido esférico en un flujo binario.
En la práctica, el ancho de banda disponible será una solución de compromiso entre la eficiencia y la experiencia del usuario. Por un lado, existe la necesidad de proporcionar a los usuarios el punto de vista que les interesa con una alta calidad y, al mismo tiempo, con una latencia mínima. Lo que antecede es un objetivo extremadamente difícil de lograr porque, aunque el punto de vista de un espectador que mira un vídeo esférico es espacialmente limitado, los usuarios pueden conmutar continuamente su punto de vista dentro del flujo esférico y de la transición desde un punto de vista al otro que debe ser suave.
Por ejemplo, en algunos escenarios operativos, o en algunos momentos durante la experiencia de realidad virtual VR, el usuario puede desear (o se le puede ofrecer la posibilidad) de experimentar el contenido de vídeo en un nivel diferente de inmersión y de control. Un nivel podría ser el modo "inmersión total" o "activo", en donde el usuario utiliza un visor de realidad virtual VR (o un dispositivo de visualización colocado sobre la cabeza) y se sumerge en el mundo de la realidad virtual VR, en donde tiene todos los grados de libertad que se ofrecen con el contenido de vídeo de realidad virtual VR que está experimentando. Otros niveles de inmersión y de control podrían incluir un modo de "teatro", en donde el usuario utiliza un visor de realidad virtual VR a través del cual se sumerge en un "teatro virtual" que contiene una pantalla o una pared en donde se muestra el contenido real de vídeo de realidad virtual VR; un modo de “TV de realidad aumentada (AR)”, en donde el usuario utiliza un visor de realidad aumentada AR y observa el contenido de vídeo de realidad virtual VR como si se proyectara en su entorno físico (mientras que en realidad se proyecta en las gafas que utiliza); un modo de "TV", en donde el usuario observa el contenido de vídeo de realidad virtual VR a través de su televisor y no utiliza auriculares de realidad virtual VR o de realidad aumentada AR.
Para los modos más "pasivos", tales como los modos de "teatro" y "TV", el proveedor de contenido (el "director") puede seleccionar de manera automática la ROI dentro del flujo de vídeo esférico que se mostrará al usuario, con el fin de proporcionar al usuario una experiencia de realidad virtual VR agradable y relajada. Estos modos pasivos pueden denominarse "modos dirigidos". Por el contrario, en el modo de inmersión total, el usuario puede seleccionar partes del contenido esférico por sí mismo, p. ej., mirando en diferentes direcciones utilizando un dispositivo de visualización colocado sobre la cabeza. En lo sucesivo, este modo puede denominarse "modo libre". El usuario puede decidir conmutar desde el modo libre activo a un modo dirigido pasivo y viceversa. Estas transiciones se pueden permitir en cualquier momento, o solamente se pueden permitir cuando se cambia entre ciertas escenas predefinidas (por ejemplo, entre una escena de una batalla y una escena de diálogo). En cualquier caso, los cambios deben realizarse de la manera más fluida posible (en tiempo y espacio) con el fin de garantizar una experiencia de usuario aceptable.
El documento EP 3028472 A1 describe un método para conmutar, sin problemas, desde un modo de navegación libre en donde un usuario puede navegar libremente en un panorama de vídeo en 2D en mosaico a un modo de visualización dirigida desde una zona de interés (ROI) predeterminada dentro de este panorama. La posición de la ROI dirigida se describe mediante coordenadas 2D que definen un rectángulo en el panorama de modo que el dispositivo de representación pueda conmutar sin problemas entre el modo libre y el modo dirigido.
Sin embargo, tratar de poner en práctica la misma funcionalidad para datos de vídeo esféricos no es un ejercicio trivial, ya que los vídeos esféricos tales como el vídeo omnidireccional y de 360 grados, que son de naturaleza esférica, se mapean en correspondencia en uno o más planos utilizando una proyección 2D antes de codificar los datos de vídeo. La proyección 2D se utiliza para que los datos de vídeo esféricos se puedan utilizar con las normas de codificación de vídeo modernas. Actualmente no existe una forma estándar de representar un vídeo esférico en un flujo binario y diferentes proyecciones 2D (por ejemplo, "equirrectangular", "cilíndrica", “cúbica", etc.) son posibles para que la interoperabilidad se convierta en un problema. Además, la ROI indicada sería distorsionada y posiblemente fragmentada dependiendo de la proyección 2D que se utilice para representar el contenido esférico en el flujo binario.
En la aportación MPEG ISO/IEC JTCC1/SC29/WG11 MPEG2016/m38605 con el título "Señalización MPD de propiedades de contenido 360 para aplicaciones de realidad virtual VR" de mayo de 2016, se propone una denominada descripción de relación espacial (SRD) para contenido de realidad virtual VR. En esta aportación se sugiere describir la posición estática y el tamaño de los mosaicos de vídeo sobre la base de una representación esférica. Sin embargo, el uso de esta representación esférica para describir una ROI en movimiento en una superficie esférica daría como resultado una ROI que tiene una forma que depende de la posición de la ROI en la superficie esférica, lo que hace que el proceso de selección de mosaicos sea difícil e ineficiente.
El documento de PoLin Lai, la indicación de la ROI de VR, ISO/IEC JTC1/SC29/WG11 MPEG2016/M38953, octubre de 2016, Chengdu, China, es una sintaxis reveladora de aportación a la normalización para indicar la zona de interés (ROI) para el contenido de VR. El sistema facilita la indicación de la ROI utilizando información de geometría (independiente de los métodos de proyección) o utiliza indexación determinista para determinadas proyecciones.
Además, los datos de vídeo esféricos se proyectan en primer lugar en un formato de trama de vídeo en 2D rectangular convencional para que puedan procesarse utilizando códecs de vídeo conocidos. Se pueden utilizar diferentes proyecciones y solamente después de la proyección, el contenido se procesa en mosaicos que se pueden codificar en una representación en 2D de contenido esférico. Lo que antecede hace que la selección del contenido esférico que pueda representarse sobre la base de diferentes proyecciones sea una tarea compleja.
Por tanto, a partir de lo que antecede, existe la necesidad en la técnica de métodos y sistemas mejorados para procesar datos de vídeo esféricos sobre la base de una zona de interés.
SUMARIO DE LA INVENCIÓN
Tal como apreciará un experto en esta técnica, los aspectos de la presente invención pueden realizarse como un sistema, método o producto de programa informático. En consecuencia, los aspectos de la presente invención pueden adoptar la forma de una forma de realización completamente de hardware, una forma de realización completamente de software (que incluye firmware, software residente, microcódigo, etc.) o una forma de realización que combina aspectos de software y de hardware a los que se puede hacer referencia en general en el presente documento como "circuito", "módulo" o "sistema". Las funciones descritas en esta descripción pueden ponerse en práctica como un algoritmo ejecutado por un microprocesador de un ordenador. Además, los aspectos de la presente invención pueden tomar la forma de un producto de programa informático incorporado en uno o más medios legibles por ordenador que tienen un código de programa legible por ordenador incorporado, por ejemplo, almacenado en el mismo.
Puede utilizarse cualquier combinación de uno o más medios legibles por ordenador. El medio legible por ordenador puede ser un medio de señal legible por ordenador o un medio de almacenamiento legible por ordenador. Un medio de almacenamiento legible por ordenador puede ser, por ejemplo, pero no limitado a, un sistema, aparato o dispositivo electrónico, magnético, óptico, electromagnético, de infrarrojos o de semiconductores, o cualquier combinación adecuada de los mismos. Ejemplos más específicos (una lista no exhaustiva) del medio de almacenamiento legible por ordenador incluirían lo siguiente: una conexión eléctrica que tenga uno o más cables, un disquete de ordenador portátil, un disco duro, una memoria de acceso aleatorio (RAM), una memoria de solamente lectura (ROM), una memoria de solamente lectura programable y borrable (EPROM o memoria instantánea), una fibra óptica, una memoria de solamente lectura de disco compacto portátil (CD-ROM), un dispositivo de almacenamiento óptico, un dispositivo de almacenamiento magnético o cualquier combinación adecuada de los mismos. En el contexto de este documento, un medio de almacenamiento legible por ordenador puede ser cualquier medio tangible que pueda contener o almacenar un programa para su uso por o en conexión con un sistema, aparato o dispositivo de ejecución de instrucciones.
Un medio de señal legible por ordenador puede incluir una señal de datos propagada con un código de programa legible por ordenador incorporado en el mismo, por ejemplo, en banda base o como parte de una onda portadora. Dicha señal propagada puede tomar cualquiera de entre una diversidad de formas, que incluyen, pero no se limitan a, electromagnética, óptica o cualquier combinación adecuada de las mismas. Un medio de señal legible por ordenador puede ser cualquier medio legible por ordenador que no sea un medio de almacenamiento legible por ordenador y que pueda comunicar, propagar o transportar un programa para su uso por o en conexión con un sistema, aparato o dispositivo de ejecución de instrucciones.
El código de programa incorporado en un medio legible por ordenador puede transmitirse utilizando cualquier medio apropiado, incluyendo, pero sin limitarse a, inalámbrico, alámbrico, fibra óptica, cable, RF, etc., o cualquier combinación adecuada de los mismos. El código de programa informático para llevar a cabo operaciones para aspectos de la presente invención se puede escribir en cualquier combinación de uno o más lenguajes de programación, incluyendo un lenguaje de programación orientado al objeto tal como Java (TM), Smalltalk, C++ o similares y lenguajes de programación de procedimientos convencionales, tal como el lenguaje de programación "C" o lenguajes de programación similares. El código del programa puede ejecutarse completamente en el ordenador del usuario, en parte en el ordenador del usuario, como un paquete de software independiente, en parte en el ordenador del usuario y en parte en un ordenador remoto, o completamente en el ordenador o servidor remoto. En el último escenario operativo, el ordenador remoto puede estar conectado al ordenador del usuario a través de cualquier tipo de red, incluyendo una red de área local (LAN) o una red de área amplia (WAN), o la conexión puede realizarse a un ordenador externo (por ejemplo, a través de Internet utilizando un proveedor de servicios de Internet).
Los aspectos de la presente invención se describen a continuación con referencia a ilustraciones de diagramas de flujo y/o diagramas de bloques de métodos, aparatos (sistemas) y productos de programas informáticos según formas de realización de la invención. Se entenderá que cada bloque de las ilustraciones del diagrama de flujo y/o de los diagramas de bloques, y las combinaciones de bloques en las ilustraciones del diagrama de flujo y/o de los diagramas de bloques, pueden ponerse en práctica mediante instrucciones de programa informático. Estas instrucciones de programas informáticos pueden proporcionarse a un procesador, en particular a un microprocesador o unidad central de procesamiento (CPU), de un ordenador de uso general, ordenador de uso especial u otro aparato de procesamiento de datos programable para obtener una máquina, de manera que las instrucciones, que ejecutar a través del procesador del ordenador, de otros aparatos de procesamiento de datos programables u de otros dispositivos, crean medios para poner en práctica las funciones/actos especificados en el diagrama de flujo y/o bloque o bloques del diagrama de bloques.
Estas instrucciones del programa informático también pueden almacenarse en un medio legible por ordenador que puede dirigir un ordenador, otro aparato de procesamiento de datos programable u otros dispositivos para que funcionen de una manera particular, de modo que las instrucciones almacenadas en el medio legible por ordenador produzcan un elemento de fabricación que incluya instrucciones que pongan en práctica la función/acto especificado en el diagrama de flujo y/o bloque o bloques del diagrama de bloques.
Las instrucciones del programa informático también pueden cargarse en un ordenador, otro aparato de procesamiento de datos programable u otros dispositivos para hacer que se realicen una serie de etapas operativas en el ordenador, otro aparato programable u otros dispositivos para obtener un proceso puesto en práctica por ordenador de manera que las instrucciones que se ejecutan en el ordenador u otro aparato programable proporcionen procesos para poner en práctica las funciones/actos especificados en el diagrama de flujo y/o bloque o bloques del diagrama de bloques.
El diagrama de flujo y los diagramas de bloques de las figuras ilustran la arquitectura, la funcionalidad y el funcionamiento de posibles puestas en práctica de sistemas, métodos y productos de programas informáticos de conformidad con diversas formas de realización de la presente invención. A este respecto, cada bloque en el diagrama de flujo o en los diagramas de bloques puede representar un módulo, segmento o parte de código, que comprende una o más instrucciones ejecutables para poner en práctica la función o funciones lógicas especificadas. También debe tenerse en cuenta que, en algunas puestas en práctica alternativas, las funciones indicadas en los bloques pueden ocurrir fuera del orden indicado en las figuras. Por ejemplo, dos bloques mostrados en sucesión pueden, de hecho, ejecutarse prácticamente al mismo tiempo, o los bloques pueden a veces ejecutarse en orden inverso, dependiendo de la funcionalidad implicada. También se observará que cada bloque de los diagramas de bloques y/o de las ilustraciones de los diagramas de flujo, y de las combinaciones de bloques en los diagramas de bloques y/o las ilustraciones de los diagramas de flujo, pueden ponerse en práctica mediante sistemas basados en hardware de uso especial que realicen las funciones o actos especificados o combinaciones de instrucciones de hardware y de ordenador de uso especial.
Es un objetivo de la invención reducir o eliminar al menos uno de los inconvenientes conocidos en la técnica anterior. En un primer aspecto, la invención puede referirse a un método de procesamiento de un vídeo esférico por un dispositivo cliente.
En una forma de realización, el método puede comprender recibir o generar información de la zona de interés (ROI) asociada con una ROI en una representación esférica de datos de vídeo, teniendo la ROI un límite en una superficie esférica, definiendo la representación esférica una vista de imagen de datos de vídeo esféricos en una superficie esférica sobre la base de un sistema de coordenadas esféricas, incluyendo la información de la ROI una coordenada de la ROI esférica asociada con una posición de la ROI; recibir un archivo de manifiesto que comprende uno o más identificadores de flujo de mosaicos para identificar uno o más flujos de mosaicos, comprendiendo cada flujo de mosaicos datos de vídeo esféricos transformados de un mosaico en la superficie esférica, los datos de vídeo esféricos transformados resultantes de la transformación de los datos de vídeo esféricos, la transformación que incluye al menos una proyección de los datos de vídeo esféricos sobre una superficie plana, preferiblemente una superficie plana rectangular; definiendo cada mosaico una subparte en la superficie esférica, comprendiendo, además, el archivo de manifiesto información de descripción espacial para señalizar la información del aparato cliente sobre la posición de los mosaicos en la superficie esférica; recibir información de proyección para señalizar al aparato cliente sobre el tipo de proyección que se utiliza para proyectar los datos de vídeo esféricos sobre una superficie plana; y recibir y/o generar información de límites para definir el límite de la ROI sobre la base de la coordenada de la ROI esférica, teniendo el límite una forma que es constante para cada posición en la superficie esférica y definiendo una zona de la ROI; y, utilizar la zona de la ROI para seleccionar uno o más flujos de mosaicos en base a la información de descripción espacial y la información de proyección, en donde cada uno de los flujos de mosaicos seleccionados define un mosaico en la esfera que se solapa con la zona de la ROI.
Por lo tanto, mediante el uso de una ROI esférica que se describe sobre la base de una o más coordenadas esféricas de la ROI y que define una zona y forma de la ROI que es constante para cada posición en la superficie esférica, asociando el vídeo esférico con la ROI que puede ser seleccionado de manera independiente del tipo de proyección que se utiliza para representar los datos de vídeo esféricos en el flujo binario. Además, el hecho de que la zona de la ROI y la forma de la ROI no cambien, simplifica, en gran medida, la selección de flujos de mosaicos que se necesitan para generar datos esféricos asociados con la ROI. Además, permite el diseño de una ROI que coincida prácticamente con el campo de visión (FOV) del dispositivo de procesamiento de vídeo, p. ej., un dispositivo colocado en la cabeza o similar.
La información de la ROI puede relacionarse con coordenadas de la ROI predeterminadas de un vídeo "dirigido" en donde el director ha seleccionado una ROI predeterminada de los datos de vídeo esféricos. De esta manera, la información de la ROI puede utilizarse para conmutar sin problemas entre un modo de selección de la ROI "dirigido" y un modo de selección de la ROI "libre".
En una forma de realización, el tipo de proyección puede incluir una proyección equirrectangular, una proyección cúbica, una proyección cilíndrica o derivadas y/o combinaciones de las mismas.
En una forma de realización, la información de límite puede comprender una o más coordenadas de la ROI adicionales, la coordenada de la ROI y una o más coordenadas de la ROI adicionales que definen los vértices de un polígono esférico, estando definido el límite del polígono esférico por un segmento de línea sobre la superficie esférica entre dos vértices, siendo el segmento de línea parte de un círculo grande o un círculo pequeño de dicha esfera.
En una forma de realización, la información de límite puede comprender una o más coordenadas de la ROI adicionales, en donde la coordenada de la ROI define un centro de la zona de la ROI y en donde las una o más coordenadas de la ROI adicionales definen uno o más puntos en el límite de la ROI, teniendo, de manera preferible, el límite una forma predeterminada, que incluye al menos una de entre: un círculo, un cuadrado, una elipse, un rectángulo, un triángulo.
En una forma de realización, la información de límite puede comprender un parámetro de anchura y un parámetro de altura para definir una ROI de forma rectangular, preferiblemente los lados paralelos a la anchura de la ROI son segmentos de línea de círculos pequeños de la esfera y los lados paralelos a la altura de la ROI son segmentos de línea de círculos grandes de la esfera; o, los lados paralelos a su anchura y los lados paralelos a su altura son segmentos de línea de círculos grandes de la esfera.
En una forma de realización, la información de proyección está incluida en el archivo de manifiesto. En una forma de realización, la información de proyección puede incluir un valor de descriptor de proyección para identificar el tipo de proyección que se utiliza para la proyección de los datos de vídeo esféricos sobre la superficie plana.
En una forma de realización, el archivo de manifiesto puede comprender, además, al menos un identificador de flujo de la ROI, preferiblemente una dirección URL o una dirección URI, identificando el identificador de flujo de la ROI un flujo de datos que comprende una secuencia de coordenadas de la ROI esféricas ordenadas de forma temporal, definiendo las coordenadas de la ROI esféricas ordenadas de forma temporal la posición de la ROI como una función del tiempo.
En una forma de realización, el archivo de manifiesto puede comprender, además, información de la zona de la ROI que define el límite y/o la forma de la ROI.
En una forma de realización, el archivo de manifiesto puede comprender, además, información de formato de datos de la ROI para señalizar al aparato cliente sobre el formato de datos de las coordenadas de la ROI en el flujo de la ROI, preferiblemente la información que se refiere a una entrada de muestra de coordenadas esféricas en 3D.
En una forma de realización, recibir la información de la ROI puede incluir: recibir un flujo de datos que comprende coordenadas de la ROI esféricas, preferiblemente coordenadas de la ROI esféricas ordenadas de forma temporal, definiendo las coordenadas de la ROI la posición de la ROI en función del tiempo; y, de manera opcional, el flujo de datos que comprende información de la zona de la ROI que define el límite y/o la forma de la ROI.
En una forma de realización, una coordenada ROI esférica puede incluir al menos un ángulo de guiñada y un ángulo de cabeceo. En otra forma de realización, la información de la zona de la ROI puede incluir parámetros de anchura y de altura que definen la anchura y la altura de la ROI en la superficie esférica.
En una forma de realización, el aparato cliente puede utilizar la información de proyección para seleccionar un algoritmo de selección de mosaicos, estando configurado el algoritmo de selección de mosaicos para seleccionar uno o más mosaicos que se superponen con la ROI.
En una forma de realización, la selección de uno o más flujos de mosaicos puede comprender, además: utilizar la información de proyección para transformar la zona de la ROI en una zona de la ROI proyectada en 2D sobre una superficie plana; utilizando la zona de la ROI proyectada en 2D en la selección de uno o más flujos de mosaicos que definen uno o más mosaicos que se superponen con la zona de la ROI.
En una forma de realización, la generación de información de la zona de interés (ROI) puede incluir: recibir información del sensor indicativa de los movimientos de la cabeza, de los ojos y/o del cuerpo de un usuario; transformando la información del sensor en una coordenada ROI esférica.
En una forma de realización, se utiliza un protocolo de transmisión adaptativa, preferiblemente el protocolo MPEG-DASH, para procesar y transmitir los datos de vídeo esféricos y, de manera opcional, la información de la ROI.
En un aspecto, la invención puede referirse a un dispositivo cliente para procesar datos de vídeo esféricos que comprende:
un medio de almacenamiento legible por ordenador que tiene al menos parte de un programa incorporado en el mismo, comprendiendo el medio de almacenamiento legible por ordenador un archivo de manifiesto; y, un medio de almacenamiento legible por ordenador que tiene un código de programa legible por ordenador incorporado en el mismo, y un procesador, preferiblemente un microprocesador, acoplado al medio de almacenamiento legible por ordenador, en donde, en respuesta a la ejecución del código de programa legible por ordenador, el procesador está configurado para realizar operaciones ejecutables que comprenden: recibir un archivo de manifiesto que comprende uno o más identificadores de flujo de mosaicos para identificar uno o más flujos de mosaicos, comprendiendo cada flujo de mosaicos datos de vídeo esféricos transformados de un mosaico en la superficie esférica, resultando los datos de vídeo esféricos transformados de la transformación de los datos de vídeo esféricos, incluyendo la transformación al menos una proyección de los datos de vídeo esféricos sobre una superficie plana; definiendo cada mosaico una subparte en la superficie esférica, comprendiendo, además, el archivo de manifiesto información de descripción espacial para señalizar la información del aparato cliente sobre la posición de los mosaicos en la superficie esférica; recibir información de proyección para señalizar al aparato cliente sobre el tipo de proyección que se utiliza para transformar datos de vídeo esféricos; recibir y/o generar información de límites para definir el límite de la ROI sobre la base de la coordenada de la ROI esférica, teniendo el límite una forma que es constante para cada posición en la superficie esférica y definiendo una zona de la ROI; y, utilizar la zona de la ROI para seleccionar uno o más flujos de mosaicos sobre la base de la información de descripción espacial y la información de proyección, en donde cada uno de los flujos de mosaicos seleccionados define un mosaico en la esfera que se superpone con la zona de la ROI.
En un aspecto adicional, la invención puede referirse a un medio de almacenamiento legible por ordenador no transitorio que comprende un archivo de manifiesto para un dispositivo cliente, estando dicho dispositivo cliente configurado para procesar datos de vídeo esféricos sobre la base de la información en el archivo de manifiesto, comprendiendo dicho archivo de manifiesto datos legibles por ordenador, comprendiendo los datos legibles por ordenador: uno o más identificadores de flujo para identificar uno o más flujos de vídeo de vista en movimiento, un flujo de vídeo en movimiento que comprende datos de vídeo esféricos asociados con una ROI predeterminada; uno o más identificadores de flujo de la ROI, preferiblemente una o más direcciones URL o URI, un identificador de flujo de la ROI que define un flujo de datos que comprende coordenadas de la ROI esféricas, preferiblemente coordenadas de la ROI esféricas ordenadas de forma temporal, definiendo las coordenadas de la ROI esféricas la posición de una ROI predeterminada de un flujo de vídeo de vista en movimiento.
En una forma de realización, los datos legibles por ordenador pueden comprender, además: información de formato de datos de la ROI para señalizar al aparato cliente sobre el formato de datos de las coordenadas de la ROI en el flujo de datos, preferiblemente la información que se refiere a una entrada de muestra de coordenadas esféricas
En una forma de realización, los datos legibles por ordenador pueden comprender, además: uno o más identificadores de flujo de mosaicos para identificar uno o más flujos de mosaicos, comprendiendo cada flujo de mosaicos datos de vídeo esféricos transformados de un mosaico en la superficie esférica, resultando los datos de vídeo esféricos transformados de la transformación de los datos de vídeo esféricos, incluyendo la transformación al menos una proyección de los datos de vídeo esféricos sobre una superficie plana; definiendo cada mosaico una subparte en la superficie esférica, comprendiendo el archivo de manifiesto, además, información de descripción espacial para señalizar la información del aparato cliente sobre la posición de los mosaicos en la superficie esférica.
La invención también puede referirse a un producto de programa que comprende partes de código de software configuradas para, cuando se ejecuta en la memoria de un ordenador, ejecutar cualquiera de las etapas del método descritas con anterioridad.
La invención se ilustrará de manera adicional con referencia a los dibujos adjuntos, que mostrarán de manera esquemática formas de realización de conformidad con la invención. Se entenderá que la invención no está restringida de ninguna manera a estas formas de realización específicas.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La Figura 1 representa un dispositivo de procesamiento de vídeo configurado para reproducir contenido esférico según una forma de forma de realización de la invención.
La Figura 2 proporciona una representación esquemática de un sistema de transmisión de vídeo para vídeo esférico según una forma de realización de la invención.
Las Figuras 3A a 3D ilustran diversas zonas ROIs en una superficie esférica para procesar datos de vídeo esféricos de conformidad con diversas formas de realización de la invención.
La Figura 4 ilustra una zona ROI sobre una superficie esférica para procesar datos de vídeo esféricos según otras formas de realización de la invención.
La Figura 5 ilustra una zona ROI en una superficie esférica y su mapeo en 2D asociado en una superficie según una forma de realización de la invención.
La Figura 6 ilustra una zona ROI en una superficie esférica y su mapeo en 2D asociado en una superficie según una forma de realización de la invención.
La Figura 7 representa un sistema para representar datos de vídeo esféricos sobre la base de una zona ROI según una forma de forma de realización de la invención.
Las Figuras 8A a 8C ilustran la estructura de un archivo de manifiesto según una forma de realización de la invención. La Figura 9 ilustra una zona ROI en una superficie y su mapeo en 2D asociado en una superficie según una forma de realización de la invención.
Las Figuras 10A a 10B ilustran la construcción de una trama delimitadora alrededor de un mapeo en 2D de una zona ROI en una superficie esférica.
Las Figuras 11A a 11B ilustran la determinación de los bordes de la trama delimitadora alrededor de un mapeo en 2D de una zona ROI en una superficie esférica.
Las Figuras 12A a 12B ilustran diferentes mapeos en 2D de una zona ROI en una superficie esférica.
La Figura 13 ilustra un sistema de mapeo cúbico en 2D.
La Figura 14 representa la transición desde un dispositivo operado en el modo dirigido a un dispositivo operado en el modo libre.
La Figura 15 representa un diagrama de bloques que ilustra un ejemplo de sistema de procesamiento de datos que puede utilizarse con las formas de realización descritas en esta descripción.
DESCRIPCIÓN DETALLADA
La Figura 1 representa un dispositivo de procesamiento de vídeo configurado para reproducir contenido esférico según una forma de forma de realización de la invención. En particular, la Figura 1 representa a un usuario que lleva un dispositivo de procesamiento de vídeo, p. ej., un dispositivo colocado en la cabeza 102, que está configurado para solicitar y recibir contenido esférico desde la red y para presentar contenido esférico a un usuario 104. En este caso, el contenido esférico se refiere a una representación esférica de contenido de vídeo en una superficie esférica 106 en donde la posición de los datos de vídeo en la superficie esférica puede definirse sobre la base del sistema de coordenadas esféricas en 3D 108. Los dispositivos de procesamiento de vídeo están configurados para procesar datos de vídeo esféricos y para presentar los datos de vídeo esféricos para su visualización.
Un ejemplo no limitativo de dicho dispositivo de procesamiento de vídeo es una pantalla colocada en la cabeza (HMD) que se utiliza para aplicaciones de realidad virtual y de realidad aumentada. Una HMD puede comprender uno o más sensores para rastrear los movimientos de la cabeza, de los ojos y/o del cuerpo de un usuario. La información del sensor puede utilizarse para determinar un punto de vista 110, es decir, una dirección en el espacio 3D en donde el usuario del dispositivo de procesamiento de vídeo está mirando hacia la superficie esférica. Un punto de vista puede expresarse sobre la base del sistema de coordenadas esféricas. Una HMD se caracteriza, además, por un campo de visión (FOV) 112, es decir, una zona que define la parte del vídeo esférico que la HMD puede mostrar para un punto de vista particular y un momento dado en el tiempo. El campo FOV puede denominarse, en lo sucesivo, como una zona de interés (ROI) en la superficie esférica.
El dispositivo de procesamiento de vídeo puede configurarse para generar diferentes representaciones esféricas de contenido. Por ejemplo, en un primer modo, puede generar una primera representación esférica de contenido de vídeo, en donde un usuario puede seleccionar libremente vídeo esférico desplazando la zona ROI sobre la superficie esférica. La ROI puede desplazarse moviendo el dispositivo de procesamiento de vídeo siguiendo los movimientos de la cabeza, de los ojos y/o del cuerpo de un usuario. Con el fin de evitar que todos los datos esféricos deban transmitirse al dispositivo de procesamiento de vídeo, solamente los datos de vídeo esféricos que coincidan con la posición de la ROI en la esfera son seleccionados y recuperados por el dispositivo de procesamiento de vídeo para su representación. Con ese fin, la primera representación esférica del contenido puede incluir diferentes flujos que comprenden datos de vídeo de diferentes partes espaciales (subzonas) de la superficie de la esfera. El contenido se puede seleccionar determinando el contenido de las subzonas que coinciden con la ROI en la esfera. De esta manera, el usuario puede ver libremente los datos de vídeo esféricos sin la necesidad de un gran ancho de banda.
En un segundo modo, el dispositivo de procesamiento de vídeo puede configurarse para generar una segunda representación esférica del contenido de vídeo. En este modo, un director preselecciona una zona ROI predeterminada de los datos de vídeo esféricos y la presenta al usuario. En este modo, la zona ROI está preseleccionada y el usuario no puede cambiarla. El dispositivo de procesamiento de vídeo puede conmutar sin problemas entre el primer modo y el segundo modo sobre la base de las coordenadas de la ROI que pueden transmitirse con los datos de vídeo de la segunda representación esférica (corte del director) al dispositivo de procesamiento de vídeo. La invención permite conmutar entre el primer y el segundo modo sin problemas.
La Figura 2 representa, de manera esquemática, un sistema de flujo continuo de vídeo para vídeo esférico según una forma de realización de la invención. En particular, la Figura 2 representa un sistema de transmisión de vídeo 200 que comprende una o más fuentes de medios 204, p. ej., uno o más servidores de vídeo, configurados para almacenar datos de vídeo esféricos en mosaico 202 sobre la base de un formato de datos predeterminado.
El contenido esférico en mosaicos se puede almacenar como archivos de flujo de mosaicos individuales 2031-4 en los que las tramas de vídeo de un flujo de mosaicos representan una subzona (un mosaico) de tramas de vídeo que representan una proyección bidimensional (un mapeo en 2D) de contenido de vídeo esférico en un plano rectangular. Los metadatos asociados con el contenido esférico en mosaico, p. ej., los identificadores de flujo de mosaicos (por ejemplo, direcciones URL o URI) y la relación espacial entre las diferentes subzonas (mosaicos) de diferentes flujos de mosaicos se pueden almacenar en el denominado archivo de manifiesto 206. El concepto de contenido en mosaico y de contenido esférico en mosaico se describe a continuación en más detalle.
Las una o más fuentes de medios están adaptadas para transmitir los datos de vídeo sobre la base de un protocolo de transmisión a los dispositivos de procesamiento de vídeo 2181-3 que son capaces de procesar vídeo esférico (en lo sucesivo, en forma abreviada, referidos como dispositivos de procesamiento de vídeo). Una fuente de medios puede ser parte de una red de entrega de contenido (CDN) que está configurada para la entrega eficiente de datos de medios a un gran número de dispositivos de procesamiento de vídeo.
Cada uno de los dispositivos de procesamiento de vídeo puede comprender un dispositivo cliente 2201-3 configurado para solicitar contenido esférico desde la red, en particular nodos de red tales como servidores de vídeo 204 y/o memorias cachés de vídeo 216. Los dispositivos de procesamiento de vídeo están configurados, además, para recibir datos de vídeo solicitados y almacenar en memoria intermedia los datos de medios para su entrada a un motor de medios 2221-3. El vídeo multimedia puede comprender uno o más procesadores, p. ej., unidades de procesamiento gráfico (GPUs), que pueden ejecutar una o más instancias de decodificación para decodificar los datos multimedia en tramas de vídeo.
Durante la generación de contenido, los datos de vídeo esféricos se pueden generar sobre la base de un mapeo en 2D predeterminado, p. ej., una proyección equirrectangular. Por tanto, las tramas de vídeo del vídeo esférico mapeado comprenden píxeles en una trama rectangular que puede representar una proyección equirrectangular de los datos de vídeo esféricos. Estas tramas de vídeo pueden someterse a un proceso de ordenamiento en mosaico en donde una trama de vídeo se divide espacialmente en los denominados mosaicos de vídeo (o en mosaicos cortos). El proceso de mosaico puede incluir recortar datos de vídeo (píxeles) de una zona que corresponde a un mosaico de una trama de vídeo, codificar los datos de vídeo recortados y almacenar los datos de vídeo codificados como un archivo de vídeo. La repetición de este proceso para diferentes mosaicos da como resultado un conjunto de archivos de vídeo a los que se puede acceder por separado y transmitir a un dispositivo cliente. Un dispositivo de procesamiento de contenido puede comprender un cliente para solicitar uno o más flujos de mosaicos, uno o más decodificadores para decodificar los datos de vídeo de los diferentes flujos de mosaicos; y un motor de representación para unir las tramas de vídeo en una única trama de vídeo.
De manera alternativa, en algunas formas de realización, las tramas de vídeo de la proyección en 2D de los datos de vídeo esféricos pueden codificarse sobre la base de un códec que admita el mosaico espacial. Por ejemplo, la norma HEVC admite mosaicos HEVC en los que las tramas de vídeo se dividen espacialmente en una cuadrícula de mosaicos. Estos mosaicos HEVC están codificados de modo que cada uno de los mosaicos pueda ser procesado por un núcleo diferente de un microprocesador de múltiples núcleos. Los datos multimedia asociados con un mosaico HEVC pueden codificarse de manera que no tengan ninguna dependencia de decodificación espacial de los datos multimedia de otros mosaicos de la misma trama de vídeo. Además, los datos multimedia asociados con un mosaico se codifican de manera que no tengan ninguna dependencia de decodificación temporal de los datos multimedia de otros mosaicos de tramas de vídeo anteriores o futuros. En ese caso, los datos de vídeo de cada mosaico HEVC pueden almacenarse como pistas de mosaico en una fuente de medios 104. Estas pistas de mosaico pueden tener un formato de contenedor de datos basado en un formato de archivos multimedia base ISO (ISOBMFF) de ISO/IEC 14496-12 o ISO/IEC 14496-15 portadora de vídeo estructurado de la unidad NAL en el formato de archivo de medios base ISO. En ese caso, el dispositivo de procesamiento de contenido debe comprender un cliente HEVC que admita mosaicos que puedan decodificar los flujos de mosaicos solicitados en una única trama de vídeo.
Pueden utilizarse diferentes protocolos de transporte para transmitir un flujo binario codificado que comprende datos de vídeo esféricos proyectados en 2D a un dispositivo cliente. Por ejemplo, en una forma de realización, se puede utilizar un protocolo de transmisión por secuencias adaptativas (HAS) HTTP para entregar una secuencia de mosaicos a un dispositivo cliente. En ese caso, la secuencia de tramas de vídeo en el flujo de mosaicos puede dividirse de forma temporal en segmentos temporales, que por lo general comprenden datos de medios de 2 a 10 segundos. Dicho segmento temporal puede almacenarse como un archivo multimedia en un medio de almacenamiento. En una forma de realización, un segmento temporal puede comenzar con datos de medios que no tienen dependencias de codificación temporal en otras tramas en el segmento temporal u otros segmentos temporales, p. ej., una trama I o un equivalente de la misma, de modo que el decodificador pueda comenzar directamente a decodificar datos de medios en el segmento HAS. De manera opcional, se puede proporcionar un segmento de inicialización junto con los segmentos de medios con el fin de inicializar el decodificador con parámetros pertenecientes al flujo de medios, p. ej., resolución espacial, velocidad de tramas, perfil y nivel del códec, etc.
El dispositivo cliente puede configurarse para seleccionar un conjunto de mosaicos asociados con un punto de vista de un dispositivo de procesamiento de vídeo. En una forma de realización, el dispositivo cliente puede realizar esta selección sobre la base de información en un denominado archivo de manifiesto 206, es decir, una o más estructuras de datos que comprenden metadatos para el dispositivo cliente con el fin de seleccionar y solicitar flujos de mosaicos desde la red.
Un archivo de manifiesto puede comprender identificadores de flujo, p. ej., direcciones URLs o información para determinar dichos identificadores de transmisión. Los identificadores de flujo pueden incluir uno o más identificadores de flujo de mosaico. El archivo de manifiesto puede comprender, además, información de relación espacial para señalar a un dispositivo cliente sobre la relación espacial que existe entre los mosaicos. En una forma de realización, un identificador de flujo de mosaicos puede asociarse con información de posición de mosaico, es decir, información para señalizar a un dispositivo cliente acerca de la posición de un mosaico en una trama de vídeo en mosaico de un flujo de mosaico. Para permitir una selección rápida de mosaicos, la información de posición del mosaico se puede representar en coordenadas esféricas.
Un archivo de manifiesto puede comprender, además, información de ubicación con respecto a uno o más nodos de red, p. ej., una o más direcciones URLs y/o direcciones de red de nodos de red. Estos nodos de red pueden relacionarse con fuentes de medios 204 y/o memorias cachés de medios 216 que están configuradas para transmitir datos de medios solicitados a un dispositivo cliente. Un dispositivo cliente puede utilizar un archivo de manifiesto para seleccionar uno o más flujos de mosaicos sobre la base de un punto de vista proporcionado por el dispositivo de procesamiento de vídeo al dispositivo cliente.
Un dispositivo cliente 2201-3 en un dispositivo de medios 2181-3 puede recibir y almacenar en memoria intermedia los datos de medios de los mosaicos y preparar los datos de medios como uno o más flujos binarios para la entrada a un motor de medios 2221-3. El motor de medios puede comprender uno o más descodificadores para descodificar los datos de medios de los mosaicos en tramas de vídeo. A continuación, las tramas de vídeo generadas se envían a un motor de representación 2241-3 que está acoplado al motor de medios. El motor de representación puede comprender memorias intermedias de tramas para almacenar las tramas de vídeo y un procesador de fusión (no ilustrado) para fusionar tramas de vídeo de los diferentes flujos de mosaicos en una única trama de vídeo 226 que representa la versión equirrectangular de un campo de visión (FOV) que necesita ser transformado en una representación esférica para su propia representación.
Las Figuras 3A a 3D ilustran diversas zonas ROIs en una superficie esférica para procesar datos de vídeo esféricos según diversas formas de realización de la invención. En particular, las Figuras 3A a 3D ilustran diversas zonas ROIs definidas sobre la base de un sistema de coordenadas esféricas en 3D.
En una forma de realización, el sistema de coordenadas angulares de guiñada-cabeceo-balanceo (también conocido como sistema de coordenadas esféricas) puede utilizarse para representar zonas en una esfera. En este caso, los márgenes de guiñada varían entre 0 y 360 grados, y el margen de cabeceo y de balanceo entre -90 y 90. La posición inicial (0 grados) del eje de guiñada puede ser elegida de manera arbitraria por un proveedor de contenido, o ser compartible con las direcciones cardinales con 0 y 360 grados representando el Norte, 90 grados representando el Este, 180 grados representando el Sur y 270 grados representando el Oeste. Para el eje de cabeceo, los valores positivos pueden representar la dirección por encima del horizonte y los valores negativos representan las direcciones por debajo del horizonte. Para el eje de balanceo, se puede suponer que los valores positivos indican que el ojo izquierdo del usuario está más alto que el ojo derecho y, a la inversa, los valores negativos indican que la cabeza del usuario está inclinada en sentido contrario (con el ojo izquierdo más bajo que el ojo derecho).
En una forma de realización, se pueden utilizar tres parámetros angulares (una coordenada ROI esférica) para indicar la posición de la zona ROI en la esfera. En una forma de realización, los tres ángulos de guiñada, cabeceo y balanceo (6, $, y ) pueden utilizarse para indicar el centro y la orientación de la zona ROI. En esta forma de realización, los límites de la ROI pueden estar preconfigurados en el dispositivo cliente o pueden ser determinados por el dispositivo cliente basándose en el centro y en la orientación de la zona ROI. Además, los límites de la zona ROI pueden basarse en información sobre dónde debe proyectarse la zona ROI.
Con el fin de proporcionar la capacidad para producir una conmutación suave y sin problemas entre diferentes modos de representación del dispositivo de procesamiento de vídeo, puede ser ventajoso señalar una zona ROI completa dentro del sistema de coordenadas esféricas 3D al dispositivo cliente.
En una forma de realización, la zona ROI en una esfera puede tener la forma de un polígono esférico. Para estos polígonos, se sostiene que cada lado se define como un segmento de línea de un círculo grande. Por ejemplo, la Figura 3A representa un polígono esférico que tiene la forma de un rectángulo en una esfera. En una forma de realización, se pueden utilizar diversas coordenadas angulares para definir dicho polígono esférico rectangular. En una forma de realización, se pueden utilizar cinco coordenadas angulares para definir una zona ROI rectangular en la esfera, que incluyen: 6, $, y, los tres ángulos de guiñada, de cabeceo y de balanceo para indicar el centro y la orientación de la zona ROI y los parámetros w, h: en donde w representa la anchura de la zona ROI en grados de arco y h representa la altura de la zona ROI en grados de arco.
En este caso, la altura h puede definirse como un segmento en el círculo grande que pasa por el centro de la zona ROI y tiene una elevación igual a y. De manera similar, la anchura w puede definirse como un segmento que está ubicado en el círculo grande que pasa por el centro de la zona ROI y prácticamente ortogonal al círculo grande asociado con la altura h.
En una forma de realización adicional, la zona ROI puede definirse como una zona ROI circular en una esfera tal como se muestra en la Figura 3B. En ese caso, se pueden utilizar cuatro coordenadas angulares (6, $, y, r) para describir la zona ROI circular en la esfera, en donde las primeras 3 coordenadas indican el centro y la orientación de la zona ROI y el radio r representa la longitud del radio en grados de arco.
En una forma de realización, la zona ROI puede definirse como una zona ROI elíptica en una esfera tal como se muestra en la Figura 3C. La forma elíptica se puede definir sobre la base de 5 coordenadas angulares que incluyen: 6, $, y: los tres ángulos de guiñada-cabeceo-balanceo para indicar el centro y la orientación de la zona ROI y los parámetros w, h, en donde w y h representan la longitud en grados de arco de los ejes de la zona ROI elíptica en la esfera (de manera similar a los parámetros w y h de la zona ROI rectangular).
En otra forma de realización adicional, la zona ROI puede definirse como una zona ROI poligonal genérica en una esfera tal como se muestra en la Figura 3D.
El polígono genérico puede tener n bordes (con n>= 3). Dicha zona ROI en una esfera se puede caracterizar por una lista de 1 2n coordenadas angulares, de las cuales una coordenada (por ejemplo, la primera coordenada) representa la orientación de la zona ROI y las otras 2n pares de coordenadas representan los ángulos de guiñada y de cabeceo de los bordes: (y, 61, $1, 62, $2,... 6n, $n, n>= 3).
La Figura 4 ilustra una zona ROI en una superficie esférica para procesar datos de vídeo esféricos de conformidad con otras formas de realización adicionales de la invención. En particular, la zona ROI en una esfera tal como se muestra en la Figura 4 tiene una forma rectangular en donde los lados paralelos a su anchura son segmentos de línea de círculos pequeños de la esfera y los lados paralelos a su altura son segmentos de línea de círculos grandes de la esfera. Por lo tanto, en esta forma de realización, la forma de la zona ROI en la esfera puede tener lados que no son arcos (segmentos de línea) en un círculo grande, sino en otro tipo de círculos en una esfera: tales como círculos pequeños o líneas de elevación o una combinación de los mismos.
Las zonas ROIs ilustradas en las Figuras 3 y 4 se definen de manera que la forma de la zona ROI no cambia en función de la posición de la ROI en la esfera. De esta manera, se puede definir una zona ROI de forma coherente en la esfera. Lo que antecede contrasta con la forma de subzonas (mosaicos) de datos de vídeo esféricos tal como se indica al dispositivo cliente en el denominado descriptor de relación espacial (SRD) para aplicaciones de realidad virtual VR, tal como se describe en la aportación de MPEG ISO/IEC JTCC1/SC29/WG11 MPEG2016/m38605 en donde los mosaicos en una esfera se definen como los denominados rectángulos de longitud-latitud donde, solamente las líneas de longitud (que definen la altura del rectángulo) son arcos de círculo grande y las líneas de latitud (que definen la anchura del cuadrado) no lo son (estas son líneas de un círculo pequeño). Por lo tanto, definir una zona ROI sobre la base del SRD para VR dará como resultado una zona ROI que tiene una forma y área que no es constante en función de la posición de la zona ROI en la esfera. Dichas zonas en una esfera no son, o al menos son menos adecuadas, para seleccionar datos de vídeo esféricos para su representación.
Con el fin de permitir la codificación de vídeo esférico sobre la base de sistemas de codificación convencionales, el vídeo esférico se procesa en primer lugar en un formato que pueda introducirse en un codificador convencional. Como los códecs convencionales solamente pueden gestionar tramas de vídeo rectangulares planas, los datos de vídeo se suelen mapear en la forma de un formato de trama de vídeo rectangular convencional. Se pueden utilizar diferentes tipos de mapeo.
Por ejemplo, las Figuras 5 y 6 ilustran un ejemplo de una zona ROI en una superficie esférica para seleccionar vídeo esférico y su mapeo en 2D asociado en una superficie. Estas figuras representan la denominada proyección equirrectangular del contenido esférico sobre un plano rectangular. Dicho mapeo da como resultado una imagen de vídeo que comprende una parte frontal, izquierda, derecha y posterior de la esfera, en donde hacia los polos norte y sur los objetos (píxeles) se distorsionan en la imagen debido a la proyección. En el tamaño del decodificador, la proyección equirrectangular debe transformarse nuevamente en contenido que se proyecta en una superficie curvada, p. ej., esférica.
Dependiendo de la forma en que se generó el vídeo esférico y dependiendo del tipo de aplicación de realidad virtual VR, se pueden utilizar otros tipos diferentes de proyecciones (mapeos en 2D). El tipo de mapeo y los parámetros necesarios para el mapeo se conocen como información de mapeo. En el caso de contenido esférico, solamente es necesario reproducir la parte de los datos de vídeo que corresponden a la zona ROI. La zona ROI representa una zona en una superficie esférica, por lo tanto, con el fin de utilizar la zona ROI para seleccionar datos de vídeo esféricos sobre la base de los datos de vídeo mapeados en 2D, la zona ROI en primer lugar debe mapearse en el plano 2D. En el ejemplo de la Figura 5, la zona ROI se coloca a lo largo del ecuador de la esfera. La correspondiente zona ROI mapeada en 2D se encuentra en una posición que se corresponde con una posición a lo largo del ecuador. La Figura 6 muestra la misma zona ROI que ahora se desplaza en una dirección hacia el polo norte de la esfera. En ese caso, la zona ROI mapeada en 2D correspondiente también se desplazará a una posición cercana al polo norte. Debido al mapeo en 2D, la forma de la zona ROI mapeada en 2D cambia en función de la posición de la zona ROI en la esfera. Este efecto debe tenerse en cuenta al seleccionar un vídeo esférico sobre la base de una zona ROI.
Además, cuando se utilizan otros mapeos en 2D, más complejos, la forma de la zona ROI mapeada en 2D cambiará de una manera diferente. Por lo tanto, al seleccionar contenido esférico sobre la base de una descripción esférica de una zona ROI (es decir, una zona ROI en una esfera), el dispositivo cliente utilizará diferentes algoritmos de selección de datos de vídeo para diferentes mapeos en 2D. Por lo tanto, el dispositivo cliente necesita conocer el mapeo en 2D que se utiliza para representar los datos de vídeo esféricos en el flujo binario con el fin de seleccionar un algoritmo de selección de contenido apropiado. Tal como se describirá a continuación con más detalle, el mapeo en 2D que se utiliza para representar los datos de vídeo esféricos en el flujo binario se señaliza al dispositivo cliente sobre la base de metadatos en el archivo de manifiesto.
La Figura 7 representa un sistema para representar datos de vídeo esféricos sobre la base de una zona ROI según una forma de realización de la invención. Tal como se muestra en la Figura 7, el sistema puede incluir un servidor 702 y un cliente 718. El servidor puede configurarse para recibir solicitudes 714 desde el cliente para transmitir datos de vídeo esféricos almacenados en un medio de almacenamiento 710 al cliente. Con ese fin, el servidor puede incluir un transmisor 708 configurado para transmitir datos de vídeo esféricos en mensajes de respuesta 716 al cliente. Tal como ya se describió con anterioridad, los datos de vídeo esféricos se pueden almacenar como un conjunto de flujos de mosaicos, en donde cada mosaico representa datos de vídeo esféricos de un mosaico en una posición predeterminada en la superficie esférica.
El servidor puede comprender, además, un módulo de la zona ROI de servidor 704 que está configurado para determinar una zona ROI específica de tiempo que define una zona de una forma particular en una superficie esférica (una zona de la ROI) sobre la base de un sistema de coordenadas esféricas. La zona ROI puede definirse de tal manera que la forma y el área de la ROI no cambien (sean constantes) en función de la posición de la ROI en la esfera. El módulo de la zona ROI del servidor puede configurarse, además, para comunicar información de la zona ROI, incluyendo la coordenada de la zona ROI esférica a un dispositivo cliente que puede ser parte de un dispositivo de procesamiento de vídeo que es capaz de representar datos de vídeo esféricos.
Además, los metadatos asociados con el contenido esférico pueden enviarse al dispositivo cliente. En una forma de realización, los metadatos pueden enviarse en un archivo de manifiesto al dispositivo cliente, que puede almacenar el archivo de manifiesto, p. ej., un MPD, en una memoria 626. El archivo de manifiesto puede incluir uno o más identificadores de flujo de mosaicos para identificar uno o más flujos de mosaicos. Cada flujo de mosaicos comprende datos de vídeo esféricos de una subparte (un mosaico) de la superficie de una esfera. De esta manera, cada subparte puede definir un mosaico esférico en una posición predeterminada en la esfera. El archivo de manifiesto puede comprender, además, información de descripción espacial para señalizar al aparato cliente información sobre la posición (estática) de los mosaicos en la esfera e información de proyección para señalizar al aparato cliente sobre el tipo de proyección en 2D (por ejemplo, equirrectangular, cúbica, etc.) que se utiliza para representar los datos de vídeo esféricos en un flujo binario.
El dispositivo cliente puede comprender, además, un procesador 725 que está configurado para recibir la información de la zona ROI y la entrada del usuario desde un módulo de control de usuario 730 asociado con el dispositivo cliente. El módulo de control de usuario puede recibir señales del usuario informando al dispositivo cliente si el usuario desea recibir los datos de vídeo esféricos en modo libre o en modo dirigido. Sobre la base de esta información, el procesador puede configurar el cliente en un modo de transmisión deseado, que puede requerir conmutar desde el modo libre al modo dirigido o viceversa.
La identificación del contenido esférico puede incluir identificar uno o más flujos de mosaicos en el archivo de manifiesto en donde los datos de vídeo esféricos de los flujos de mosaicos identificados abarcan los datos de vídeo esféricos identificados por la zona ROI. Con ese fin, el procesador puede utilizar un algoritmo de selección de mosaicos que puede depender del tipo de proyección que se utiliza para representar los datos de vídeo esféricos en el flujo binario. El dispositivo cliente puede entonces utilizar los metadatos en el archivo de manifiesto para solicitar al servidor que transmita los datos de vídeo esféricos identificados, p. ej., uno o más flujos de mosaicos, al dispositivo cliente.
Si el modo de transmisión se establece en "modo libre", el cliente recibe información de control del usuario (por ejemplo, información del sensor asociada con los movimientos de la cabeza, los movimientos del cuerpo, etc.) y determina un ROI en una posición de una esfera sobre la base de esta información. A continuación, basándose en la información de mapeo, el dispositivo cliente puede seleccionar un algoritmo de selección para seleccionar datos de vídeo esféricos sobre la base de la zona ROI.
El dispositivo cliente puede entonces utilizar un algoritmo de selección apropiado para seleccionar los datos de vídeo esféricos asociados con la zona ROI. La selección puede incluir determinar la zona de la ROI mapeada en 2D y utilizarla junto con los datos de vídeo esféricos mapeados en 2D para seleccionar los datos de vídeo esféricos de la zona ROI.
Si el modo de transmisión por secuencias se establece en "modo dirigido", el cliente solicita al servidor los detalles de la zona ROI predeterminada. Una vez que se reciben las coordenadas de la zona ROI predeterminada, el cliente puede proceder a identificar la ubicación de la zona ROI en el vídeo proporcionado en el flujo binario.
En una forma de realización, la información de la zona ROI puede formatearse de conformidad con un formato de archivo ISOBMFF. En particular, las coordenadas esféricas de la zona ROI pueden almacenarse sobre la base de un formato de archivo ISOBMFF. En una forma de realización, se puede definir una entrada de muestra que comprende un límite superior e inferior implícito:
aligned(8) class 3DSphericalCoordinatesSampleEntry
extends MetadataSampleEntry ('3dsc') {
}
En este ejemplo, la elección arbitraria es que el ángulo de cabeceo esté limitado entre -90 y 90 grados mientras que el ángulo de guiñada esté limitado entre 0 y 360 grados. En una forma de realización, la entrada de muestra puede proporcionar el límite inferior y superior con respecto a los cuales se han calculado los ángulos:
aligned(8) class 3DSphericalCoordinatesSampleEntry
extends MetadataSampleEntry ('3dsc') {
unsigned int(16) reference_width;
unsigned int(16) reference_height;
unsigned int(4) shape_type;
}
En esta forma de realización, los parámetros reference_width y reference_height proporcionan, respectivamente, la anchura y la altura, en términos de ángulos de guiñada y de cabeceo, de la superficie esférica en donde se pueden definir las coordenadas de la zona ROI.
El parámetro shape_type define la forma de la zona en la esfera de la superficie. Como ejemplo, podemos considerar el siguiente tipo de forma para la zona ROI:
Figure imgf000012_0001
En una forma de realización, para un almacenamiento eficiente, los ángulos de guiñada y de cabeceo pueden almacenarse utilizando un método de ángulos binarios (también denominado medición angular binaria o BAM). Es decir, la totalidad del margen de la variable binaria se utiliza para codificar valores. De esta manera, es posible realizar representaciones precisas de los valores angulares que siempre permanecen en el margen de 0 y 360 al envolver el comportamiento del entero binario. Se puede seleccionar un campo de 16 bits para el ángulo de guiñada, lo que permite un incremento de 360/2A16 = 0,0054931640625 grados. Para el ángulo de cabeceo, un campo de 16 bits proporciona una precisión de 180/2A16 = 0,00274662394140535591668574044404 grados. De manera alternativa, se pueden utilizar campos más pequeños para codificar los ángulos de manera más eficiente al coste de una pérdida de precisión.
El campo de datos para una zona ROI rectangular en un sistema de coordenadas esféricas en 3D puede seguir la sintaxis:
aligned(8) class 3DShper¡calCoord¡natesSample(){
unsigned int(16) yaw_center;
unsigned int( 16) pitch_center;
unsigned ¡nt(16) roll_center;
unsigned ¡nt(16) width;
unsigned int(16) height;
unsigned int(1) interpólate;
unsigned int(7) reserved;
}
En este caso, los parámetros yaw_center y pitch_center señalan, respectivamente, las coordenadas horizontal y vertical del centro de la zona ROI en la superficie esférica. El parámetro roll_center señala la orientación de la zona ROI en la superficie esférica asociada con la muestra de medios de la pista de referencia. Los parámetros de width y height señalan, respectivamente, la anchura y la altura de la zona en la superficie esférica asociada con la muestra de medios de la pista referenciada. Además, el parámetro interpólate indica la continuidad en el tiempo de las muestras sucesivas. Cuando es verdadero, una aplicación cliente puede interpolar linealmente valores de las coordenadas de la zona ROI entre la muestra anterior y la muestra actual. Cuando es falso, no se utiliza interpolación.
En una forma de realización, un dispositivo cliente puede procesar la información de la zona ROI sobre la base de un protocolo de transmisión adaptativo, preferiblemente el protocolo de transmisión MPEG-DASH. Por ejemplo, cuando el dispositivo cliente ha recibido información de la zona ROI para mostrar cierto contenido esférico al usuario, el dispositivo cliente necesita poder recuperar la posición de la zona ROI en el contenido esférico almacenado en la red.
Por lo general, cuando se utiliza MPEG-DASH, el dispositivo cliente puede utilizar un archivo de manifiesto (un MPD) para recuperar contenido, incluyendo una representación esférica del contenido. El archivo de manifiesto puede definir uno o más identificadores de flujo de mosaicos para identificar flujos de mosaicos, comprendiendo cada flujo de mosaicos datos de vídeo esféricos transformados de un mosaico en la superficie esférica donde cada mosaico define una subparte en la superficie esférica. Los datos de vídeo esféricos transformados pueden resultar de la transformación de los datos de vídeo esféricos, que pueden al menos incluir una proyección de los datos de vídeo esféricos en un plano en 2D. El archivo de manifiesto puede comprender, además, información de descripción espacial para señalizar al aparato cliente información sobre la posición de los mosaicos en la superficie esférica.
En este caso se puede suponer que todo el contenido relacionado con los servicios basados en VR puede describirse como Conjuntos de Adaptación en el MPD. Estos Conjuntos de Adaptación pueden incluir un descriptor de SRD que sigue la sintaxis del Sr D extendido para la propuesta de VR de contribución en MPEG ISO/IEC JTCC1/SC29/WG11 MPEG2016/m38605, que describe las siguientes modificaciones al SRD.
El presente SRD para servicios VR incluye un espacio de parámetros dentro del elemento SupplementalProperty o elemento EssentialProperty cuyo valor indica el tipo de representación de vídeo esférico. Este parámetro también puede implicar la presencia de nuevos parámetros para caracterizar los detalles de la representación de vídeo esférico (por ejemplo, un espacio cilíndrico se puede representar como espacio = representación cilíndrica y, de manera opcional, uno o más parámetros adicionales que caracterizan al cilindro, por ejemplo, altura = 150).
De manera alternativa, en una forma de realización, en lugar de un SRD que comprende el parámetro de espacio, se puede utilizar un descriptor de proyección separado en el archivo de manifiesto para señalar al dispositivo cliente el tipo de proyección que se utiliza.
La semántica de los parámetros object_x y object_y en el SRD para VR se cambia con respecto al SRD convencional en el sentido de que las coordenadas (object_x, object_y) representan la posición central de la subparte espacial (un mosaico).
Además, los parámetros object_x y object_y pueden identificar los ángulos de guiñada y de cabeceo, respectivamente. El margen de guiñada se define de 0 a 360 donde 0 = norte, 90 = este, 180 = sur y 270 = oeste, el margen de cabeceo es de -90° (nadir) a 90° (cenit). Esta semántica refleja mejor la forma en que los sistemas de representación de VR representan los puntos de vista del usuario. De esta manera, un método de selección de flujo basado en la información del SRD permitirá una selección más rápida de los flujos de mosaicos, lo cual es esencial para proporcionar una buena calidad de experiencia.
Los parámetros object_width y object_height pueden representar la anchura y la altura del objeto en términos de longitud angular del objeto sobre una superficie esférica. Concretamente, la anchura del objeto está representada por el grado de arco de su anchura medida en el paralelo que pasa por el centro del objeto y la altura está representada por el grado de arco de su altura medida en el meridiano que pasa por el centro del objeto.
Los parámetros object_x y object_y y los parámetros object_width y object_height asocian datos de vídeo de cada flujo de mosaicos a una zona en una superficie esférica, lo que es coherente con la forma en que se define una zona ROI en una esfera según la presente invención.
Se pueden identificar diferentes capas de resolución de los mismos datos de vídeo esféricos en el archivo de manifiesto. En ese caso, todos los flujos de mosaicos que pertenecen a la misma capa de resolución pueden identificarse sobre la base de un parámetro spatial_set_id. Por lo tanto, este parámetro identifica todas las subpartes que pertenecen a la misma capa de resolución, y puede utilizarse para ordenar las capas de resolución desde la resolución más baja hasta la resolución más alta, comenzando la más baja desde el valor 0. De esta manera, un cliente puede identificar con facilidad todos los flujos de mosaicos que pertenecen a la misma capa de resolución.
Una descripción de alto nivel del procesamiento de la información de la zona ROI sobre la base de un protocolo de transmisión adaptativo, tal como el protocolo de transmisión MPEG-DASH, se describirá a continuación con referencia a las Figuras 8A a 8C que ilustran la estructura de una descripción de presentación de medios MPD según una forma de realización de la invención.
En una primera etapa, el dispositivo cliente puede seleccionar una de las proyecciones 2D en las que se ofrece el contenido esférico tal como se muestra en la Figura 8A. En este caso, el dispositivo cliente puede, por ejemplo, seleccionar la proyección A en 2D sobre la base de la información del SRD (utilizando el parámetro de espacio) o sobre la base de un descriptor de proyección separado en el MPD.
A continuación, en la segunda etapa, el dispositivo cliente puede seleccionar uno o más Conjuntos de Adaptación que definen el contenido esférico que combinados pueden representar una superficie en la superficie esférica que incluye la zona ROI. Por ejemplo, si el contenido esférico está en mosaico, la zona ROI se superpone con más de un mosaico, por lo que se necesita un grupo de mosaicos para formar el contenido esférico asociado con la zona ROI (por ejemplo, los Conjuntos de Adaptación 1,4 y 10 en la Figura 8B).
Con ese fin, el dispositivo cliente puede comparar la posición esférica y el tamaño de la zona ROI con la posición esférica y el tamaño de cada una de las subpartes espaciales, con el fin de evaluar qué subpartes espaciales cubren la zona ROI.
A continuación, en una tercera etapa, si se encuentra más de un grupo de representaciones (alternativas) (por ejemplo, en diferentes representaciones de resolución tal como se muestra en la Figura 8C), el dispositivo cliente puede seleccionar el grupo que, de conformidad con su lógica de adaptación, sea más apropiado. Por ejemplo, podría elegir el grupo que proporciona la mayor calidad visual o, el grupo que está más próximo, con respecto a la calidad, al grupo mostrado con anterioridad. La elección también puede depender de los códecs o de las preferencias del usuario. En cualquier caso, las representaciones seleccionadas deben tener las mismas propiedades (por ejemplo, el mismo códec, la resolución, la proyección 2D, etc.). Por ejemplo, seleccionando todos los conjuntos de adaptación caracterizados por el mismo parámetro de SRD spatial_set_id.
La primera etapa descrita con anterioridad también se puede realizar como una subetapa de la tercera etapa, en caso de que el cliente admita múltiples proyecciones en 2D y quiera diferir la elección de qué proyección 2D descargar, en función de su lógica de adaptación (por ejemplo, una proyección 2D cilíndrica podría permitir ahorrar más ancho de banda que una proyección 2D equirrectangular, con la misma calidad visual).
A continuación, se describe con más detalle la etapa de seleccionar uno o más Conjuntos de Adaptación que definen el contenido esférico que combinados pueden representar una superficie en la superficie esférica que incluye la zona ROI.
La Figura 9 ilustra una zona ROI en una superficie y su mapeo en 2D asociado en una superficie según una forma de realización de la invención. En particular, la figura muestra una zona ROI rectangular similar a la descrita con referencia a la Figura 4. La zona ROI puede estar asociada con vídeo esférico en formato equirrectangular que puede estar disponible en diferentes capas de resolución, en este ejemplo dos capas de resolución, de las cuales la capa de mayor resolución también está dividida espacialmente en 9 mosaicos. Se puede generar una presentación diferente del mismo contenido. Tanto la versión de baja resolución de los datos de vídeo esféricos como la de alta resolución en mosaico de los datos de vídeo esféricos se producen utilizando la proyección equirrectangular. Además, también se pone a disposición del dispositivo cliente un flujo de vídeo de "vista en movimiento" para transmitir un "corte del director" de los datos de vídeo esféricos.
En una forma de realización, ambas representaciones de contenido (vista esférica y vista en movimiento) pueden procesarse y transmitirse al dispositivo cliente sobre la base de la norma MPEG DASH. En ese caso, el contenido de vídeo puede segmentarse de forma temporal y los segmentos temporales pueden almacenarse como flujos segmentados de forma temporal y estar disponibles en un servidor HTTP. Además, el contenido de vídeo de la capa de alta resolución también puede segmentarse espacialmente y almacenarse como flujos de mosaicos (segmentados de forma temporal). Las direcciones URLs de las transmisiones pueden proporcionarse en el archivo de manifiesto, al que se hace referencia en DASH como Descripción de Presentación de Medios (MPD).
En la siguiente tabla 1 se proporciona un ejemplo de un MPD según una forma de realización de la invención. El MPD, en este ejemplo, puede definir múltiples, en este ejemplo, 12 conjuntos de adaptación: un conjunto de adaptación que define una representación de baja resolución de la esfera completa, nueve conjuntos de adaptación que definen nueve flujos de mosaicos que forman la representación de alta resolución, un conjunto de adaptación que define un flujo de vídeo de vista en movimiento y un conjunto de adaptación que define las coordenadas de la ROI asociadas con el flujo de vídeo de vista en movimiento. En este caso, el conjunto de adaptación que contiene la representación de baja resolución tiene un spatial_set_id establecido en 0 y los nueve conjuntos de adaptación que contienen las representaciones correspondientes a los mosaicos de alta resolución tienen todos un spatial_set_id establecido en 1.
En una forma de realización, las coordenadas de la zona ROI asociada con el flujo de vídeo de la vista en movimiento pueden proporcionarse en la representación cuyo atributo @id es "view_coord'. El atributo @codecs de esta representación indica "3dsc" en referencia a una entrada de muestra de coordenadas esféricas 3D tal como se definió con anterioridad en esta descripción.
En una forma de realización, la representación de coordenadas puede etiquetarse con el atributo @associationType de valor "cdsc" y está asociada con la representación de @ id "director_cut' a través del atributo @associationld. La representación "director_cut' contiene un SRD dinámico. Es decir, puesto que las coordenadas son dinámicas, se proporcionan en los segmentos de la Representación de Coordenadas y el SRD contiene el @id de esta Representación en particular para que el cliente las descargue.
Además, en una forma de realización, se puede utilizar un descriptor de proyección dedicado para señalar el tipo de proyección al dispositivo cliente. Por ejemplo, en el MPD en la tabla 1 siguiente, el descriptor de proyección "urn: mpeg: omaf: projection: 2016" se utiliza para señalar que los datos de vídeo esféricos en la secuencia son datos de vídeo esféricos transformados, en donde la transformación incluye al menos una proyección de los datos de vídeo esféricos en un plano 2D utilizando un tipo de proyección equirrectangular.
Tabla 1: MPD según una forma de realización de la invención.
Figure imgf000015_0001
<SupplementalProperty schemeIdUri="urn:mpeg:dash:srd:vr:2016" value="0,180,0,360, 180,360, 180,0"/>
<Representation mimeType="video/mp4" codecs="avc1.42c01e" width="450" height="800" bandwidth="269011" startWithSAP="1">
<BaseURL> full_video_lowres.mp4</BaseURL>
<SegmentBase indexRangeExact="true" indexRange="837-988"/> </Representation>
</AdaptationSet>
<!-High-res layer -->
<!-- Tile 1 -->
<AdaptationSet segmentAlignment="true" subsegmentAlignment="true" subsegmentStartsWithSAP=" 1" >
<Role schemeldUri="urn:mpeg:dash:role:2011" value="supplementary"/> <SupplementalProperty schemeldUri="urn:mpeg:omaf:projection:2016" value="equirectang ular"/>
<EssentialProperty schemeldUri="urn:mpeg:dash:srd:vr:2016" value="0, 60,60,120,60,360,180,1"/>
<Representation mimeType="video/mp4" codecs="avc1.42c00d" width="300" height="533" bandwidth="134689" startWithSAP="1">
<BaseURL> tile1_video_highres.mp4</BaseURL>
<SegmentBase indexRangeExact="true" indexRange="837-988"/> </Representation>
</AdaptationSet>
<!-- Tile 2 -->
<AdaptationSet segmentAlignment="true" subsegmentAlignment="true" subsegmentStartsWithSAP=" 1" >
<Role schemeldUri="urn:mpeg:dash:role:2011 "value="supplementary"/> <SupplementalProperty schemeldUri="urn:mpeg:omaf:projection:2016" value="equirectangular"/>
<EssentialProperty schemeldUri="urn:mpeg:dash:srd:vr:2016" value="0, 180,60,120,60,360,180,1"/> <Representation mimeType="video/mp4" codecs="avc1.42c00d" width="300" height="533" bandwidth="134689" startWithSAP="1">
<BaseURL> tile2_video_highres.mp4</BaseURL>
<SegmentBase indexRangeExact="true" indexRange="837-988"/>
</Representation>
</AdaptationSet>
<!-- Tile 4 -->
<AdaptationSet segmentAlignment="true" subsegmentAlignment="true"
<Role schemeldUri="urn:mpeg:dash:role:2011" value="supplementary"/> <SupplementalProperty schemeldUri="urn:mpeg:omaf:projection:2016" value="equirectangular"/>
<EssentialProperty schemeldUri="urn:mpeg:dash:srd:vr:2016" value="0, 60,0,120,60,360,180,1"/> <Representation mimeType="video/mp4" codecs="avc1.42c00d" width="300" height="533" bandwidth="134689" startWithSAP="1">
<BaseURL> tile4_video_highres.mp4</BaseURL>
<SegmentBase indexRangeExact="true" indexRange="837-988"/>
</Representation>
</AdaptationSet>
<!-- Tile 5 -->
<AdaptationSet segmentAlignment="true" subsegmentAlignment="true" subsegmentStartsWithSAP=" 1" >
<Role schemeldUri="urn:mpeg:dash:role:2011" value="supplementary"/> <SupplementalProperty schemeldUri="urn:mpeg:omaf:projection:2016" value="equirectangular"/>
<EssentialProperty schemeldUri="urn:mpeg:dash:srd:vr:2016" value="0, 180,0,120,60,360,180,1 "/>
<Representation mimeType="video/mp4" codecs="avc1.42c00d" width="300" height="533" bandwidth="134689" startWithSAP="1">
<BaseURL> tile5_video_highres.mp4</BaseURL>
<SegmentBase indexRangeExact="true" indexRange="837-988"/> </Representation>
</AdaptationSet>
<!-- Tile 7 -->
<AdaptationSet segmentAlignment="true" subsegmentAlignment="true" subsegmentStartsWithSAP=" 1" >
<Role schemeldUri="urn:mpeg:dash:role:2011" value="supplementary"/> <SupplementalProperty schemeldUri="urn:mpeg:omaf:projection:2016" value="equirectangular"/>
<EssentialProperty schemeldUri="urn:mpeg:dash:srd:vr:2016" value="0, 60,­ 60,120,60,360,180,1 "/>
<Representation mimeType="video/mp4" codecs="avc1.42c00d" width="300" height="533" bandwidth="134689" startWithSAP=" 1">
<BaseURL> tile7 _video_highres.mp4</BaseURL>
<SegmentBase indexRangeExact="true" indexRange="837-988"/> </Representation>
</AdaptationSet>
<!-- Tile 8 -->
<AdaptationSet segmentAlignment="true" subsegmentAlignment="true" subsegmentStartsWithSAP=" 1" >
<Role schemeldUri="urn:mpeg:dash:role:2011" value="supplementary"/> <SupplementalProperty schemeldUri="urn:mpeg:omaf:projection:2016" value="equirectangular"/>
<EssentialProperty schemeldUri="urn:mpeg:dash:srd:vr:2016" value="0, 180,­ 60,120,60,360,180,1 "/>
<Representation mimeType="video/mp4" codecs="avc1.42c00d" width="300" height="533" bandwidth="134689" startWithSAP="1">
<BaseURL> tile8_video_highres.mp4</BaseURL>
<SegmentBase indexRangeExact="true" indexRange="837-988"/>
</Representation>
</AdaptationSet>
<!-Moving view -->
<AdaptationSet segmentAlignment="true" subsegmentAlignment="true" subsegmentStartsWithSAP=" 1" >
<Role schemeldUri="urn:mpeg:dash:role:2011" value="main"/>
<EssentialProperty schemeldUri="urn:mpeg:dash:srd:dynamic:2016" value="0,view_coord, 1"/> <SupplementalProperty schemeldUri="urn:mpeg:omaf:projection:2016" value="equirectangular"/>
<Representation id="director_cut" mimeType="video/mp4" codecs="avc1.42c00d" width="300" height="533" bandwidth="134689" startWithSAP="1">
<BaseURL>director_cut_video.mp4</BaseURL>
Figure imgf000018_0001
Para cada conjunto de adaptación de la misma capa de resolución, el dispositivo cliente puede realizar las siguientes etapas:
1) identificar los bordes de la trama delimitadora de la zona ROI;
2) identificar los mosaicos ubicados dentro de los límites horizontales y verticales de la zona ROI.
La Figura 10A representa la posición de la zona ROI en la proyección equirrectangular 2D. Para ello, la zona ROI esférica se proyecta en el plano 2D utilizando la proyección equirrectangular.
A partir de lo que antecede, el dispositivo cliente puede determinar la "trama delimitadora", en la proyección 2D, que contiene la zona ROI tal como se define en el sistema de coordenadas esféricas. La trama delimitadora puede definirse como el rectángulo más pequeño, cuyos lados se ajustan a la representación de mapeo en 2D, que puede contener la zona ROI definida en el espacio esférico en 3D. Por ejemplo, en el mapeo en 2D equirrectangular de la Figura 10B, la trama delimitadora es un rectángulo cuyos lados son paralelos a los lados de la representación proyectada en 2D. En lo sucesivo, el dispositivo cliente puede identificar los límites horizontales y verticales de la zona ROI.
Tal como se describió con anterioridad, una zona ROI rectangular puede caracterizarse por los siguientes parámetros angulares: (d, $, y, w, h). En el caso de la zona ROI de la Figura10A, estos parámetros pueden ser (120,0, 0, 120, 90) lo que significa que la zona ROI está centrada en (120, 0), tiene un grado de balanceo de 0 y un tamaño de (120, 90). Con el fin de determinar la trama delimitadora de la zona ROI, en primer lugar, se calculan las coordenadas de los cuatro vértices de la zona ROI y de los centros de los bordes de la zona ROI.
Con este fin, se pueden utilizar reglas de trigonometría esférica que incluyen las siguientes etapas:
1. Calcular las coordenadas de uno de los vértices de la zona ROI, p. ej., el vértice B, como intersección de los dos círculos grandes en los que se encuentran los lados de la zona ROI alrededor del vértice (es decir, el círculo grande que pasa por el segmento AB y el círculo grande que pasa por el segmento BC).
2. Una vez que se conocen las coordenadas de un vértice, calculando d, la distancia sobre la esfera entre el centro de la zona ROI y el vértice, y calculando la elevación de d, que es el ángulo que forma el segmento d con el eje de guiñada tal como se muestra en la Figura 11A (al ilustrar la zona ROI con vértices, son resaltados los puntos medios de los segmentos que representan los lados de la zona ROI, d, w y h).
3. Utilizar d y la elevación para calcular las coordenadas de los vértices restantes.
De conformidad con la etapa 1, es necesario calcular los dos círculos grandes que se intersectan. Un círculo grande está definido por dos puntos. Como primer punto del círculo grande que pasa por el segmento AB, se selecciona E y como primer punto del círculo grande que pasa por el segmento BC, se selecciona F.
A partir de entonces, las coordenadas de los puntos E y F (puntos medios de los lados AB y BC de la zona ROI, respectivamente) se calculan utilizando la inversa de la fórmula de Haversine basada en el conocimiento de las coordenadas del centro de la zona ROI, la distancia de E y F desde el centro de la zona ROI (h/2 y w/2, respectivamente) y la elevación de estos segmentos de distancia (0 y n/2, respectivamente), corregido por la orientación de la zona ROI, proporcionada por ^:
< pE = asm (sin(<p) * eos
Figure imgf000019_0001
s(- vo)
9e - 9 atan2 (sin(-r
Figure imgf000019_0002
eos
Figure imgf000019_0003
<pr — asin (sin(<p) * eos
Figure imgf000019_0004
eos (
Figure imgf000019_0005
0F — 0 atan2 (sin (— — i/j) * sin {íw /% ) * eos(<p), eos ( ( ’ / s / 8 ) — sin(ip) * sin(yjf )^ )
En este caso R es el radio de la esfera. Por simplicidad, en esta forma de realización se selecciona una esfera con una circunferencia de 360, ya que los grados de arco se utilizan como unidades de medida de las distancias en la esfera (por ejemplo, d se calcula en grados de arco). Si las coordenadas están fuera de escala, se corrigen para que se ajusten a las escalas de guiñada y de cabeceo.
A continuación, es necesario calcular un segundo punto en el círculo grande que pasa por el segmento AB y un segundo punto en el círculo grande que pasa por el segmento BC. Como segundo punto del segmento AB, se selecciona E2, definido como la intersección entre el círculo grande que pasa por AB y el círculo grande que pasa por el segmento w. Como segundo punto en el segmento BC, se selecciona F2, definido como la intersección entre el círculo grande que pasa por BC y el círculo grande que pasa por el segmento h (véase Figura 11B). La longitud de los segmentos OE2 y OF2 es, debido a la forma en que se han definido, siempre 180, y la elevación de los segmentos OE2 y OF2 es n/2 y 0, respectivamente, corregido por la orientación de la zona ROI, proporcionada por y. Con esta información, de nuevo se utiliza la inversa de la fórmula de Haversine para calcular las coordenadas de E2 y F2. Una vez que se conocen E, E2, F, F2, se calcula la intersección entre el círculo grande que pasa por EE2 y el círculo grande que pasa por FF2. Lo que antecede nos dará las coordenadas del vértice B.
Para determinar la etapa 2, se puede utilizar la fórmula de Haversine para calcular la longitud d del segmento OB. La fórmula de Haversine toma como entrada las coordenadas de los bordes del segmento (O y B). Los segmentos OC, OD y OA tienen la misma longitud de OB, es decir, d. A continuación, la ley esférica de los cosenos puede ser calcular la elevación de OB. Para esta fórmula, se necesita la longitud de todos los segmentos del triángulo OEB. Se conocen OB y OE (iguales a d y h/2, respectivamente), y EB se calcula a su vez a partir de E y B utilizando la fórmula de Haversine. A continuación, la elevación (denominada en las fórmulas bearing) se calcula de la siguiente manera (el término -y nuevamente representa la orientación de la zona ROI).
( cos(EB) - eos (53 * cos(d
bearing = eos-1 ------------- -r—--------------------\ sin ( j ) * sin(d)
Figure imgf000019_0006
Para determinar la etapa 3, las coordenadas de los vértices restantes (C, D, A) se calculan utilizando la longitud d y la elevación (denominada bearing) y la fórmula de Haversine inversa:
q>c — asin (sin(
Figure imgf000019_0007
9(: = 8 + atan2 (sin(-i/0 * sin(rf/^ ) * cos(<p) ,cos(^/gj - sin(y) * sin(<pc))
<pD = asin (sin(y) * cos(^//?) cos(y) * sin(^/^j * cos(tt + bearing))
9D = 9 atan2 (sin(-i/j) * sin(^/^j * cos(^),cos(^/^^ - sin(y) * sin(yD))
(pA — asin (sin(
Figure imgf000019_0008
9A = 9 atan2 (sin(-i/0 * s in ^ /^ ) * cos(y) ,cos(^/^j - sin(y) * s in ^ ) )
Las fórmulas utilizadas en esta forma de realización pueden proporcionarse como parte de bibliotecas estándar de lenguajes de programación comunes, tal como Javascript. Se observa que, si la forma de la zona ROI no cambia con el tiempo, la longitud d y la elevación se pueden calcular solamente una vez al principio (el ángulo de elevación posiblemente deba corregirse si cambia la orientación de la zona ROI p), lo que hace que el cálculo de los vértices BCD y A para la zona ROI en movimiento sea más rápido (ya que todos podrían calcularse utilizando la fórmula de Haversine inversa y, por lo tanto, solamente la etapa 3 - y la etapa 2 en caso de que cambie la orientación de la ROI - deberían realizarse para todas las posiciones posteriores de esa zona ROI).
Las coordenadas de E y F se calcularon sobre la base de las etapas descritas con anterioridad. Con un método similar, también se pueden calcular las coordenadas de H y G.
Los límites horizontales y verticales (Hl, Hh y V i, Vh, respectivamente) de la zona ROI son los valores "extremos" de la zona ROI, es decir, la coordenada horizontal máxima y mínima y la coordenada vertical máxima y mínima. La coordenada vertical máxima es la más grande entre las coordenadas verticales de los vértices de la ROI (ABCD) y de los centros de los bordes de la ROI (EFGH). La coordenada vertical mínima es la más pequeña entre las coordenadas verticales de los vértices de la ROI (ABC) y de los centros de los bordes de la ROI (EFGH). Los límites horizontales mínimo y máximo se calculan de forma similar.
A continuación, se pueden determinar los mosaicos dentro de los límites horizontales y verticales de la zona ROI. Para identificar estos mosaicos, se revisan las coordenadas de los centros de todos los mosaicos y seleccionamos aquellos mosaicos i para los que se sostiene:
- H< = 0i< = Hh, lo que significa que el centro tiene una coordenada de guiñada mayor o igual que H/, pero menor o igual que Hh
- V i< = $¡< =Vh, lo que significa que el centro tiene una coordenada de cabeceo menor o igual que V/, pero mayor o igual que Vh
De esta manera, el dispositivo cliente puede seleccionar los mosaicos 1,2, 4, 5, 7 y 8 para su recuperación.
La Figura 12A representa un ejemplo de una zona ROI fuera de los límites. En ese caso, la zona ROI cruza el límite vertical del mapeo en 2D. Este escenario operativo puede resolverse fácilmente al calcular los vértices de la zona ROI, puesto que A y D tendrán coordenadas horizontales mayores que B y C. La situación se puede resolver creando dos conjuntos de límites horizontales:
- Límites horizontales 1 = (H/í , Hhi) = (0, coordenada horizontal máxima entre las coordenadas horizontales de B, C y F)
- Límites horizontales 2 = (H/2, Hh2) = (coordenada horizontal mínima entre las coordenadas horizontales de A H y F, 360).
La Figura 12B representa un ejemplo en donde el centro de la zona ROI está posicionado en uno de los polos, en este caso el polo norte. En este caso, la representación de la zona ROI en el mapeo equirrectangular se verá como en la Figura 12B.
Este escenario operativo se puede identificar fácilmente ya sea mirando las coordenadas del centro de la zona ROI o mirando las coordenadas de los vértices de la zona ROI, A, B, C y D, que tendrán todos ellos la misma coordenada vertical. En este caso, los límites horizontales y verticales se definen de la siguiente manera:
- (H/, Hh) = (0, 360)
- (V/, Vh) = (coordenada vertical del vértice B, 90)
Para el caso de la zona ROI centrada en el polo sur, los límites horizontal y vertical se definen de la siguiente manera:
- (H/, Hh) = (0, 360)
- (V/, Vh) = (-90, coordenada vertical del vértice B)
En base a esta información, los mosaicos pueden seleccionarse de una manera similar a la descrita con referencia a las Figuras 11A y 11B.
En un ejemplo adicional, el mosaico se puede seleccionar sobre la base de una zona ROI no rectangular. Con el fin de identificar la ubicación de una zona ROI no rectangular, en primer lugar, se debe determinar la ubicación de la trama delimitadora. Para las zonas ROIs tal como se define con referencia a la Figura 4A a 4D, la trama delimitadora se puede determinar de la siguiente manera:
- Círculo: el rectángulo de la trama tiene el mismo centro que el círculo, y la anchura y la altura son ambas iguales a 2r.
- Elipse: el rectángulo tiene el mismo centro que la elipse, y la anchura y la altura son iguales a w y h, respectivamente.
- Polígono genérico: a partir de las coordenadas de los distintos bordes, identificar:
o la coordenada de guiñada más a la izquierda (6/),
o la coordenada de guiñada más a la derecha (6r)
o la coordenada de tono superior (0t)
o la coordenada de tono inferior (0b)
en donde 6l y 6r corresponden a los límites horizontales de la zona ROI y 0t y 0b corresponden a los límites verticales.
Una vez que se ha obtenido la trama delimitadora, el dispositivo cliente puede proceder de la misma manera que se describe con referencia a las Figuras 11A y 11B. Se observa, además que, para el caso del polígono genérico, la primera etapa (identificar las coordenadas de los vértices y de los límites horizontal/vertical) ya se ha calculado al calcular la trama delimitadora. Además, para el caso del polígono genérico, la trama delimitadora es una aproximación, sin tener en cuenta la posición de los centros de los bordes del polígono.
En lugar de una proyección equirrectangular, se pueden utilizar también otros tipos de proyecciones, p. ej., una proyección cúbica según se ilustra en la Figura 13. La Figura 13 muestra una esfera representada en el plano 2d por un cubo. En esta forma de realización, el mapeo cúbico está dividido en 12 mosaicos, de los cuales solamente 6 mantienen un contenido. Podría ser posible redisponer los lados del cubo para ocupar una superficie más pequeña, p. ej., una cuadrícula de mosaicos de 2 por 3 y, por lo tanto, evitar el contenido "vacío" en el flujo binario.
Para encontrar la posición de la zona ROI en el mapeo cúbico, se pueden ejecutar las siguientes etapas. Determinar los vértices A, B, C y D, así como los centros de los bordes E, F, G y H de la zona ROI siguiendo las mismas etapas descritas con anterioridad con referencia a las Figura 11A y 11B. A continuación, es necesario encontrar la posición de los puntos dentro de la representación cúbica. Por último, es necesario determinar las tramas delimitadoras, en la representación cúbica, que incluyen esta zona ROI.
Las primeras etapas incluyen identificar la posición de los vértices y los centros de los bordes de la zona ROI en el mapeo cúbico. Se puede utilizar un método en donde, en primer lugar, el espacio esférico se divide en cuatro zonas por el ángulo de guiñada:
• Zona 1: [0, 45], [315, 360]
• Zona 2: [45, 135]
• Zona 3: [135, 225]
• Zona 4: [225, 315]
Cada una de estas zonas puede proyectarse a uno de entre los cuatro lados laterales del cubo (es decir, la parte media de cada zona) o el lado superior del cubo (es decir, la parte superior de cada zona) o el lado inferior del cubo (es decir, la parte inferior de cada zona). Un punto P siempre se proyectará en el lado superior del cubo si su coordenada vertical es 0>55 grados y siempre se proyectará en el lado inferior del cubo si es 0<-55 grados. Lo que antecede da como resultado la siguiente regla:
- Si 0>55: entonces el punto P se asigna al lado superior del cubo
- Si 0<-55: entonces el punto P se asigna al lado inferior del cubo
- Si -55< 0 < 55: entonces el punto P se asigna a uno de los 4 lados del cubo de conformidad con las zonas definidas con anterioridad:
o Si 6 pertenece a la Zona 1, entonces el punto P se asigna al lado izquierdo del cubo
o Si 6 pertenece a la Zona 2, entonces el punto P se asigna al lado frontal del cubo
o Si 6 pertenece a la Zona 3, entonces el punto P se asigna al lado derecho del cubo
o Si 6 pertenece a la Zona 4, entonces el punto P se asigna al lado posterior del cubo.
Conviene señalar que, para los puntos asignados a los lados laterales del cubo, todavía existe la posibilidad de que realmente pertenezcan al lado superior o inferior. Esta situación se puede verificar en la siguiente etapa.
A continuación, se calcula el vector cúbico (x, y, z) relativo al punto P. El cálculo del vector cúbico depende del lado del cubo asignado al punto P:
Lado asignado Cálculo del vector cúbico
Superior x = tan(m - 0) * cos(6)
y = tan(^ -0) * sin(6)
z = 1
Inferior x = -tan(n -0) * cos(6)
y = -tan(^ -0) * sin(6)
Lado asignado Cálculo del vector cúbico
z = -1
Izquierdo x = 1
y = tan(^ - 0)
z = cot(^ - 0)/cos(0)
Frontal x = tan(0 -pi/2)
y = 1
z = cot(^ - 0)/cos(0 -pi/2)
Derecho x = -1
y = -tan(0)
z = -cot(^ -0)/cos(0)
Posterior x = -tan(0 -3*pi/2)
y = -1
z = cot(^ -0)/cos(0 -3*pi/2)
Al calcular el vector cúbico relativo al punto P, un valor z>1 para un punto P asignado a uno de los lados laterales del cubo, indica que el punto P se ha asignado incorrectamente y en realidad pertenece a la parte superior. Del mismo modo, si z<-1 P pertenece realmente al lado inferior. En ambos casos, P se reasigna al lado correcto del cubo y se recalcula el vector cúbico relativo a P.
En el caso de que los lados del cubo no se dividan en mosaicos, se puede omitir el cálculo de las componentes x e y del vector cúbico, ya que solamente necesitamos saber en qué lado del cubo cae un punto P, y para eso basta con calcular la componente z del vector cúbico.
A continuación, se pueden calcular los límites horizontales y verticales de las tramas delimitadoras.
Las etapas del párrafo anterior se repiten para todos los puntos de interés, es decir, los vértices de la zona ROI y los centros de los lados de la zona ROI (A, B, C, D, E, F, G, H). A continuación, se seleccionan todos los lados del cubo en los que residen estos puntos. Estos serán los mosaicos que el dispositivo cliente necesita solicitar al servidor. En el caso de que los lados del cubo se dividan a su vez en mosaicos, podemos calcular las coordenadas de píxeles de los puntos de interés de conformidad con la siguiente fórmula:
Lado asignado Cálculo de la posición del píxel
Superior X = edge*(3-x)/2
Y = edge*(1+y)/2
Inferior X = edge*(3-x)/2
Y = edge*(5-y)/2
Izquierdo X = edge*(y+1 )/2
Y = edge*(3-z)/2
Frontal X = edge*(x+3)/2
Y = edge*(3-z)/2
Derecho X = edge*(5-y)/2
Y = edge*(3-z)/2
Posterior X = edge*(7-x)/2
Y = edge*(3-z)/2
en este caso, edge es la longitud, en píxeles, del borde de un lado del cubo.
Basándose en las coordenadas de píxeles de los puntos de interés, se puede inferir en qué mosaicos se encuentran (de manera similar a como se hace en la forma de realización equirrectangular). Con un razonamiento similar también se pueden inferir los mosaicos que se encuentran entre estos puntos de interés.
El cambio del modo libre al modo dirigido y viceversa se describirá a continuación con más detalle.
Para garantizar una buena calidad de servicio al usuario, es importante habilitar un cambio sin interrupciones desde el modo libre al modo dirigido y viceversa.
Se pueden distinguir dos tipos de conmutadores: "conmutador libre" y "conmutador dirigido". El conmutador libre significa que el usuario puede conmutar en cualquier momento entre el modo libre y el modo dirigido, mientras que el conmutador dirigido significa que el usuario puede conmutar entre los modos solamente en momentos predefinidos durante la experiencia de realidad virtual VR, p. ej., cuando el contenido de realidad virtual cambia de escena.
Un aspecto importante en el caso del "conmutador dirigido" es que el proveedor de contenido sabe en qué momento de la línea temporal de los medios conmutará el usuario y, por lo tanto, puede preparar el contenido para dicha situación.
La Figura 14 representa la transición de un dispositivo accionado en el modo dirigido a un dispositivo accionado en el modo libre. Cuando los medios de realidad virtual se acercan al final de una escena en modo dirigido, se ejecutará una fase de transición.
Durante esta fase de transición, el proveedor de contenido puede preparar el contenido (etapa 1402), para mostrar, en las pantallas virtuales o reales, el contenido en valores predefinidos de ángulos de guiñada y de balanceo (por ejemplo, 0 y 0). Al mismo tiempo, se le puede solicitar al usuario que tome una posición particular y la orientación de la cabeza en el ámbito virtual (etapa 1404), para que sea coherente con la posición y orientación del contenido (por ejemplo, con la cabeza ubicada frente a la pantalla, en donde se colocaría el proyector hipotético, y con los ángulos de guiñada y de balanceo de la cabeza iguales a los del contenido, por ejemplo, guiñada = 0 y balanceo = 0).
Con la posición y orientación del usuario coherentes con la posición y orientación del contenido en la esfera, puede ocurrir la transición real al modo libre (etapas 1406 y 1408). El usuario puede activar la transición a través de una interfaz de usuario, p. ej., pulsando un botón, o la transición puede iniciarse de manera automática una vez que el usuario esté en la posición y orientación correctas. La transición puede presentar un lento desvanecimiento del denominado teatro virtual (o vista del mundo real) con el contenido virtual inmersivo tomando su lugar. La duración de la fase de transición la puede decidir el proveedor de contenido, la aplicación cliente o incluso el usuario. Después de la transición, los movimientos del cuerpo y de la cabeza del usuario decidirán el contenido de realidad virtual que se proyectará.
Por el mismo motivo, el usuario puede conmutar desde el modo Libre al modo Dirigido. Cuando los medios de realidad virtual VR se acercan al inicio de una escena que se puede experimentar en el modo Dirigido, se ejecutará una fase de transición.
Durante esta fase de transición, el proveedor de contenido tendrá el contenido dirigido disponible en valores predefinidos de ángulos de guiñada y de balanceo (por ejemplo, 0 y 0). Al mismo tiempo, se le puede solicitar al usuario que adopte una posición particular y la orientación de la cabeza en el ámbito virtual, para que sea coherente con la posición y orientación del contenido dirigido que se mostrará en la pantalla virtual o real (por ejemplo, con la cabeza ubicada en el centro del mundo virtual, en donde estaba la cámara que tomó el vídeo dirigido, y con los ángulos de guiñada y de balanceo de la cabeza iguales a los del contenido, p. ej., guiñada = 0 y balanceo = 0).
Con la posición y orientación del usuario coherentes con la posición y orientación del contenido en la esfera, puede ocurrir la transición real al modo dirigido. El usuario puede activar la transición pulsando un botón o la transición puede iniciarse de manera automática una vez que el usuario está en la posición y orientación correctas. La transición puede presentar un lento desvanecimiento del contenido virtual inmersivo, con el denominado teatro virtual (o vista del mundo real) tomando su lugar. La duración de la fase de transición la puede decidir el proveedor de contenido, la aplicación cliente o incluso el usuario. Después de la transición, los movimientos del cuerpo y de la cabeza del usuario ya no tendrán influencia en el contenido de realidad virtual VR que se proyecta.
En el caso de conmutación libre, el usuario puede conmutar entre los modos dirigido y libre en cualquier momento en la línea temporal de los medios, por lo que se requieren algunas etapas adicionales durante la fase de transición, para permitir una transición lo más suave posible.
Cuando el usuario está experimentando actualmente el flujo de vídeo en modo dirigido e indica la intención de conmutar al modo libre, se ejecutará una fase de transición.
Durante la fase de transición, se le puede solicitar al usuario que tome una posición particular y la orientación de la cabeza en el ámbito virtual, de modo que la pantalla real o virtual esté exactamente frente a ella (por ejemplo, con la cabeza ubicada en el centro del ámbito virtual, en donde estaba la cámara que tomó el vídeo dirigido, y con los ángulos de guiñada y de balanceo de la cabeza en reposo, por ejemplo, guiñada = 0 y balanceo = 0).
Una vez que se han ajustado la posición y la orientación del usuario, puede ocurrir la transición real al modo libre. El usuario puede activar la transición pulsando un botón o la transición puede iniciarse de manera automática una vez que el usuario está en la posición y orientación correctas. La transición puede presentar un movimiento de traslación del contenido a las coordenadas del punto de vista con guiñada y de balanceo en reposo (o cualesquiera que sean las coordenadas de guiñada y de balanceo de la cabeza del usuario actualmente), y un lento desvanecimiento del denominado teatro virtual (o vista del mundo real) con el contenido virtual inmersivo tomando su lugar. La duración de la fase de transición la puede decidir el proveedor de contenido, la aplicación cliente o incluso el usuario.
En el caso de que no sea posible preparar al usuario para la transición, durante la fase de transición, la aplicación cliente puede necesitar también realizar un acercamiento o alejamiento, junto a la traslación del contenido y el desvanecimiento de los elementos no inmersivos. Después de la transición, los movimientos del cuerpo y de la cabeza del usuario decidirán el contenido de realidad virtual VR que se proyectará.
Cuando el usuario está experimentando actualmente el flujo de vídeo en modo libre e indica la intención de conmutar al modo dirigido, se ejecutará una fase de transición.
Durante la fase de transición, se le puede solicitar al usuario que tome una posición particular y la orientación de la cabeza en el ámbito virtual, para que sea coherente con la posición y orientación del contenido dirigido que se mostrará en la pantalla virtual o real (por ejemplo, con la cabeza ubicada frente a la pantalla, en donde se colocaría el proyector hipotético, y con los ángulos de guiñada y de balanceo de la cabeza en reposo, por ejemplo, guiñada = 0 y balanceo = 0).
Una vez que se han ajustado la posición y la orientación del usuario, puede suceder la transición real al modo dirigido. El usuario puede activar la transición pulsando un botón o la transición puede iniciarse de manera automática una vez que el usuario está en la posición y orientación correctas. La transición puede presentar un movimiento de traslación del contenido a las coordenadas del punto de vista con guiñada y de balanceo iguales a los del contenido dirigido que se mostrará, y un lento desvanecimiento del contenido virtual inmersivo, con el denominado teatro virtual (o vista del mundo real) tomando su lugar. La duración de la fase de transición la puede decidir el proveedor de contenido, la aplicación cliente o incluso el usuario.
En el caso de que no sea posible preparar al usuario para la transición, durante la fase de transición, la aplicación cliente puede necesitar también realizar un acercamiento o alejamiento, junto a la traslación del contenido y del desvanecimiento de los elementos no inmersivos.
Después de la transición, los movimientos del cuerpo y de la cabeza del usuario ya no tendrán influencia en el contenido de realidad virtual VR que se proyecta.
Al ofrecer contenido en directo, el usuario podrá incorporarse al programa en cualquier momento. Sin embargo, es muy probable que la vista más interesante de toda la escena cambie con el tiempo según lo decida el creador del contenido. Como resultado, es posible que el contenido desee indicar al dispositivo cliente la posición en la esfera en donde debe comenzar a representarse y comenzar en una posición arbitraria. Con este fin, la aplicación también puede utilizar la coordenada ROI esférica 3D para definir la ventana gráfica inicial al sintonizar un contenido en directo. De manera similar, cuando un usuario busca un contenido bajo demanda, la aplicación también puede aprovechar esta información para presentar al usuario la vista más interesante definida por el creador del contenido.
La Figura 15 es un diagrama de bloques que ilustra un sistema de procesamiento de datos, a modo de ejemplo, que puede utilizarse tal como se describe en esta descripción. El sistema de procesamiento de datos 1500 puede incluir al menos un procesador 1502 acoplado a elementos de memoria 1504 a través de un bus del sistema 1506. En consecuencia, el sistema de procesamiento de datos puede almacenar código de programa dentro de elementos de memoria 1504. Además, el procesador 1502 puede ejecutar el código de programa al que se accede desde los elementos de memoria 1504 a través del bus del sistema 1506. En un aspecto, el sistema de procesamiento de datos puede ponerse en práctica tal como un ordenador que es adecuado para almacenar y/o ejecutar un código de programa. Debe apreciarse, sin embargo, que el sistema de procesamiento de datos 1500 puede ponerse en práctica en la forma de cualquier sistema que incluya un procesador y una memoria que sea capaz de realizar las funciones descritas en esta especificación.
Los elementos de memoria 1504 pueden incluir uno o más dispositivos de memoria física como, por ejemplo, la memoria local 1508 y uno o más dispositivos de almacenamiento masivo 1510. La memoria local puede referirse a la memoria de acceso aleatorio u otros dispositivos de memoria no persistentes, que se suelen utilizar durante la ejecución real del código del programa. Un dispositivo de almacenamiento masivo puede ponerse en práctica como un disco duro u otro dispositivo de almacenamiento de datos persistentes. El sistema de procesamiento 1500 también puede incluir una o más memorias caché (no ilustradas) que proporcionan almacenamiento temporal de al menos algún código de programa para reducir el número de veces que el código de programa debe recuperarse del dispositivo de almacenamiento masivo 1510 durante la ejecución.
Los dispositivos de entrada/salida (E/S) representados como dispositivo de entrada 1512 y dispositivo de salida 1514 se pueden acoplar de manera opcional al sistema de procesamiento de datos. Los ejemplos de dispositivo de entrada pueden incluir, pero no se limitan a, por ejemplo, un rastreador de posición, un teclado, un dispositivo señalador tal como un ratón, una pantalla táctil o similar. Los ejemplos de dispositivo de salida pueden incluir, pero no se limitan a, por ejemplo, un monitor o una pantalla (colocada en la cabeza), altavoces o similares. El dispositivo de entrada y/o el dispositivo de salida se pueden acoplar al sistema de procesamiento de datos ya sea directamente o mediante controladores de E/S intervinientes. También se puede acoplar un adaptador de red 1516 al sistema de procesamiento de datos para permitir que se acople a otros sistemas, sistemas informáticos, dispositivos de red remotos y/o dispositivos de almacenamiento remoto a través de redes públicas o privadas intervinientes. El adaptador de red puede comprender un receptor de datos para recibir datos que son transmitidos por dichos sistemas, dispositivos y/o redes a dichos datos y un transmisor de datos para transmitir datos a dichos sistemas, dispositivos y/o redes. Los módems, módems de cable y tarjetas Ethernet son ejemplos de diferentes tipos de adaptadores de red que pueden utilizarse con el sistema de procesamiento de datos 1550.
Tal como se muestra en la Figura 15, los elementos de memoria 1504 pueden almacenar una aplicación 1518. Conviene señalar que el sistema de procesamiento de datos 1500 puede ejecutar, además, un sistema operativo (no ilustrado) que puede facilitar la ejecución de la aplicación. La aplicación, que se pone en práctica en forma de código de programa ejecutable, puede ser ejecutada por el sistema de procesamiento de datos 1500, por ejemplo, por el procesador 1502. En respuesta a la ejecución de la aplicación, el sistema de procesamiento de datos puede configurarse para realizar una o más operaciones que se describirán en este documento con más detalle.
En un aspecto, por ejemplo, el sistema de procesamiento de datos 1500 puede representar un sistema de procesamiento de datos del cliente. En ese caso, la aplicación 1518 puede representar una aplicación de cliente que, cuando se ejecuta, configura el sistema de procesamiento de datos 1500 para realizar las diversas funciones descritas en este documento con referencia a un "cliente". Los ejemplos de un cliente pueden incluir, pero no se limitan a, un ordenador personal, un ordenador portátil, un teléfono móvil o similares.
En otro aspecto, el sistema de procesamiento de datos puede representar un servidor. Por ejemplo, el sistema de procesamiento de datos puede representar un servidor (HTTP), en cuyo caso la aplicación 1518, cuando se ejecuta, puede configurar el sistema de procesamiento de datos para realizar operaciones del servidor (HTTP). En otro aspecto, el sistema de procesamiento de datos puede representar un módulo, una unidad o una función según se refiera en esta especificación.
La terminología utilizada en este documento tiene el propósito de describir formas de realización particulares solamente y no pretende ser una limitación de la invención. Tal como se utiliza en el presente documento, las formas singulares "un", "una" y "el" pretenden incluir las formas plurales también, a menos que el contexto indique claramente lo contrario. Se entenderá, además, que los términos "comprende" y/o "que comprende", cuando se utilizan en esta especificación, especifican la presencia de características, números enteros, etapas, operaciones, elementos y/o componentes declarados, pero no excluyen la presencia o adición de una o más características, números enteros, etapas, operaciones, elementos, componentes y/o grupos de los mismos.

Claims (13)

REIVINDICACIONES
1. Un método para procesar datos de vídeo esféricos que comprende:
un aparato cliente que recibe o genera información de la zona de interés (ROI) asociada con una ROI en una representación esférica de datos de vídeo, siendo la ROI un polígono esférico rectangular y que tiene un centro, una orientación y un límite en una superficie esférica, definiendo la representación esférica una vista de imagen de datos de vídeo esféricos en la superficie esférica sobre la base de un sistema de coordenadas esféricas, incluyendo la información de la ROI una coordenada de la ROI esférica asociada con una posición de la ROI, en donde la coordenada de la ROI esférica incluye un ángulo de guiñada, de cabeceo y de balanceo, indicando el ángulo de guiñada y el ángulo de cabeceo el centro de la ROI y el ángulo de balanceo indicando la orientación de la ROI, comprendiendo la información de la ROI, además, parámetros que representan una anchura de la ROI en grados de arco y una altura de la ROI en grados de arco, en donde la altura se define como un segmento en un primer círculo grande que pasa por el centro de la ROI y que tiene una elevación igual al ángulo de cabeceo, y en donde la anchura se define como un segmento que está ubicado en un segundo círculo grande que pasa por el centro de la ROI, en donde el segundo círculo grande es prácticamente ortogonal al primer círculo grande;
el aparato cliente recibe un archivo de manifiesto que comprende uno o más identificadores de flujo de mosaicos para identificar uno o más flujos de mosaicos, comprendiendo cada flujo de mosaicos datos de vídeo esféricos transformados de un mosaico en la superficie esférica, resultando los datos de vídeo esféricos transformados de la transformación de los datos de vídeo esféricos, incluyendo la transformación al menos una proyección de los datos de vídeo esféricos sobre una superficie plana, preferiblemente una superficie plana rectangular; definiendo cada mosaico una subparte en la superficie esférica, comprendiendo, además, el archivo de manifiesto información de descripción espacial para señalizar la información del aparato cliente sobre la posición de los mosaicos en la superficie esférica;
el aparato cliente recibe información de proyección para señalizar al aparato cliente sobre el tipo de proyección que se utiliza para la proyección de los datos de vídeo esféricos en la superficie plana, preferiblemente el tipo de proyección que incluye una proyección equirrectangular, una proyección cúbica, una proyección cilíndrica o derivadas y/o combinaciones de las mismas; y,
el aparato cliente recibe y/o genera información de límites para definir el límite de la ROI sobre la base de la coordenada esférica de la ROI y los parámetros que representan la anchura de la ROI en grados de arco y la altura de la ROI en grados de arco, teniendo el límite una forma que es constante para cada posición en la superficie esférica y que define un zona de la ROI; y el aparato cliente que utiliza la zona de la ROI para seleccionar uno o más flujos de mosaicos sobre la base de la información de descripción espacial y la información de proyección, en donde cada uno de los flujos de mosaicos seleccionados define un mosaico en la esfera que se superpone con la zona de la ROI.
2. Método según la reivindicación 1, en donde la información de límites comprende una o más coordenadas de la ROI adicionales, definiendo la coordenada de la ROI y las una o más coordenadas de la ROI adicionales los vértices de un polígono esférico, estando definido el límite del polígono esférico por un segmento de línea sobre la superficie esférica entre dos vértices, siendo el segmento de línea parte de un círculo grande o de un círculo pequeño de dicha esfera.
3. Método según la reivindicación 1, en donde la información de límite comprende una o más coordenadas de la ROI adicionales, en donde la coordenada de la ROI define un centro de la zona de la ROI y en donde las una o más coordenadas de la ROI adicionales definen uno o más puntos en el límite de la ROI.
4. Método según cualquiera de las reivindicaciones 1 a 3, en donde la información de proyección está comprendida en el archivo de manifiesto, preferiblemente incluyendo la información de proyección un valor descriptor de proyección para identificar el tipo de proyección que se utiliza para la proyección de los datos de vídeo esféricos sobre la superficie plana.
5. Método según cualquiera de las reivindicaciones 1 a 4, en donde el archivo de manifiesto comprende, además, al menos un identificador de flujo de la ROI, preferiblemente una dirección URL o una dirección URI, identificando el identificador de flujo de la ROI un flujo de datos que comprende una secuencia de coordenadas de la ROI esféricas ordenadas de forma temporal, definiendo las coordenadas de la ROI esféricas ordenadas la posición de la ROI en función del tiempo, de manera opcional, comprendiendo el archivo de manifiesto, además, información de la zona de la ROI que define el límite y/o la forma de la ROI.
6. Método según la reivindicación 5, en donde el archivo de manifiesto comprende, además, información de formato de datos de la ROI para señalizar al aparato cliente sobre el formato de datos de las coordenadas de la ROI en el flujo de la ROI, preferiblemente la información que se refiere a una entrada de muestra de coordenadas esféricas en 3D.
7. Método según cualquiera de las reivindicaciones 1 a 6, en donde recibir la información de la ROI incluye: recibir un flujo de datos que comprende coordenadas de la ROI esféricas, preferiblemente coordenadas de la ROI esféricas ordenadas de forma temporal, definiendo las coordenadas de la ROI la posición de la ROI en función del tiempo; y, de manera opcional, comprendiendo el flujo de datos información de la zona de la ROI que define el límite y/o la forma de la ROI.
8. Método según cualquiera de las reivindicaciones 1 a 7, en donde el aparato cliente utiliza la información de proyección para seleccionar un algoritmo de selección de mosaicos, estando configurado el algoritmo de selección de mosaicos para seleccionar uno o más mosaicos que se superponen con la ROI.
9. Método según cualquiera de las reivindicaciones 1 a 8, en donde la selección de los uno o más flujos de mosaicos comprende, además:
utilizar la información de proyección para transformar la zona de la ROI en una zona de la ROI proyectada en 2D en un plano,
utilizar la zona de la ROI proyectada en 2D en la selección de los uno o más flujos de mosaicos que definen uno o más mosaicos que se superponen con la zona de la ROI.
10. Método según cualquiera de las reivindicaciones 1 a 9, en donde la generación de información de la zona de interés (ROI) incluye:
recibir información del sensor indicativa de los movimientos de la cabeza, de los ojos y/o del cuerpo de un usuario;
transformar la información del sensor en una coordenada ROI esférica.
11. Método según cualquiera de las reivindicaciones 1 a 10, en donde se utiliza un protocolo de transmisión por secuencias adaptativo, preferiblemente el protocolo MPEG-DASH, para procesar y transmitir por secuencias los datos de vídeo esféricos y, de manera opcional, la información de la ROI.
12. Un dispositivo cliente para procesar datos de vídeo esféricos que comprende:
un medio de almacenamiento legible por ordenador que tiene al menos parte de un programa incorporado en el mismo, comprendiendo el medio de almacenamiento legible por ordenador un archivo de manifiesto; y,
un medio de almacenamiento legible por ordenador que tiene incorporado un código de programa legible por ordenador, y un procesador, preferiblemente un microprocesador, acoplado al medio de almacenamiento legible por ordenador, en donde, en respuesta a la ejecución del código de programa legible por ordenador, el procesador está configurado para realizar operaciones ejecutables que comprenden:
recibir o generar información de la zona de interés (ROI) asociada con una ROI en una representación esférica de datos de vídeo, siendo la ROI un polígono esférico rectangular y que tiene un centro, una orientación y un límite en una superficie esférica, definiendo la representación esférica una vista de imagen de datos de vídeo esféricos en la superficie esférica sobre la base de un sistema de coordenadas esféricas, incluyendo la información de la ROI una coordenada de la ROI esférica asociada con una posición de la ROI, en donde la coordenada de la ROI esférica incluye un ángulo de guiñada, un ángulo de cabeceo y un ángulo de balanceo, indicando el ángulo de guiñada y el ángulo de cabeceo el centro de la ROI e indicando el ángulo de balanceo la orientación de la ROI, comprendiendo la información de la ROI, además, parámetros que representan una anchura de la ROI en grados de arco y una altura de la ROI en grados de arco, en donde la altura se define como un segmento en un primer círculo grande que pasa por el centro de la ROI y tiene una elevación igual al ángulo de cabeceo, y en donde la anchura se define como un segmento que está ubicado en un segundo círculo grande que pasa por el centro de la ROI, en donde el segundo círculo grande es prácticamente ortogonal al primer círculo grande;
recibir un archivo de manifiesto que comprende los uno o más identificadores de flujo de mosaicos para identificar uno o más flujos de mosaicos, comprendiendo cada flujo de mosaicos datos de vídeo esféricos transformados de un mosaico en la superficie esférica, resultando los datos de vídeo esféricos transformados de la transformación de los datos de vídeo esféricos, incluyendo la transformación al menos una proyección de los datos de vídeo esféricos sobre una superficie plana; definiendo cada mosaico una subparte en la superficie esférica, comprendiendo, además, el archivo de manifiesto información de descripción espacial para señalizar la información del aparato cliente sobre la posición de los mosaicos en la superficie esférica;
recibir información de proyección para señalizar al aparato cliente sobre el tipo de proyección que se utiliza para transformar datos de vídeo esféricos;
recibir y/o generar información de límites para definir el límite de la ROI sobre la base de la coordenada esférica de la ROI y los parámetros que representan la anchura de la ROI en grados de arco y la altura de la ROI en grados de arco, teniendo el límite un forma que es constante para cada posición en la superficie esférica y que define una zona de la ROI; y, utilizar la zona de la ROI para seleccionar uno o más flujos de mosaicos sobre la base de la información de descripción espacial y la información de proyección, en donde cada uno de los flujos de mosaicos seleccionados define un mosaico en la esfera que se superpone con la zona de la ROI.
13. Producto de programa informático que comprende partes de código de software configuradas para, cuando se ejecuta en la memoria de un ordenador, ejecutar las etapas del método según cualquiera de las reivindicaciones 1 a 11.
ES17781136T 2016-10-12 2017-10-12 Procesamiento de datos de vídeo esféricos sobre la base de una zona de interés Active ES2883151T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP16002198 2016-10-12
PCT/EP2017/076115 WO2018069466A1 (en) 2016-10-12 2017-10-12 Processing spherical video data on the basis of a region of interest

Publications (1)

Publication Number Publication Date
ES2883151T3 true ES2883151T3 (es) 2021-12-07

Family

ID=57226709

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17781136T Active ES2883151T3 (es) 2016-10-12 2017-10-12 Procesamiento de datos de vídeo esféricos sobre la base de una zona de interés

Country Status (5)

Country Link
US (1) US10805614B2 (es)
EP (1) EP3526974B1 (es)
CN (1) CN109792563B (es)
ES (1) ES2883151T3 (es)
WO (1) WO2018069466A1 (es)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115243075A (zh) * 2014-10-10 2022-10-25 索尼公司 再现装置和再现方法
JP7022077B2 (ja) 2016-05-25 2022-02-17 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ 空間的にタイリングされた全方位ビデオのストリーミング
CN106101847A (zh) * 2016-07-12 2016-11-09 三星电子(中国)研发中心 全景视频交互传输的方法和系统
CN109691113B (zh) 2016-07-15 2022-02-08 皇家Kpn公司 流式传输虚拟现实视频
WO2018050606A1 (en) * 2016-09-14 2018-03-22 Koninklijke Kpn N.V. Streaming virtual reality video
US10712555B2 (en) 2016-11-04 2020-07-14 Koninklijke Kpn N.V. Streaming virtual reality video
US10742999B2 (en) * 2017-01-06 2020-08-11 Mediatek Inc. Methods and apparatus for signaling viewports and regions of interest
JP7159057B2 (ja) * 2017-02-10 2022-10-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 自由視点映像生成方法及び自由視点映像生成システム
US10979663B2 (en) * 2017-03-30 2021-04-13 Yerba Buena Vr, Inc. Methods and apparatuses for image processing to optimize image resolution and for optimizing video streaming bandwidth for VR videos
CN110546688B (zh) * 2017-05-30 2023-11-17 索尼公司 图像处理装置和方法、文件生成装置和方法及程序
KR102030983B1 (ko) * 2017-11-29 2019-10-11 전자부품연구원 분할 영상 기반의 라이브 스트리밍 서비스 운용 방법 및 이를 지원하는 전자 장치
GB2569544B (en) * 2017-12-19 2022-07-20 Displaylink Uk Ltd Transmission of a reverse video feed
EP3531703A1 (en) * 2018-02-26 2019-08-28 Thomson Licensing Method and network equipment for encoding an immersive video spatially tiled with a set of tiles
US11115451B2 (en) * 2018-03-26 2021-09-07 Mediatek Singapore Pte. Ltd. Methods and apparatus for signaling viewports and regions of interest
CN110349226B (zh) * 2018-04-01 2021-06-01 浙江大学 一种全景图像处理方法及装置
US11153482B2 (en) * 2018-04-27 2021-10-19 Cubic Corporation Optimizing the content of a digital omnidirectional image
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
EP3588965A1 (en) * 2018-06-28 2020-01-01 InterDigital CE Patent Holdings Method configured to be implemented at a terminal adapted to receive an immersive video spatially tiled with a set of tiles, and corresponding terminal
EP3644619A1 (en) * 2018-10-23 2020-04-29 InterDigital CE Patent Holdings Method and apparatus for receiving a tile-based immersive video
EP3672251A1 (en) 2018-12-20 2020-06-24 Koninklijke KPN N.V. Processing video data for a video player apparatus
US11523185B2 (en) 2019-06-19 2022-12-06 Koninklijke Kpn N.V. Rendering video stream in sub-area of visible display area
JP2022541908A (ja) * 2019-07-22 2022-09-28 インターデジタル ヴイシー ホールディングス, インコーポレイテッド ボリュメトリックビデオコンテンツを配信するための方法および装置
EP3793199A1 (en) * 2019-09-10 2021-03-17 InterDigital VC Holdings, Inc. A method and apparatus for delivering a volumetric video content
US11023729B1 (en) 2019-11-08 2021-06-01 Msg Entertainment Group, Llc Providing visual guidance for presenting visual content in a venue

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5703604A (en) * 1995-05-22 1997-12-30 Dodeca Llc Immersive dodecaherdral video viewing system
JP5905957B2 (ja) * 2011-06-08 2016-04-20 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ 空間的にセグメント化されたコンテンツの配信
FR2988964A1 (fr) 2012-03-30 2013-10-04 France Telecom Technique de distribution d'un contenu video de type immersif
MX364810B (es) 2013-07-19 2019-05-07 Sony Corp Dispositivo y método de procesamiento de información.
EP3562170A1 (en) 2013-07-29 2019-10-30 Koninklijke KPN N.V. Providing tile video streams to a client
JPWO2015060165A1 (ja) 2013-10-22 2017-03-09 シャープ株式会社 表示処理装置、配信装置、および、メタデータ
JP6002191B2 (ja) * 2014-10-06 2016-10-05 株式会社ユニモト 全周動画配信システム、全周動画配信方法、通信端末装置およびそれらの制御方法と制御プログラム
KR101953679B1 (ko) 2014-06-27 2019-03-04 코닌클리즈케 케이피엔 엔.브이. Hevc-타일드 비디오 스트림을 기초로 한 관심영역 결정
US10694192B2 (en) 2014-06-27 2020-06-23 Koninklijke Kpn N.V. HEVC-tiled video streaming
CN104159026A (zh) * 2014-08-07 2014-11-19 厦门亿联网络技术股份有限公司 一种实现360度全景视频的系统
CN104219584B (zh) * 2014-09-25 2018-05-01 广东京腾科技有限公司 基于增强现实的全景视频交互方法和系统
US20160277772A1 (en) 2014-09-30 2016-09-22 Telefonaktiebolaget L M Ericsson (Publ) Reduced bit rate immersive video
CN104735464A (zh) * 2015-03-31 2015-06-24 华为技术有限公司 一种全景视频交互传输方法、服务器和客户端
US20160353146A1 (en) * 2015-05-27 2016-12-01 Google Inc. Method and apparatus to reduce spherical video bandwidth to user headset
JP7022077B2 (ja) 2016-05-25 2022-02-17 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ 空間的にタイリングされた全方位ビデオのストリーミング
US10360721B2 (en) * 2016-05-26 2019-07-23 Mediatek Inc. Method and apparatus for signaling region of interests

Also Published As

Publication number Publication date
EP3526974B1 (en) 2021-06-30
WO2018069466A1 (en) 2018-04-19
US10805614B2 (en) 2020-10-13
US20190238861A1 (en) 2019-08-01
EP3526974A1 (en) 2019-08-21
CN109792563B (zh) 2022-01-25
CN109792563A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
ES2883151T3 (es) Procesamiento de datos de vídeo esféricos sobre la base de una zona de interés
CN109600674B (zh) 非线性媒体的基于客户端的自适应流式传输
CN109565610B (zh) 处理全向视频的方法、装置以及存储介质
US10742999B2 (en) Methods and apparatus for signaling viewports and regions of interest
US11200700B2 (en) Methods and apparatus for signaling viewports and regions of interest for point cloud multimedia data
US11451838B2 (en) Method for adaptive streaming of media
EP3542530A1 (en) Suggested viewport indication for panoramic video
US11115451B2 (en) Methods and apparatus for signaling viewports and regions of interest
KR20210000331A (ko) 광시야 비디오를 인코딩하기 위한 구면 회전 기법
US20180295352A1 (en) Adapting video images for wearable devices
CN114095737B (zh) 媒体文件封装及解封装方法、装置、设备及存储介质
JP7479386B2 (ja) シーンを表す画像信号
US20230042078A1 (en) Encoding and decoding views on volumetric image data
WO2019193011A1 (en) Region description for 360 or spherical video