ES2943233T3 - Encapsulación de datos de imagen - Google Patents

Encapsulación de datos de imagen Download PDF

Info

Publication number
ES2943233T3
ES2943233T3 ES16727713T ES16727713T ES2943233T3 ES 2943233 T3 ES2943233 T3 ES 2943233T3 ES 16727713 T ES16727713 T ES 16727713T ES 16727713 T ES16727713 T ES 16727713T ES 2943233 T3 ES2943233 T3 ES 2943233T3
Authority
ES
Spain
Prior art keywords
image
item
extent
box
type
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
ES16727713T
Other languages
English (en)
Inventor
Frédéric Maze
Franck Denoual
Naël Ouedraogo
Feuvre Jean Le
Cyril Concolato
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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Application granted granted Critical
Publication of ES2943233T3 publication Critical patent/ES2943233T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • 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/46Embedding additional information in the video signal during the compression process
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • 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/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • H04N21/8153Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics comprising still images, e.g. texture, background image
    • 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/84Generation or processing of descriptive data, e.g. content descriptors
    • 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
    • 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/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • 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/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • 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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Graphics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Photoreceptors In Electrophotography (AREA)
  • Holo Graphy (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

Se proporciona un método para encapsular un flujo de bits codificado que representa una o más imágenes, comprendiendo el flujo de bits encapsulado una parte de datos y una parte de metadatos. El método comprende: - proporcionar información de elemento de imagen que identifica una parte de la parte de datos que representa una subimagen o una imagen de una sola imagen y/o un conjunto de imágenes únicas; - proporcionar información de descripción de imagen que comprende parámetros que incluyen parámetros de visualización y/u operadores de transformación relacionados con una o más imágenes y - emitir dicho flujo de bits junto con dicha información proporcionada como un archivo de datos encapsulado. Dicha información de elemento de imagen comprende una o más propiedades que incluyen al menos parte de la información de descripción de la imagen dedicada a la subimagen o imagen única considerada o conjunto de imágenes únicas, (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Encapsulación de datos de imagen
SECTOR TÉCNICO DE LA INVENCIÓN
La presente invención se refiere al almacenamiento de datos de imagen, tales como imágenes fijas, ráfagas de imágenes fijas o datos de vídeo en un recipiente multimedia con metadatos descriptivos. Dichos metadatos proporcionan generalmente un fácil acceso a los datos de imagen y a partes de los datos de imagen.
ESTADO DE LA TÉCNICA ANTERIOR
Algunos de los enfoques descritos en esta sección podrían estar adoptados, pero no son necesariamente enfoques que han sido anteriormente concebidos o adoptados. Por lo tanto, los enfoques descritos en esta sección no son necesariamente técnica anterior a las reivindicaciones de esta solicitud y no se admite que sean técnica anterior mediante su inclusión en esta sección.
El estándar HEVC define un perfil para la codificación de imágenes fijas y describe herramientas específicas para comprimir imágenes fijas individuales o ráfagas de imágenes fijas. Se ha propuesto la inclusión de una extensión del formato de archivo multimedia base ISO (ISOBMFF, ISO Base Media File Format) utilizado para dicha clase de datos de imagen, en el estándar ISO/IEC 23008, en la parte 12, bajo el nombre: “formato de archivo de imagen”. El estándar cubre dos formas de almacenamiento correspondientes a diferentes casos de uso:
- el almacenamiento de secuencias de imágenes, con temporización que se utiliza opcionalmente en el descodificador, y en el que las imágenes pueden depender de otras imágenes, y
- el almacenamiento de imágenes individuales, y de colecciones de imágenes codificadas independientemente. En el primer caso, la encapsulación es parecida a la encapsulación de las pistas de vídeo en el formato de archivo multimedia base ISO (ver el documento «Information technology - Coding of audio-visual objects - Part 12: ISO base Media File Format», ISO/IEC 14496-12:2014, quinta edición, abril de 2015) y se utilizan las mismas herramientas y conceptos, tales como las cajas 'trak' y el agrupamiento de muestras para la descripción. La caja 'trak' es una caja de formato de archivo que contiene cajas secundarias para describir una pista, es decir, una secuencia temporal de muestras relacionadas.
En el segundo caso, se utiliza un conjunto de cajas ISOBMFF, las cajas ‘meta’. Estas cajas y su jerarquía ofrecen menos herramientas de descripción que las cajas ‘pista’ y se refieren a ‘elementos de información’ o ‘elementos’, en lugar de a muestras relacionadas.
El formato de archivo de imagen se puede utilizar para visualizar localmente archivos multimedia o para la transmisión continua de presentaciones multimedia. Las imágenes fijas HEVC tienen muchas aplicaciones que plantean muchos problemas.
Las ráfagas de imágenes son una aplicación. Las ráfagas de imágenes son secuencias de imágenes fijas capturadas por una cámara y almacenadas como una única representación (muchos elementos de imagen hacen referencia a un bloque de datos). Los usuarios pueden desear realizar varios tipos de acciones sobre estas imágenes: seleccionar una como miniatura o portada, aplicar efectos sobre estas imágenes, o similares.
Por lo tanto, existe la necesidad de metadatos descriptivos para identificar una lista de imágenes con sus correspondientes bytes en el bloque de datos.
La fotografía computacional es otra aplicación. En fotografía computacional, los usuarios tienen acceso a diferentes resoluciones de la misma imagen (diferentes exposiciones, diferentes enfoques, etc.). Estas diferentes resoluciones tienen que ser almacenadas como metadatos para que puedan ser seleccionadas y el correspondiente fragmento de datos pueda ser localizado y extraído para su procesamiento (presentación, edición, transmisión o similares).
Con el aumento de la resolución de la imagen en términos de tamaño, existe la necesidad de proporcionar una descripción suficiente para que solamente algunas partes espaciales de estas imágenes grandes puedan ser fácilmente identificadas y extraídas.
Otra clase de aplicaciones es el acceso a imágenes específicas desde una secuencia de vídeo, por ejemplo, para resumen de vídeo, imágenes de prueba en datos de vigilancia de vídeo o similares.
Para dicha clase de aplicaciones existe la necesidad de metadatos de imagen que permitan un acceso fácil a imágenes clave además de a los datos de vídeo comprimidos y a los metadatos de pistas de vídeo.
Además, las cámaras profesionales han alcanzado altas resoluciones espaciales. Actualmente son comunes los vídeos o imágenes con resolución 4K2K. Incluso se están haciendo comunes vídeos o imágenes 8k4k. En paralelo, cada vez se reproduce más vídeo en dispositivos móviles y conectados con capacidades de transmisión continua de vídeo. Por lo tanto, dividir los vídeos en teselas adquiere importancia si el usuario de un dispositivo móvil quiere visualizar, o quiere enfocar partes secundarias del vídeo manteniendo, o incluso mejorando, la calidad. Por lo tanto, al utilizar teselas, el usuario puede solicitar interactivamente partes secundarias espaciales del vídeo.
Por lo tanto, existe la necesidad de describir estas partes secundarias espaciales del vídeo de manera compacta en un formato de archivo, para que sean accesibles sin otro procesamiento adicional al de simplemente analizar sintácticamente cajas de metadatos. Para imágenes correspondientes a los vídeos así descritos, es asimismo de interés para el usuario acceder a partes secundarias espaciales.
Además, usualmente los usuarios transforman o componen imágenes para crear nuevas imágenes derivadas. Tales imágenes derivadas se obtienen aplicando una o varias operaciones específicas, tales como rotación o recorte, a otras imágenes o conjunto de imágenes.
Por lo tanto, existe la necesidad de describir operaciones para aplicar a una o varias imágenes de entrada como metadatos en el formato de archivo para recuperar imágenes derivadas a partir de imágenes originales.
El estándar ISO/IEC 23008-12 abarca dos maneras de encapsular imágenes fijas en el formato de archivo, que se han analizado recientemente.
Una manera se basa en cajas de ‘pista’, y la noción de secuencia temporal de muestras relacionadas con herramientas de descripción asociadas, y otra se basa en las cajas ‘meta’, basadas en elementos de información, en lugar de en muestras, proporcionando menos herramientas de descripción, especialmente para descripción de zonas de interés y soporte de teselación.
Por lo tanto, existe la necesidad de proporcionar soporte de teselación en el nuevo formato de archivo de imagen. La utilización de teselas es normalmente conocida en la técnica anterior, especialmente en el momento de la compresión. En relación con su indexación en el formato de archivo multimedia base ISO existen descriptores de teselación en borradores para la modificación de la parte 15 del estándar ISO/IEC 14496 “Transporte de vídeo estructurado en unidades NAL en el formato de archivo multimedia base ISO”.
Sin embargo, estos descriptores dependen de cajas de ‘pista’ y herramientas de agrupamiento de muestras, y no se pueden utilizar en el formato de archivo de imagen fija cuando se utiliza el enfoque basado en ‘meta’. Sin dichos descriptores, se hace complicado seleccionar y extraer teselas a partir de una imagen codificada almacenada en este formato de archivo.
La figura 1 muestra la descripción de una imagen fija codificada con teselas en la caja ‘meta’ (100) de formato de archivo multimedia base ISO, tal como se da a conocer en la contribución MPEG m32254.
Se define un elemento de información para la imagen completa 101, además de respectivos elementos de información para cada imagen (102, 103, 104 y 105) de tesela. Dichos elementos de información se almacenan en una caja denominada 'ItemInfoBox' (iinf). La caja (106), denominada ‘ItemReferenceBox', se utiliza a partir del estándar ISO BMFF para indicar que existe una relación (107) de ‘teselas’ entre el elemento de información de la imagen completa y los cuatro elementos de información correspondientes a las imágenes (108) de tesela. Se utilizan identificadores de cada elemento de información, de manera que una caja (109), denominada 'ItemLocationBox', proporciona el intervalo o los intervalos de bytes en los datos codificados (110) que representan cada elemento de información. Otra caja "ItemReferenceBox"' (112) se utiliza para asociar metadatos EXIF (111) con el elemento de información para la imagen completa (101), y se crea un correspondiente bloque de datos (111) en la caja de datos multimedia (110). Asimismo, se crea un elemento de información (113) adicional para identificar los metadatos EXIF. Incluso si la imagen completa y sus teselas se introducen como elementos de información, no se proporciona en este caso información de teselación. Además, cuando se asocian metadatos adicionales con un elemento de información (tal como EXIF), no se crea ningún bloque de datos referenciado utilizando un ItemReferenceBox adicional.
Reutilizar información sobre teselación a partir de EXIF y reutilizar el mecanismo definido en el borrador del formato de archivo de imagen fija no posibilitaría describir una cuadrícula no regular con etiquetas EXIF existentes.
Por lo tanto, sigue existiendo la necesidad de mejoras en el formato de archivo para imágenes fijas, notablemente imágenes fijas HEVC. En particular, existe la necesidad de procedimientos para extraer una zona de interés en imágenes fijas almacenadas con este formato de archivo.
La invención reside en el contexto anterior.
CARACTERÍSTICAS DE LA INVENCIÓN
La invención se expone en el conjunto adjunto de reivindicaciones. Según un primer aspecto de la invención, se da a conocer un procedimiento de encapsulación de un flujo de bits codificado que representa una o varias imágenes, comprendiendo el procedimiento:
- proporcionar información de descripción de teselas que comprende parámetros espaciales para dividir un área de imagen en una o varias teselas;
- proporcionar información de elementos de imagen de tesela que identifica una parte del flujo de bits que representa una tesela de una imagen individual;
- proporcionar información de referencia que vincula dicho elemento de imagen de tesela a dicha información de descripción de teselas, y
- emitir dicho flujo de bits junto con dicha información proporcionada, como un archivo de datos encapsulado.
La emisión se puede realizar según estándar definido, y es legible y descodificable.
Un procedimiento, según el primer aspecto, posibilita identificar, seleccionar y extraer fácilmente teselas a partir de, por ejemplo, imágenes de resolución ultraalta (4K2K, 8K4K...), mediante analizar sintácticamente elementos de sintaxis y sin cálculo complejo.
Las herramientas de descripción de las cajas de metadatos del formato de archivo multimedia base ISO se pueden extender. En particular, esto posibilita asociar descripción de teselas con elementos de información.
Partes de la jerarquía de cajas ‘meta’ se pueden extender para proporcionar herramientas de descripción adicionales y, especialmente, para soportar acceso basado en teselas dentro de imágenes fijas.
Un procedimiento según el primer aspecto posibilita extraer fácilmente, de una imagen fija HEVC codificada, una zona de interés en base a teselas H e V c .
Las realizaciones de la invención dan a conocer soporte de descripción de teselas y acceso a teselas para imágenes fijas codificada según el estándar HEVC.
Esto posibilita preservar las características de zona de interés, disponibles para pistas de vídeo para imagen fija. En general, se pueden identificar partes de una imagen fija correspondientes a una zona de interés definida por el usuario, y extraer fácilmente para su representación o transmisión a reproductores multimedia.
Por ejemplo, dicho flujo de bits codificado encapsulado contiene, asimismo, información que identifica una parte temporal de dicho flujo de datos, correspondiente a una secuencia de vídeo.
Por lo tanto, se puede proporcionar una doble indexación sobre un mismo fragmento de datos, que proporciona las mismas facilidades de acceso al vídeo que en algunas imágenes fijas que son parte de este vídeo.
Por ejemplo, la información de descripción de teselas incluye un conjunto de parámetros espaciales para cada elemento de imagen de tesela.
Por ejemplo, la información de descripción de teselas incluye parámetros espaciales comunes a más de un elemento de imagen de tesela.
Por ejemplo, la información de descripción de teselas está integrada en el flujo de bits.
Por ejemplo, la información de descripción de teselas se proporciona como metadatos.
Por ejemplo, la información de referencia incluye un tipo de referencia, y metadatos descriptivos adicionales que incluyen dicha información de descripción de teselas.
Por ejemplo, la información de referencia incluye un tipo de referencia, y un parámetro de referencia relativo a dicha información de descripción de teselas.
El procedimiento puede comprender, además, proporcionar un elemento de metadatos para hacer referencia a dicha información de descripción de teselas en el flujo de bits.
Por ejemplo, los elementos de imagen de tesela están agrupados, y donde la información de referencia se proporciona para vincular un grupo de elementos de imagen de tesela a dicha información de descripción de teselas. Por ejemplo, todas las referencias que vinculan elementos de metadatos a otro elemento están incluidas en una única caja de referencias en el archivo de datos encapsulado.
Por ejemplo, todas las relaciones de un elemento, de cualquier tipo, están almacenadas en un único descriptor de información de elemento.
Por ejemplo, en el que dicha emisión es realizada por un módulo servidor para transmisión continua adaptativa. Por ejemplo, dicha emisión se realiza para su almacenamiento en una memoria.
Por ejemplo, dicha emisión se realiza a un módulo de pantalla para su visualización.
Por ejemplo, dicha emisión es realizada por un módulo de comunicación para su transmisión.
Por ejemplo, dicho archivo de datos encapsulado corresponde a un formato de archivo estandarizado.
Por ejemplo, dicho archivo de datos encapsulado es descodificable y reproducible.
Según un segundo aspecto de la invención, se da a conocer un procedimiento de procesamiento de un archivo de datos encapsulado que incluye un flujo de bits codificado correspondiente a una o varias imágenes, e información que incluye información de descripción de teselas que comprende parámetros espaciales para dividir un área de la imagen en una o varias teselas, comprendiendo el procedimiento:
- seleccionar una zona de interés de la imagen,
- identificar, a partir de dicha información de descripción de teselas, teselas que corresponden al área de interés seleccionada,
- seleccionar uno o varios elementos de imagen de tesela vinculados a dichas teselas identificadas, identificando cada elemento de imagen de tesela una parte del flujo de bits que representa una tesela de una imagen individual, - extraer una parte del flujo de bits identificada por el elemento o elementos de imagen de tesela seleccionados, y - emitir dicha parte del flujo de bits extraída.
Por ejemplo, en el que dicha emisión es realizada por un módulo servidor para transmisión continua adaptativa. Por ejemplo, dicha emisión se realiza para almacenamiento en una memoria.
Por ejemplo, dicha emisión se realiza a un módulo de pantalla para visualización.
Por ejemplo, dicha emisión es realizada por un módulo de comunicación para su transmisión.
Por ejemplo, dicho archivo de datos encapsulado corresponde a un formato de archivo estandarizado.
Por ejemplo, dicho archivo de datos encapsulado es descodificable y reproducible.
Según un tercer aspecto de la invención, se da a conocer un procedimiento de procesamiento de datos de imagen que representan, por lo menos, una imagen, para su encapsulación en un archivo de encapsulación, comprendiendo el procedimiento:
- obtener una subdivisión espacial de dicha, por lo menos, una imagen en una serie de partes de la imagen, - determinar, por lo menos, unos datos de identificación de parte que identifican una parte de datos dentro de dichos datos de imagen, que representan una parte de la imagen de dicha pluralidad,
- encapsular dichos datos de imagen en dicho archivo de encapsulación junto con, por lo menos:
• datos de descripción de subdivisión que representan dicha subdivisión de dicha, por lo menos, una imagen, • dichos datos de identificación de parte, y
• datos de referencia que vinculan dichos datos de descripción de subdivisión y dichos datos de identificación de parte. Por ejemplo, dichos datos de imagen representan una serie de imágenes de una secuencia de vídeo, y el procedimiento comprende, además, determinar, por lo menos, unos datos de identificación temporal que identifican una parte de datos dentro de dichos datos de imagen, que representan una parte temporal de dicha secuencia de vídeo, y dichos datos de imagen son encapsulados junto con dichos datos de identificación temporal.
Por ejemplo, se determinan, respectivamente, una serie de datos de identificación de parte que representan una misma parte de imagen de las imágenes de dicha parte temporal de dicha secuencia de vídeo.
Por ejemplo, por lo menos, dichos datos de descripción de subdivisión son encapsulados como metadatos en los datos de imagen.
Por ejemplo, dicha subdivisión espacial se integra en un flujo de bits que contiene dichos datos de imagen.

Por ejemplo, se determinan respectivos datos de identificación de parte para cada parte de imagen.
Por ejemplo, se determinan datos de identificación de parte comunes para una serie de partes de imagen.
El procedimiento puede comprender, además, emitir dicho archivo de encapsulación a un flujo de bits para transmisión continua adaptativa mediante un dispositivo servidor.
El procedimiento puede comprender, además, emitir dicho archivo de encapsulación a un flujo de bits para su transmisión a un dispositivo de pantalla para visualizar dichos datos de imagen.
El procedimiento puede comprender, además, emitir dicho archivo de encapsulación a un flujo de bits para su transmisión a un dispositivo cliente.
El procedimiento puede comprender, además, almacenar dicho archivo de encapsulación en un dispositivo de almacenamiento.
Por ejemplo, los datos de referencia incluyen un tipo de referencia, y metadatos descriptivos adicionales incluyen dichos datos de descripción de subdivisión.
Por ejemplo, los datos de referencia incluyen un tipo de referencia y un parámetro de referencia relativo a dichos datos de descripción de subdivisión.
Por ejemplo, se hace referencia a dichos datos de descripción de subdivisión en un elemento de metadatos.
Por ejemplo, se agrupan los datos de identificación de parte, y donde los datos de referencia vinculan un grupo de datos de identificación de parte a dichos datos de identificación de parte.
Por ejemplo, dicho archivo encapsulado comprende una sola caja de referencias que contiene todos los datos de referencia para los datos de imagen.
Por ejemplo, dicho archivo encapsulado comprende una descripción que contiene una representación de las relaciones entre dichos datos de descripción de subdivisión, datos de identificación de parte y datos de referencia. Según un cuarto aspecto de la invención, se da a conocer un procedimiento de procesamiento de un archivo de encapsulación, que comprende:
- datos de imagen que representan, por lo menos, una imagen,
- datos de descripción de subdivisión que representan una subdivisión espacial de dicha, por lo menos, una imagen, en una serie de partes de la imagen,
- por lo menos, unos datos de identificación de parte que identifican una parte de datos dentro de dichos datos de imagen, que representan una parte de la imagen de dicha pluralidad, y
- datos de referencia que vinculan dichos datos de descripción de subdivisión y dicha información de partes, comprendiendo el procedimiento:
- determinar una zona de interés en dicha, por lo menos, una imagen,
- determinar, en base a dichos datos de descripción de subdivisión, por lo menos, una parte de imagen que pertenece a dicha zona de interés,
- acceder, en base a dichos datos de referencia, por lo menos, a unos datos de identificación de parte que identifican una parte de datos dentro de dichos datos de imagen, que representan dicha, por lo menos, una parte de imagen que pertenece a dicha zona de interés, y
- extraer dicha parte de datos dentro de dichos datos de imagen.
Por ejemplo, dichos datos de imagen comprenden una serie de imágenes de una secuencia de vídeo, y dicho archivo de encapsulación comprende, además, por lo menos, unos datos de identificación temporal que identifican una parte de datos dentro de dichos datos de imagen, que representan una parte temporal de dicha secuencia de vídeo, determinándose la zona de interés para las imágenes de dicha parte temporal de dicha secuencia de vídeo, y se extraen las partes de datos correspondientes a dicha zona de interés en una serie de imágenes de dicha parte temporal de dicha secuencia de vídeo.
Por ejemplo, una serie de datos de identificación de parte representan, respectivamente, una misma parte de imagen de las imágenes de dicha parte temporal de dicha secuencia de vídeo.
Por ejemplo, por lo menos, dichos datos de descripción de subdivisión son encapsulados como metadatos en los datos de imagen.
Por ejemplo, se determinan respectivos datos de identificación de parte para cada parte de imagen.
Por ejemplo, se determinan datos de identificación de parte comunes para una serie de partes de imagen.
El procedimiento puede comprender, además, recibir dicho archivo de encapsulación como un flujo de bits transmitido continuamente de forma adaptativa por un dispositivo servidor.
El procedimiento puede comprender, además, visualizar dicha zona de interés.
Por ejemplo, los datos de referencia incluyen un tipo de referencia, y metadatos descriptivos adicionales que incluyen dichos datos de descripción de subdivisión.
Por ejemplo, los datos de referencia incluyen un tipo de referencia y un parámetro de referencia relativo a dichos datos de descripción de subdivisión.
Por ejemplo, se hace referencia a dichos datos de descripción de subdivisión en un elemento de metadatos.
Por ejemplo, se agrupan los datos de identificación de parte, y donde los datos de referencia vinculan un grupo de datos de identificación de parte a dichos datos de identificación de parte.
Por ejemplo, dicho archivo encapsulado comprende una sola caja de referencias que contiene todos los datos de referencia para los datos de imagen.
Por ejemplo, dicho archivo encapsulado comprende una descripción que contiene una representación de las relaciones entre dichos datos de descripción de subdivisión, datos de identificación de parte y datos de referencia. Según un quinto aspecto de la invención, se da a conocer un dispositivo configurado para implementar un procedimiento según el primer aspecto.
El dispositivo puede comprender:
- una unidad de procesamiento, configurada para proporcionar información de descripción de teselas que comprende parámetros espaciales para dividir un área de imagen en una o varias teselas; proporcionar información de elementos de imagen de tesela que identifica una parte del flujo de bits que representa una tesela de una imagen individual; proporcionar información de referencia que vincula dicho elemento de imagen de tesela a dicha información de descripción de teselas, y
- una unidad de comunicación, configurada para emitir dicho flujo de bits junto con dicha información proporcionada, como un archivo de datos encapsulado.
Según un sexto aspecto de la invención, se da a conocer un dispositivo configurado para implementar un procedimiento según el segundo aspecto.
El dispositivo puede estar configurado para procesar un archivo de datos encapsulado que incluye un flujo de bits codificado correspondiente a una o varias imágenes, e información que incluye información de descripción de teselas que comprende parámetros espaciales para dividir un área de la imagen en una o varias teselas. El dispositivo puede comprender, asimismo:
- una unidad de procesamiento, configurada para seleccionar una zona de interés de la imagen, identificar, a partir de dicha información de descripción de teselas, teselas que corresponden al área de interés seleccionada, seleccionar uno o varios elementos de imagen de tesela vinculados a dichas teselas identificadas, identificando cada elemento de imagen de tesela una parte del flujo de bits que representa una tesela de una imagen individual, extraer una parte del flujo de bits identificada por el elemento o elementos de imagen de tesela seleccionados, y
- una unidad de comunicación, configurada para emitir dicha parte de flujo de bits extraída.
Según un séptimo aspecto de la invención, se da a conocer un dispositivo configurado para implementar un procedimiento según el tercer aspecto.
El dispositivo puede estar configurado para procesar datos de imagen que representan, por lo menos, una imagen para encapsulación en un archivo de encapsulación, y el dispositivo puede comprender una unidad de procesamiento configurada para obtener una subdivisión espacial de dicha, por lo menos, una imagen en una serie de partes de la imagen, determinar, por lo menos, unos datos de identificación de parte que identifican una parte de datos dentro de dichos datos de imagen, que representan una parte de imagen de dicha pluralidad, encapsular dichos datos de imagen en dicho archivo de encapsulación junto con, por lo menos:
- datos de descripción de subdivisión que representan dicha subdivisión de dicha, por lo menos, una imagen, - dichos datos de identificación de parte, y
- datos de referencia que vinculan dichos datos de descripción de subdivisión y dichos datos de identificación de parte. Según un octavo aspecto de la invención, se da a conocer un dispositivo configurado para implementar un procedimiento según el cuarto aspecto.
El dispositivo puede estar configurado para procesar un archivo de encapsulación que comprende:
- datos de imagen que representan, por lo menos, una imagen,
- datos de descripción de subdivisión que representan una subdivisión espacial de dicha, por lo menos, una imagen, en una serie de partes de la imagen,
- por lo menos, unos datos de identificación de parte que identifican una parte de datos dentro de dichos datos de imagen, que representan una parte de la imagen de dicha pluralidad, y
- datos de referencia que vinculan dichos datos de descripción de subdivisión y dicha información de partes.
El dispositivo puede comprender, asimismo, una unidad de procesamiento configurada para determinar una zona de interés en dicha, por lo menos, una imagen, determinar, en base a dichos datos de descripción de subdivisión, por lo menos, una parte de imagen perteneciente a dicha zona de interés, acceder, en base a dichos datos de referencia, por lo menos, a unos datos de identificación de parte que identifican una parte de datos dentro de dichos datos de imagen, que representan dicha, por lo menos, una parte de imagen perteneciente a dicha zona de interés, y extraer dicha parte de datos dentro de dichos datos de imagen.
De acuerdo con un noveno aspecto de la invención, se da a conocer un sistema que comprende:
- un primer dispositivo, según el quinto o el séptimo aspecto, y
- un segundo dispositivo, según el sexto o el octavo aspecto, para procesar archivos procedentes de dicho primer dispositivo.
Según un décimo aspecto de la invención, se dan a conocer programas informáticos y productos de programa informático, que comprenden instrucciones para implementar procedimientos, según los aspectos primero, segundo, tercero y/o cuarto de la invención, cuando son cargados y ejecutados en medios informáticos de un aparato programable.
Según un undécimo aspecto de la invención, se da a conocer un procedimiento de encapsulación de un flujo de bits codificado que representa una o varias imágenes, comprendiendo el flujo de bits encapsulado una parte de datos y una parte de metadatos. El procedimiento comprende:
- proporcionar información de elementos de imagen que identifica una parte de la parte de datos que representa una imagen secundaria o una imagen de una imagen individual;
- proporcionar información de descripción de imágenes que comprende parámetros que incluyen parámetros de visualización y/u operadores de transformación relacionados con una o varias imágenes, y
- emitir dicho flujo de bits junto con dicha información proporcionada, como un archivo de datos encapsulado;
- donde la información de descripción de imágenes se almacena en la parte de metadatos.
En una realización, cada parámetro comprendido en la información de descripción de imágenes está asociado con datos adicionales, que comprenden:
- información de tipo, y/o
- un identificador, utilizado para vincular una información de elementos de imagen a dicho parámetro.
En una realización, la parte de metadatos está incluida en una caja de datos ‘meta’ de ISOBMFF.
En una realización, los datos adicionales son una cabecera.
En una realización, los datos adicionales son un elemento virtual.
En otra realización, cada uno de los operadores de transformación comprendido en la información de descripción de imágenes está asociado con datos adicionales que comprenden un identificador utilizado para vincular un elemento transformado, a dichos operadores de transformación.
En una realización, una caja almacenada en la parte de metadatos incluye, por lo menos, un operador de transformación.
En una realización, la parte de datos del flujo de bits encapsulado comprende el elemento transformado, asociado a uno o varios operadores de transformación, comprendiendo, además, la parte de metadatos:
- información para identificar la imagen original sobre la que se aplica el operador de transformación, e - información para localizar el elemento transformado, en la parte de datos.
En una realización, el elemento transformado incluye, por lo menos, un índice de transformación, índice que permite identificar uno de los operadores de transformación en la parte de metadatos.
Según un decimosegundo aspecto de la invención, se da a conocer un procedimiento de procesamiento de un archivo de datos encapsulado que comprende una parte de datos y una parte de metadatos, que incluye un flujo de bits codificado correspondiente a una o varias imágenes en la parte de datos, e información en la parte de metadatos que incluye información de descripción de imágenes o de imágenes secundarias que comprende parámetros que incluyen parámetros de visualización y/u operadores de transformación relacionados con una o varias imágenes o imágenes secundarias. El procedimiento comprende:
- seleccionar una imagen o una imagen secundaria de interés,
- identificar, a partir de dicha información de descripción de imágenes o de imágenes secundarias referenciada, parámetros de visualización y/u operadores de transformación asociados, a partir de la parte de metadatos;
- en caso de que se hayan identificado operadores de transformación, aplicar la transformación a la imagen o imagen secundaria, y visualizar dicha imagen o imagen secundaria finalmente transformada, según dichos parámetros de visualización.
En una realización, el procedimiento comprende, además, antes de la etapa de identificación, recuperar datos adicionales comprendidos en dichos parámetros, comprendiendo dichos datos adicionales:
- información de tipo, y/o
- un identificador utilizado para vincular una información de elementos de imagen o de imagen secundaria a dicho parámetro.
En una realización, la parte de metadatos está incluida en una caja de datos ‘meta’ de ISOBMFF.
En una realización, los datos adicionales son una cabecera.
En una realización, los datos adicionales son un elemento virtual.
En otra realización, cada uno de los operadores de transformación comprendido en la información de descripción de imágenes está asociado con datos adicionales que comprenden un identificador utilizado para vincular un elemento transformado a dichos operadores de transformación.
En una realización, una caja almacenada en la parte de metadatos incluye, por lo menos, un operador de transformación.
En una realización, la parte de datos del flujo de bits encapsulado comprende el elemento transformado, asociado a uno o varios operadores de transformación, comprendiendo, además, la parte de metadatos:
- información para identificar la imagen original sobre la que se aplica el operador de transformación, e
- información para localizar el elemento transformado en la parte de datos.
En una realización, el elemento transformado incluye, por lo menos, un índice de transformación, índice que permite identificar uno de los operadores de transformación en la parte de metadatos.
Según un decimotercer aspecto de la invención, se da a conocer un dispositivo servidor de encapsulación de un flujo de bits codificado que representa una o varias imágenes, configurado para implementar un procedimiento de encapsulación, según el undécimo aspecto de la invención.
Según un decimocuarto aspecto de la invención, se da a conocer un dispositivo cliente de encapsulación de un flujo de bits codificado que representa una o varias imágenes, configurado para implementar un procedimiento de procesamiento, según el duodécimo aspecto de la invención.
Según un decimoquinto aspecto de la invención, se dan a conocer programas informáticos y productos de programa informático, que comprenden instrucciones para implementar procedimientos, según el undécimo y el duodécimo aspectos de la invención, cuando son cargados y ejecutados en medios informáticos de un aparato programable.
Según un decimosexto aspecto de la invención, se da a conocer un procedimiento de encapsulación de un flujo de bits codificado que representa una o varias imágenes, comprendiendo el flujo de bits encapsulado una parte de datos y una parte de metadatos, comprendiendo el procedimiento:
- proporcionar información de elementos de imagen que identifica una parte de la parte de datos que representa una imagen secundaria o una imagen de una imagen individual y/o un conjunto de imágenes individuales;
- proporcionar información de descripción de imágenes que comprende parámetros que incluyen parámetros de visualización y/u operadores de transformación relacionados con una o varias imágenes, y
- emitir dicho flujo de bits junto con dicha información proporcionada, como un archivo de datos encapsulado.
Dicha información de elementos de imagen comprende una o varias propiedades que incluyen, por lo menos, parte de la información de descripción de imágenes dedicada a la imagen secundaria o imagen individual o conjunto de imágenes individuales en consideración, definiéndose dicha información de descripción de imágenes en una o varias cajas.
Este aspecto de la invención permite proporcionar una separación clara de datos y metadatos para un mecanismo de referencia eficiente.
En una realización, la información de elementos de imagen es una caja y cada propiedad de la información de elementos de imagen es una caja, estando organizadas las cajas de propiedades para formar una tabla de cajas. En una realización, cada propiedad se aplica a la imagen secundaria o imagen y/o al conjunto de imágenes individuales, siguiendo el orden de aparición o la caja correspondiente en la tabla de cajas.
En una realización, la imagen secundaria o la imagen individual y/o el conjunto de imágenes individuales están relacionadas con una secuencia de vídeo, comprendiendo una de las propiedades de información de elementos de imagen uno o varios parámetros de inicialización para hacer referencia a información de inicialización de dicha secuencia de vídeo.
En una realización, parte de la información de descripción de imágenes compartida entre varias imágenes secundarias o imágenes individuales y/o conjunto de imágenes individuales, está definida en una caja compartida dedicada, siendo recuperable cada información de descripción de imágenes por medio de una estructura para vincular la información de elementos de imagen considerada a, por lo menos, una información de descripción de imágenes, comprendiendo dicha estructura de vinculación:
- un primer identificador por cada información de elementos de imagen considerada, estando definido dicho primer identificador como una propiedad de la información de elementos de imagen y haciendo referencia a un segundo identificador que tiene el mismo valor en la caja compartida dedicada,
- uno o varios segundos identificadores incluidos en la caja compartida dedicada, haciendo referencia cada segundo identificador a una información de descripción de imágenes.
En una realización, parte de la información de descripción de imágenes compartida entre varias imágenes secundarias o imágenes individuales y/o un conjunto de imágenes individuales, está definida en dos cajas compartidas dedicadas, estando relacionada una caja compartida con los parámetros de visualización y estando relacionada la otra caja compartida con los operadores de transformación, siendo recuperable cada información de descripción de imágenes por medio de una estructura para vincular la información de elementos de imagen a, por lo menos, una información de descripción de imágenes.
En una realización, dicha estructura de vinculación comprende dos parámetros de tipo de referencia que vinculan la información de elementos de imagen y, por lo menos, una información de descripción de imágenes, siendo específico cada parámetro de tipo de referencia para una de las cajas compartidas dedicadas.
En una realización, dicha estructura de vinculación comprende:
- un primer y unos segundos identificadores por cada información de elementos de imagen considerada, estando definido dicho primer identificador como una propiedad de la información de elementos de imagen y haciendo referencia a unos terceros identificadores en la caja compartida dedicada relacionada con los parámetros de visualización, estando definidos dichos segundos identificadores como una propiedad de la información de elementos de imagen y haciendo referencia a unos cuartos identificadores en la caja compartida dedicada relacionada con los operadores de transformación.
- uno o varios terceros y cuartos identificadores incluidos, respectivamente, en las cajas compartidas dedicadas relacionadas con los parámetros de visualización y los operadores de transformación, haciendo referencia, respectivamente, cada uno de los terceros y cuartos identificadores a un parámetro de visualización y un operador de transformación.
En una realización, uno de los parámetros de visualización es una cuadrícula para definir un conjunto de imágenes individuales correspondientes a partes de una imagen individual.
En una realización, las imágenes del conjunto de imágenes individuales están relacionadas con una misma imagen individual.
Según un decimoséptimo aspecto de la invención, se da a conocer un procedimiento de obtención de un flujo de bits encapsulado que representa una o varias imágenes, comprendiendo el flujo de bits encapsulado una parte de datos codificada y una parte de metadatos, comprendiendo el procedimiento:
- obtener información de elementos de imagen que identifica una parte de la parte de datos que representa una imagen secundaria o una imagen de una imagen individual y/o un conjunto de imágenes individuales;
- obtener información de descripción de imágenes que comprende parámetros que incluyen parámetros de visualización y/u operadores de transformación relacionados con una o varias imágenes, y
- extraer dicho flujo de bits junto con dicha información determinada, como un archivo de datos encapsulado.
Dicha información de elementos de imagen comprende una o varias propiedades que incluyen, por lo menos, parte de la información de descripción de imágenes dedicada a la imagen secundaria o imagen individual o conjunto de imágenes individuales en consideración, definiéndose dicha información de descripción de imágenes en una o varias cajas.
En una realización, la información de elementos de imagen es una caja y cada propiedad de la información de elementos de imagen es una caja, estando organizadas las cajas de propiedades para formar una tabla de cajas. En una realización, cada propiedad se aplica a la imagen secundaria o imagen y/o al conjunto de imágenes individuales, siguiendo el orden de aparición o la caja correspondiente en la tabla de cajas.
En una realización, la imagen secundaria o la imagen individual y/o el conjunto de imágenes individuales están relacionadas con una secuencia de vídeo, comprendiendo una de las propiedades de información de elementos de imagen uno o varios parámetros de inicialización para hacer referencia a información de inicialización de dicha secuencia de vídeo.
En una realización, parte de la información de descripción de imágenes compartida entre varias imágenes secundarias o imágenes individuales y/o conjunto de imágenes individuales, está definida en una caja compartida dedicada, siendo recuperable cada información de descripción de imágenes por medio de una estructura para vincular la información de elementos de imagen considerada a, por lo menos, una información de descripción de imágenes, comprendiendo dicha estructura de vinculación:
- un primer identificador por cada información de elementos de imagen considerada, estando definido dicho primer identificador como una propiedad de la información de elementos de imagen y haciendo referencia a un segundo identificador que tiene el mismo valor en la caja compartida dedicada,
- uno o varios segundos identificadores incluidos en la caja compartida dedicada, haciendo referencia cada segundo identificador a una información de descripción de imágenes.
En una realización, parte de la información de descripción de imágenes compartida entre varias imágenes secundarias o imágenes individuales y/o un conjunto de imágenes individuales, está definida en dos cajas compartidas dedicadas, estando relacionada una caja compartida con los parámetros de visualización y estando relacionada la otra caja compartida con los operadores de transformación, siendo recuperable cada información de descripción de imágenes por medio de una estructura para vincular la información de elementos de imagen a, por lo menos, una información de descripción de imágenes.
En una realización, dicha estructura de vinculación comprende dos parámetros de tipo de referencia que vinculan la información de elementos de imagen y, por lo menos, una información de descripción de imágenes, siendo específico cada parámetro de tipo de referencia para una de las cajas compartidas dedicadas.
En una realización, dicha estructura de vinculación comprende:
- un primer y unos segundos identificadores por cada información de elementos de imagen considerada, estando definido dicho primer identificador como una propiedad de la información de elementos de imagen y haciendo referencia a unos terceros identificadores en la caja compartida dedicada relacionada con los parámetros de visualización, estando definidos dichos segundos identificadores como una propiedad de la información de elementos de imagen y haciendo referencia a unos cuartos identificadores en la caja compartida dedicada relacionada con los operadores de transformación,
- uno o varios terceros y cuartos identificadores incluidos, respectivamente, en las cajas compartidas dedicadas relacionadas con los parámetros de visualización y los operadores de transformación, haciendo referencia, respectivamente, cada uno de los terceros y cuartos identificadores a un parámetro de visualización y un operador de transformación.
En una realización, uno de los parámetros de visualización es una cuadrícula para definir un conjunto de imágenes individuales correspondientes a partes de una imagen individual.
En una realización, las imágenes del conjunto de imágenes individuales están relacionadas con una misma imagen individual.
Según un decimoctavo aspecto de la invención, se da a conocer un dispositivo para encapsular un flujo de bits codificado que representa una o varias imágenes, configurado para implementar un procedimiento, según el decimosexto aspecto de la invención.
Según un decimonoveno aspecto de la invención, se da a conocer un dispositivo para procesar un flujo de bits encapsulado que representa una o varias imágenes, configurado para implementar un procedimiento según el decimoséptimo aspecto de la invención.
Según un vigésimo aspecto de la invención, se da a conocer un sistema que comprende:
- un primer dispositivo, según el decimoctavo aspecto de la invención, y
- un segundo dispositivo, según el decimonoveno aspecto de la invención, para procesar archivos procedentes de dicho primer dispositivo.
Según un vigésimo primer aspecto de la invención, se da a conocer un producto de programa informático que comprende instrucciones para implementar un procedimiento, según el decimosexto o el decimoséptimo aspecto de la invención, cuando el programa es cargado y ejecutado por un aparato programable.
Según un vigésimo segundo aspecto de la invención, se da a conocer un medio no transitorio de almacenamiento de información legible por un ordenador o un microprocesador, que almacena instrucciones de un programa informático, para implementar un procedimiento, según el decimosexto o el decimoséptimo aspecto de la invención, cuando el programa es cargado y ejecutado por el ordenador o microprocesador.
Según un vigésimo tercer aspecto de la invención, se da a conocer un procedimiento de encapsulación de un flujo de bits codificado que representa una o varias imágenes, comprendiendo el flujo de bits encapsulado una parte de datos y una parte de metadatos. El procedimiento comprende:
- proporcionar información de elementos de imagen que identifica una parte de la parte de datos que representa una imagen secundaria o una imagen de una imagen individual y/o de un conjunto de imágenes individuales;
- proporcionar información de descripción de imágenes que comprende parámetros que incluyen parámetros de visualización y/u operadores de transformación relacionados con una o varias imágenes, y
- emitir dicho flujo de bits junto con dicha información proporcionada, como un archivo de datos encapsulado.
La información de descripción de imágenes se define en una o dos cajas dedicadas, siendo recuperable cada información de descripción de imágenes por medio de una estructura para vincular la información de elementos de imagen a, por lo menos, una información de descripción de imágenes.
En una realización, la información de descripción de imágenes se define en una caja dedicada, comprendiendo dicha estructura de vinculación un parámetro de tipo de referencia que vincula la información de elementos de imagen y, por lo menos, una información de descripción de imágenes.
En una realización, la información de descripción de imágenes se define en una o dos cajas dedicadas, comprendiendo dicha estructura de vinculación uno o dos conjuntos de índices para vincular la información de elementos de imagen y, por lo menos, una información de descripción de imágenes, estando asociado cada conjunto a una de las cajas dedicadas.
En una realización, la información de descripción de imágenes se define en dos cajas dedicadas, estando relacionada una caja con los parámetros de visualización y estando relacionada la otra caja con los operadores de transformación.
En una realización, la información de descripción de imágenes se define en dos cajas dedicadas, comprendiendo dicha estructura de vinculación dos parámetros de tipo de referencia asociados, respectivamente, a cada una de las dos cajas dedicadas, vinculando cada parámetro de tipo de referencia la información de elementos de imagen y, por lo menos, una información de descripción de imágenes en la caja dedicada asociada.
Según un vigésimo cuarto aspecto de la invención, se da a conocer un procedimiento de obtención de un flujo de bits encapsulado que representa una o varias imágenes, comprendiendo el flujo de bits encapsulado una parte de datos codificada y una parte de metadatos, comprendiendo el procedimiento:
- obtener información de elementos de imagen que identifica una parte de la parte de datos que representa una imagen secundaria o una imagen de una imagen individual y/o de un conjunto de imágenes individuales;
- obtener información de descripción de imágenes que comprende parámetros que incluyen parámetros de visualización y/u operadores de transformación relacionados con una o varias imágenes, y
- extraer dicho flujo de bits junto con dicha información determinada, como un archivo de datos encapsulado, - en el que la información de descripción de imágenes se define en una o dos cajas dedicadas, siendo recuperable cada información de descripción de imágenes por medio de una estructura para vincular la información de elementos de imagen a, por lo menos, una información de descripción de imágenes.
En una realización, la información de descripción de imágenes se define en una caja dedicada, comprendiendo dicha estructura de vinculación un parámetro de tipo de referencia que vincula la información de elementos de imagen y, por lo menos, una información de descripción de imágenes.
En una realización, la información de descripción de imágenes se define en una o dos cajas dedicadas, comprendiendo dicha estructura de vinculación uno o dos conjuntos de índices para vincular la información de elementos de imagen y, por lo menos, una información de descripción de imágenes, estando asociado cada conjunto a una de las cajas dedicadas.
En una realización, la información de descripción de imágenes se define en dos cajas dedicadas, estando relacionada una caja con los parámetros de visualización y estando relacionada la otra caja con los operadores de transformación.
En una realización, la información de descripción de imágenes se define en dos cajas dedicadas, comprendiendo dicha estructura de vinculación dos parámetros de tipo de referencia asociados, respectivamente, a cada una de las dos cajas dedicadas, vinculando cada parámetro de tipo de referencia la información de elementos de imagen y, por lo menos, una información de descripción de imágenes en la caja dedicada asociada.
Según un vigésimo quinto aspecto de la invención, se da a conocer un dispositivo para encapsular un flujo de bits codificado que representa una o varias imágenes, configurado para implementar un procedimiento, según el vigésimo tercer aspecto de la invención.
Según un vigésimo sexto aspecto de la invención, se da a conocer un dispositivo para procesar un flujo de bits encapsulado que representa una o varias imágenes, configurado para implementar un procedimiento, según el vigésimo cuarto aspecto de la invención.
Según un vigésimo séptimo aspecto de la invención, se da a conocer un sistema que comprende:
- un primer dispositivo, según el vigésimo quinto aspecto de la invención, y
- un segundo dispositivo, según el vigésimo sexto aspecto de la invención, para procesar archivos procedentes de dicho primer dispositivo.
Según un vigésimo octavo aspecto de la invención, se da a conocer un producto de programa informático que comprende instrucciones para implementar un procedimiento, según el vigésimo tercer o el vigésimo cuarto aspectos de la invención, cuando el programa es cargado y ejecutado por un aparato programable.
Según un vigésimo octavo aspecto de la invención, se da a conocer un medio no transitorio de almacenamiento de información, legible por un ordenador o un microprocesador, que almacena instrucciones de un programa informático, para implementar un procedimiento, según el vigésimo tercer o vigésimo cuarto aspectos de la invención, cuando el programa es cargado y ejecutado por el ordenador o microprocesador.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Otras características y ventajas de la invención resultarán evidentes a partir de la siguiente descripción de realizaciones no limitativas a modo de ejemplo, haciendo referencia a los dibujos adjuntos, en los que, además de la figura 1:
- la figura 2 muestra un ejemplo de un vídeo teselado;
- la figura 3 muestra diversas configuraciones de teselas/sectores en HEVC;
- la figura 4 muestra la encapsulación de teselas, según el formato de archivo multimedia base ISO con cajas de ‘pista’; - la figura 5 muestra los metadatos estándar para describir elementos de información en cajas ‘meta’ de ISOBMFF; - la figura 6 muestra una extensión, a modo de ejemplo, de la descripción de elemento de información;
- la figura 7 muestra los mecanismos de referencia entre elementos de información;
- la figura 8 muestra un contexto de implementación de realizaciones de la invención;
- la figura 9 es un diagrama de bloques esquemático de un dispositivo informático para la implementación de una o varias realizaciones de la invención.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
En lo que sigue se describen realizaciones de la invención.
Para comprender mejor el contexto técnico, se explica la teselación de vídeo haciendo referencia a la figura 2, que muestra un vídeo (200) que tiene cuadros temporales consecutivos. Cada cuadro (201) está dividido en 8 partes (en este caso, partes rectangulares), denominadas “teselas” T1 a T8. El número y la forma de las teselas pueden ser diferentes. En lo que sigue, se considera que la teselación es la misma cualquiera que sea el índice del cuadro de vídeo.
El resultado de esta teselación son 8 vídeos secundarios independientes (202). Estos vídeos secundarios representan una partición de todo el vídeo global. Cada vídeo secundario independiente se puede codificar como un flujo de bits independiente, según los estándares AVC o HEVC, por ejemplo. El vídeo secundario puede, asimismo, ser parte de un solo flujo de bits de vídeo, tal como, por ejemplo, teselas del estándar HEVC o sectores del estándar AVC.
El estándar HEVC define una diferente subdivisión espacial de imágenes: teselas, sectores y segmentos de sector. Estas diferentes subdivisiones (o particiones) han sido introducidas con diferentes propósitos: los sectores están relacionados con aspectos de transmisión continua mientras que las teselas y los segmentos de sector se han definido para procesamiento en paralelo.
Una tesela define una zona rectangular de una imagen que contiene un número entero de unidades de árbol de codificación (CTU, Coding Tree Units). La figura 3 muestra la teselación de una imagen (300) definida por límites de fila y de columna (301,302). Esto hace de las teselas buenas candidatas para la descripción de zonas de interés, en términos de posición y tamaño. Sin embargo, la organización del flujo de bits del estándar HEVC en términos de sintaxis y su encapsulación en unidades de capa abstracta de red (NAL, Network Abstract Layer) se basa, más bien, en sectores (tal como en el estándar AVC).
Según el estándar HEVC, un sector es un conjunto de segmentos de sector, siendo, por lo menos, el primer segmento de sector un segmento de sector independiente y siendo los otros, si los hay, segmentos de sector dependientes. Un segmento de sector contiene un número entero de CTU consecutivas (en el orden de barrido por tramas). Este no tiene necesariamente una forma rectangular (por lo tanto, es menos apropiado que las teselas para la representación de zonas de interés). Un segmento de sector se codifica en el flujo de bits HEVC como una cabecera denominada "slice_segment_header", seguida por datos denominados "slice_segment_data". Los segmentos de sector independientes y los segmentos de sector dependientes difieren por su cabecera: los segmentos de sector dependientes tienen una cabecera más corta debido a que reutilizan información de la cabecera de los segmentos de sector independientes. Los segmentos de sector independientes y dependientes contienen ambos una lista de puntos de entrada en el flujo de bits: ya sea para teselas o para puntos de sincronización de descodificación entrópica.
La figura 3 muestra diferentes configuraciones de imágenes 310 y 320 de sector, segmentos de sector y teselas. Estas configuraciones difieren de la configuración de imagen 300 en que una tesela tiene un sector (que contiene solamente un segmento de sector independiente). La imagen 310 está dividida en dos teselas verticales (311, 312) y un sector (con 5 segmentos de sector). La imagen 320 está dividida en dos teselas (321, 322), teniendo la tesela izquierda 321 dos sectores (cada uno con dos segmentos de sector), teniendo la tesela derecha 322 un sector (con dos segmentos de sector). El estándar HEVC define reglas de organización entre teselas y segmentos de sector, que se pueden resumir como sigue (se tiene que cumplir una o ambas condiciones):
- todas las CTU en un segmento de sector pertenecen a una misma tesela, y
- todas las CTU en una tesela pertenecen al mismo segmento de sector.
Para tener soporte y transporte de zonas de interés coincidentes, es preferente la configuración 300, en la que una tesela contiene un sector con un segmento independiente. Sin embargo, la solución de encapsulación funcionaría con las otras configuraciones 310 o 320.
Aunque la tesela es el soporte apropiado para zonas de interés, el segmento de sector es la entidad que se pondrá realmente en unidades NAL para transporte sobre la red y se agregará para formar una unidad de acceso (muestra o imagen codificada a nivel de formato de archivo). Según el estándar HEVC, el tipo de unidad NAL se especifica en la cabecera de unidad NAL. Para unidades NAL de tipo “segmento de sector codificado”, la slice_segment_header indica, por medio del elemento de sintaxis "slice_segment_address", la dirección del primer bloque de árbol de codificación en el segmento de sector. La información de teselación se proporciona en una unidad NAL de PPS (Picture Parameter Set, conjunto de parámetros de imagen). La relación entre un segmento de sector y una tesela puede, entonces, deducirse de estos parámetros.
Por definición, en los límites de las teselas, se restablecen las predicciones espaciales. Sin embargo, nada impide que una tesela utilice predictores temporales de una tesela diferente en el cuadro o cuadros de referencia. Para construir teselas independientes, durante la codificación, los vectores de movimiento para las unidades de predicción en el interior de una tesela están limitados a permanecer en la tesela localizada conjuntamente en el cuadro o cuadros de referencia. Además, los filtros en bucle (desbloqueo y SAO) tienen que ser desactivados en los límites de las teselas para que no se introduzca propagación de errores cuando se descodifica solamente una tesela. Este control en los filtros en bucle está ya disponible en el estándar HEVC y se ajusta en cabeceras de segmento de sector con el indicador denominado "loop_filter_across_tiles_enabled_flag". Estableciendo explícitamente a 0 este indicador, los píxeles en los límites de las teselas no dependen de los píxeles que quedan sobre el límite de las teselas vecinas. Cuando se cumplen las dos condiciones sobre vectores de movimiento y sobre filtros en bucle, se dice que las teselas son “descodificables independientemente” o “independientes”.
Cuando una secuencia de vídeo se codifica como un conjunto de teselas independientes, se puede descodificar utilizando una descodificación basada en teselas, de un cuadro a otro, sin riesgo de perder datos de referencia o de propagación de errores de reconstrucción. Esta configuración posibilita reconstruir solamente una parte espacial del vídeo original que corresponde, por ejemplo, a una zona de interés.
En lo que sigue, se consideran teselas independientes.
Haciendo referencia a la figura 4, se describe la encapsulación de teselas en el formato de archivo ISOBMFF. Por ejemplo, cada tesela es encapsulada en una pista dedicada. La información de configuración e inicialización, común a todas las teselas, es encapsulada en una pista específica denominada, por ejemplo, la “pista base de teselas”. Por lo tanto, el vídeo completo se encapsula como una composición de todas estas pistas, es decir, la pista base de teselas y el conjunto de pistas de tesela.
La figura 4 muestra una encapsulación a modo de ejemplo. Una manera de encapsular vídeo teselado, según el estándar ISOBMFF, es dividir cada tesela en una pista dedicada, encapsular la información de configuración e inicialización, común a todas las teselas, en una pista específica, denominada, por ejemplo, la “pista base de teselas” y encapsular el vídeo completo como una composición de todas estas pistas: la pista base de teselas más un conjunto de pistas de tesela. De este modo, la encapsulación se denomina “encapsulación de teselas en múltiples pistas”. En la figura 4 se proporciona un ejemplo de encapsulación de teselas en múltiples pistas.
La caja 401 representa la caja ISOBMFF principal 'moov' y contiene la lista completa de pistas con sus identificadores. Por ejemplo, las cajas 411 a 414 representan pistas de tesela (cuatro teselas en el presente ejemplo) y la caja 420 representa la pista base de teselas. Se pueden utilizar y encapsular pistas adicionales, tales como pistas de audio o de texto, en el mismo archivo. Sin embargo, dichas pistas adicionales no se tratan aquí por concisión.
Tal como se representa en la figura 4, los datos de tesela están divididos en pistas independientes y direccionables, de manera que cualquier combinación de una pista o varias pistas de tesela se puede reconstruir fácilmente a partir de la pista base de teselas haciendo referencia a las pistas de tesela, para descodificación y visualización. La pista base de teselas se puede denominar asimismo la “pista compuesta” o “pista de referencia”, dado que está diseñada para permitir la combinación de cualesquiera teselas: una, muchas o todas las teselas. La pista base 420 de teselas contiene información común a todas las pistas de tesela y una lista de muestras 450 (solamente la primera está representada en la figura 4) en una caja "mdat". Cada muestra 450 de la pista base 420 de teselas se construye haciendo referencia a cada pista de tesela mediante la utilización de extractores (451 a 454 que representan, cada uno, un extractor para cada tesela). Cada pista 411 a 414 de tesela representa una parte espacial del vídeo íntegro, o con todos los cuadros. La descripción de tesela (posición, tamaño, ancho de banda, etc.) se almacena en las cajas de cabecera de pista (no representadas) de cada pista 411 a 414 de tesela. Se hace referencia (405) a la pista base de teselas y a cada pista de tesela utilizando una caja "TrackReferenceBox" en cada pista. Cada pista 411 a 414 de tesela hace referencia a la pista base 420 de teselas como la pista 'tbas' ('tbas' es un código específico que indica una dependencia de codificación de cada pista de tesela a la pista base de teselas, en particular, dónde encontrar el parámetro "HEVCDecoderConfigurationRecord" que posibilita configurar el descodificador de vídeo que procesará el flujo elemental que resulta del análisis sintáctico del formato de archivo). A la inversa, para permitir una reconstrucción del vídeo completo, la pista base 420 de teselas indica una dependencia de tipo ‘scal' a cada pista de tesela (405). Esto es para indicar la dependencia de codificación y para reflejar la definición de la muestra 450 de la pista base de teselas como extractores para los datos de pistas de tesela. Estos extractores son extractores específicos que, en el momento del análisis sintáctico, pueden soportar la ausencia de datos. En la figura 4, para proporcionar una versión del archivo apta para transmisión continua, cada pista se descompone en segmentos multimedia (431 a 434 para las pistas de tesela, y 460 para la pista base de teselas). Cada segmento multimedia comprende uno o varios fragmentos de película, indicado por la caja ‘moof', más datos. Para las pistas de tesela, la parte de datos corresponde a una parte secundaria espacial del vídeo, mientras que para la pista base de teselas contiene los conjuntos de parámetros, mensajes SEI cuando están presentes y la lista de extractores. La caja "moov" 401, en el caso de una aplicación de transmisión continua, se colocaría en un segmento de inicialización. La figura 4 muestra solamente un segmento, pero las pistas se pueden descomponer en cualquier número de segmentos, siendo la limitación que los segmentos para las pistas de tesela y para la pista base de teselas sigan la misma descomposición temporal (es decir, estén alineados temporalmente), y esto es para posibilitar pasar de vídeo completo a una tesela o a un conjunto de teselas. La granularidad de esta descomposición temporal no se describe en este caso, para mayor concisión.
El formato de archivo tiene metadatos descriptivos (tal como "VisualSampleGroupEntries", por ejemplo, o tipos de referencia de pista en cajas 'tref') que describen las relaciones entre las pistas, de manera que los datos correspondientes a una tesela, a una combinación de teselas o a todas las teselas pueden identificarse fácilmente analizando sintácticamente metadatos descriptivos.
En lo que sigue, se describen imágenes fijas en el mismo nivel. Por lo tanto, tras la selección del usuario de cualesquiera teselas, combinación de teselas o de todas las teselas de una imagen, se facilita la identificación y extracción. En caso de que las imágenes estén mezcladas con datos de vídeo, la descripción viene en paralelo con los metadatos descriptivos para el vídeo. De este modo, para el mismo conjunto de datos, se proporciona una capa de indexación adicional para las imágenes (además de las capas de indexación para el vídeo y para el audio). En los formatos de archivo de imagen fija que utilizan cajas ‘meta’, las imágenes con información relacionada se describen como elementos de información. Tal como se muestra en la figura 5, los elementos de información están enumerados en una caja secundaria dedicada "ItemInfoBox" 500 en la caja ‘meta’. Esta caja secundaria proporciona el número de elementos de información presentes en el archivo. La caja secundaria proporciona asimismo, para cada elemento, metadatos descriptivos representados como "ItemInfoEntry" 501. Existen varias versiones 502 (0, 1, 2, 3) de esta caja, según la evolución del estándar ISO BMFF.
Los elementos "meta" pueden no estar almacenados de manera contigua en un archivo. Asimismo, no hay ninguna restricción particular con respecto al entrelazado de los datos de elementos. Por lo tanto, dos elementos en un mismo archivo pueden compartir uno o varios bloques de datos. Esto es particularmente útil para teselas HEVC (las teselas se pueden almacenar de manera contigua, o no), dado que esto puede simplificar el tener un elemento por cada tesela descodificable independientemente. Este elemento indica el desplazamiento de los datos en la imagen HEVC principal y la longitud del sector o sectores utilizados para la tesela, por medio de una caja de ubicación de elementos.
Según las realizaciones, se puede añadir un nuevo tipo de elemento para describir una imagen de tesela, denominado, por ejemplo: "hvct" o ‘tesela’, o reutilizado de ISO/IEC 14496-15: ‘hvt1'. Cada elemento que representa la imagen de tesela (cualquiera que sea el código de cuatro caracteres elegido) puede tener una referencia de tipo "tbas" al elemento 'hvc1' desde el que se extrae. Cada elemento tiene un identificador "item_ID" 503 y se describe, además, en una caja "ItemLocationBox" en términos de posición de los bytes y de tamaño en la caja de datos multimedia que contiene los datos comprimidos para las imágenes.
Dicha sintaxis posibilita que un lector de formato de archivo (o “analizador sintáctico”) determine, por medio de una lista de elementos de información, cuántos elementos de información están disponibles con información relativa a su tipo 504, por ejemplo ‘tesela’, para indicar que un elemento de información es una imagen de tesela de una imagen completa.
Por lo tanto, se posibilita seleccionar un subconjunto de elementos de información en el archivo, una combinación de los mismos, o el conjunto completo de elementos de información para descargar solamente una tesela de la imagen y la configuración de descodificador asociada, omitiendo las otras teselas.
Para casos en los que la tesela HEVC depende de otra tesela HEVC para su descodificación, la dependencia será indicada por una referencia de elemento de tipo 'dpnd' (o cualquier código específico de cuatro caracteres que indique dependencias de codificación), tal como se describe en el documento w14123, WD de ISO/IEC 14496-15:2013 AMD 1, "Enhanced carriage of HEVC and support of MVC with depth information" (“Transporte mejorado de HEVC y soporte de MVC con información de profundidad”), MPEG 107, San José, enero de 2014.
Este documento define herramientas para asociar NALU de tesela HEVC con descripciones de grupo de muestras que indican la posición espacial de la tesela (utilizando el descriptor TileRegionGroupEntry). Sin embargo, no existe equivalente directo de agrupamiento de muestras para elementos de información de metadatos que pudiera permitir la reutilización de estos descriptores.
Por lo tanto, según las realizaciones, se define un elemento de descripción de tesela por cada tesela y la tesela se vincula a su descripción utilizando una versión modificada de la caja "ItemReferenceBox", tal como se explica a continuación. Según otras realizaciones, se proporciona solamente una descripción de teselación, preferentemente de manera genérica. Por lo tanto, la lista de elementos no se hace demasiado larga.
El diseño puede ser como sigue:
- permitir que algunos elementos describan un conjunto de metadatos, de manera similar a grupos de muestras pero específicos para cada tipo de elemento,
- para cualquier elemento, añadir la capacidad de describir un parámetro para un determinado tipo de referencia de elemento. Entonces, el parámetro se podría interpretar en función del tipo de elemento referido (de manera similar al tipo de agrupamiento).
Puede ser necesaria una actualización de los metadatos descriptivos para un elemento de información, tal como se explica en lo que sigue haciendo referencia a la figura 6.
Según el estándar ISOBMFF, el mecanismo de agrupamiento de muestras se basa en dos cajas principales que tienen un parámetro "grouping_type", como sigue:
- la caja "SampleGroupDescriptionBox" tiene un parámetro 'sgpd' que define una lista de propiedades (una lista "SampleGroupEntry"),
- la caja "SampleToGroupBox" tiene un parámetro 'sbgp' que define una lista de grupos de muestras con su mapeo a una propiedad.
El parámetro "grouping_type" vincula una lista de grupos de muestras a una lista de propiedades, especificándose el mapeo de un grupo de muestras a una propiedad de la lista en la caja "SampleToGroupBox".
Para proporcionar la misma funcionalidad para los elementos de información, es necesario describir una lista de grupos de elementos de información y una lista de propiedades. Asimismo, se debería posibilitar mapear cada grupo de elementos de información a una propiedad.
En lo que sigue, se describe cómo posibilitar que dichos metadatos descriptivos estén integrados en el formato de archivo de imagen fija. En otras palabras, cómo vincular un descriptor a un elemento de imagen. Aunque los casos de uso se describan para el formato de archivo de imagen fija HEVC, las siguientes características se pueden utilizar en otros estándares, tales como ISO/IEC 14496-12, para asociar cualquier clase de elemento de información con metadatos descriptivos adicionales.
Según las realizaciones, la caja "ItemInformationEntry" 601 existente con el parámetro 'infe' se extiende con un número de nueva versión (602 y 603) para vincular cada elemento a una propiedad por medio de un nuevo parámetro denominado "iref_type" 604, tal como se muestra en la figura 6. Esto posibilita evitar la creación de nuevas cajas y mejora la descripción manteniéndola corta al mismo tiempo.
La definición original de caja de entrada de información de elementos (Item information Entry) está dada por:
if (versión >= 2) {
if (versión == 2) {
unsigned int(16) item_ID;
} else if (versión == 3) {
unsigned int(32) item_ID;
}
unsigned int(16) item_protection_index;
unsigned int(32) item_type;
string item_name;
if (item_type=='mime') {
string content_type;
string content_encoding; / /o p c io n a l
} else if (item_type == 'uri ') {
string item_uri_type;
}
}
Una nueva versión que realiza la vinculación de una imagen de tesela a su descripción puede ser como sigue:
if (versión >= 2) {
if (versión == 2) {
unsigned int(16) item_ID;
} else if (versión >= 3) {
unsigned int(32) item_ID;
}
unsigned int(16) item_protection_index;
unsigned int(32) item_type;
string item_name;
if (item_type==/mime') {
string content_type;
string content_encoding; //op c io na l
}else if (item_type == 'uri ') {
string item_uri_type;
}
if (versión == 4) {
unsigned int(32) item_iref_parameter_count;
for (i=0 ; i< item_iref_parameter_count ; i++) {
unsigned int(32) iref_type;
unsigned int(32) iref_parameter;
}
Según otras realizaciones, más próximas a la caja "SampleToGroupBox", la definición de la caja "ItemInformationBox" con el código de cuatro caracteres 'iinf' se modifica como sigue, por ejemplo, introduciendo una nueva versión de esta caja:
la versión actual:
aligned(8) class ItemlnfoBox
extends FullBox('iinf' , versión, 0) {
if (versión == 0) {
unsigned int(16) entry_count;
} else {
unsigned int(32) entry_count;
}
ItemlnfoEntry[ entry_count ] item_infos
se modifica a:
aligned(8) class ItemlnfoBox extends FullBox('iinf', versión = 2, 0) { unsigned int(16)group_entry_count;
for (int g=0; g< group_entry_count;g++){
unsigned int (16) item_run;
unsigned int (16) grouping_type;
unsigned int(16) property_index;
unsigned int(32) entry_count;
ItemlnfoEntry[ entry_count ] item_infos;
} ~ ~
unsigned int(16) remaining_entry_count;
ItemlnfoEntry[remaining_entry_count ] item_infos;
} ^
Alternativamente, para señalizar si el grupo está o no en uso, la versión actual se modifica a:
aligned(8) class ItemlnfoBox extends FullBox('iinf', versión = 2, 0) {
unsigned int(1)group_is_used;
if (group_is_used == 0) {// caja iinf estándar pero con sobrecarga de 1 byte adicional
unsigned int (7)reserved; // para alineamiento de bytes
unsigned int(32) entry_count;
ItemlnfoEntry[ entry_count ] item_infos;
} else {
unsigned int(15)group_entry_count;
for (int g=0; g< group_entry_count;g++){
unsiqned int (16) item run;
unsigned int(16) grouping_type;
unsigned int(16) property_index;
unsigned int (32) entry_count;
ItemlnfoEntry[ entry_count ] item_infos;
}
unsigned int(16) remaining_entry_count;
ItemlnfoEntry[remaining_entry_count ] item_infos;
El parámetro "group_entry_count" define el número de grupos de elementos de información en el archivo multimedia. Para cada grupo de elemento de información se indica un número de elementos de información comenzando por item_ID=0. Dado que los elementos de información carecen de restricciones y relaciones, al contrario que las muestras, el módulo de encapsulación puede asignar los identificadores de elementos de información en cualquier orden. Al asignar números crecientes de identificadores siguiendo el grupo de elementos, la lista de grupos de información se puede representar más eficientemente utilizando un parámetro item_run que identifica los tramos de identificadores de elementos de información consecutivos en un grupo.
Los elementos de información relacionados tienen un índice denominado, por ejemplo, "property_index". Este parámetro "property_index" asociado con el parámetro "grouping_type" permite que un analizador sintáctico de formato de archivo (o “lector”) identifique una referencia a los metadatos descriptivos o bien los propios metadatos descriptivos. La figura 7 muestra dos realizaciones a modo de ejemplo.
La característica de grupo en la caja "SingleItemTypeReferenceBox" 701 se puede utilizar con una identificación de grupo "groupJD", en lugar de la identificación de elemento de información (itemJD) que se utiliza normalmente para el valor del parámetro from_item_ID. Por diseño, la caja "SingleItemTypeReferenceBox" facilita encontrar todas las referencias de una clase específica o desde un elemento específico. Utilizarla con un "group_ID" en lugar de un "item_ID" posibilita encontrar un grupo de elementos para identificar fácilmente todas las referencias de un tipo específico. Ventajosamente, dado que existe como mucho una caja "ItemInformationBox" por cada archivo encapsulado, no es necesario definir identificaciones de grupo. El módulo de encapsulación (durante la codificación) y el módulo de análisis sintáctico (durante la descodificación) pueden manejar un respectivo contador (tal como la variable "g" en la caja "ItemInformationBox”) en la lista de grupos de elementos de información a medida que son creados o leídos. Alternativamente, se puede informar al analizador sintáctico, utilizando el indicador "group_used_flag", sobre si mantener o no el contador de identificación de grupo.
Volviendo al ejemplo con un grupo de elementos de información correspondientes a las imágenes de tesela, un grupo puede contener cuatro entradas y la referencia 700 "SingleItemTypeReference" puede indicar la lista de elementos de información 704 de la que dependen los cuatro elementos de información de imagen de tesela, y por lo tanto para un tipo 703 de referencia particular.
Según otras realizaciones a modo de ejemplo, el elemento de información se utiliza en una nueva clase de caja "ItemReferenceBox", tal como se describe a continuación, que posibilita, a partir de un elemento 722, enumerar múltiples tipos 723 de referencia para algunos otros elementos de información 724.
Para el último caso, la caja "ItemReferenceBox" específica 721 se puede implementar como sigue:
aligned(8) class MultipleltemTypeReferenceBox(void) extends
Box(void) {
unsigned int(16) from_item_ID;
unsigned int(16) reference_count;
for (j=0; j<reference_count; j++) {
unsigned int(32) reference_type; / / nuevo parámetro para permitir múltiples tipos
unsigned int(16) to_item_ID;
}
}
En relación con la caja estándar "ItemInformationBox", se describe la lista de entradas de elemento, pero esta vez con un orden diferente en función del agrupamiento. En el ejemplo de teselas, esto puede conducir a un primer grupo de cuatro elementos de información correspondientes a las imágenes de tesela reunidas en un grupo con un parámetro que se puede denominar ‘tesela’ seguido de elementos de información no agrupados, para la información de configuración, para el elemento de información de imagen completa y, opcionalmente, para los metadatos EXIF.
Por lo tanto, se modifica una caja y se crea una caja que es una clase específica de caja de referencias de elemento (Item Reference Box). En lo que sigue, se describe esta nueva clase de ItemReferenceBox.
La caja "ItemReferenceBox" puede, asimismo, extenderse distinguiendo entre las diversas clases de ItemReferenceBox mediante la utilización de parámetros de indicador en la caja "Fullbox", que es parte de la ItemReferenceBox, como sigue:
aligned(8) class ItemReferenceBox extends FullBox('iref', 0, flags) { switch (flags) {
case 0:
SingleltemTypeReferenceBox references[];
break;
case 1:
MultipleltemTypeReferenceBox references[];
break;
case 2 :
SharedltemTypeReferenceBox references[];
break;
Usando la caja "MultipleltemTypeReferenceBox" 721, una imagen con cuatro teselas se puede describir como sigue:
Item Reference Box (version=1 or flags=l):
fromID=2/ ref count=l, type=' cdsc toID=l;
fromID=l/ ref”count=l, type=' init toID=3;
fromID=4, ref count=2, type='tbas toID=l, type='’tile' toID=8 fromID=5, ref count=2, type=' tbas toID=l, type=''tile' toID=8 fromID=6, ref count=2, type=' tbas toID=l, type=''tile' toID=8 fromID=7, ref count=2, type=' tbas toID=l, type=''tile' toID=8
Este diseño facilita mucho encontrar todas las referencias de cualesquiera clases a partir de un elemento específico.
El soporte de descripción 711 para una lista de elementos 712 haciendo referencia a un mismo elemento 714 con un tipo determinado 713 puede ser como sigue:
aligned(8) class SharedltemTypeP.eferenceBox(ref_type) extends Box(referenceType) {
unsigned int(16) reference_count;
for (j =0; j<reference_count; j++) {
unsigned int(16) from_item_ID;
} “ “
unsigned int(16) to_item_ID;
}
En el ejemplo de una imagen con cuatro teselas, se puede tener entonces:
type='cdsc', ref count=l, fromID=2, toID=l;
type='init', ref count=l, fromID=l, toID=3;
type='tbas', ref count=4, fromID=4, froraID=5, fromID=6, fromID=7 toID=l; ~~
type='tile', ref count=4, fromID=4, fromID=5, fromID=6, fromID=7 toID=8;
El diseño de la caja "SharedItemTypeReferenceBox" facilita encontrar todas las referencias de un tipo específico que apuntan a un elemento específico. Esto contrasta con la caja "SingleltemTypeReferenceBox". Pero, dado que la mayor parte de los "reference_type" definidos para referencias de pista no son bidireccionales, la caja "SingleItemTypeReferenceBox" no puede utilizarse con algún tipo de referencia unidireccional para señalizar todos los nodos que tienen este tipo de referencia, a otros elementos. Alternativamente, se puede disponer un indicador en el "SingleItemTypeReference" para indicar si se trata de una referencia directa o una referencia inversa, aliviando de ese modo la necesidad de la nueva SharedItemTypeReferenceBox.
En vista de lo anterior, un elemento de información puede asociarse con información de teselación. A continuación se proporciona una descripción de esta información de teselación.
Por ejemplo, cada tesela se puede escribir utilizando un descriptor de tesela, tal como el "iref_parameter" 605 de la "ItemInfoEntry" extendida 601. Un descriptor específico puede ser como sigue:
aligned(8) class TilelnfoDataBlock() {
unsigned int(8) versión;
unsigned int(32) reference_width;// tamaños de imagen completa unsigned int(32) reference_height;
unsigned int(32) horizontal_of f set; // posiciones de tesela unsigned int(32) vertical_offset;
unsigned int(32) region_width; // tamaños de tesela
unsigned int(32) region_height;
}
Según las realizaciones, se puede utilizar un descriptor para que la cuadrícula de teselas se aplique a la una o varias imágenes a almacenar.
Dicho descriptor puede ser como sigue:
aligned(8) class TilelnfoDataltem () {
unsigned int(8) versión;
unsigned int (1) regular_spacing; // cuadrícula regular o no
unsigned int(7) reserved = 0;
unsigned int (32) reference_width; // tamaños de cuadro completo unsigned int(32) reference_height;
unsigned int(32) nb_cell_horiz;
unsigned int(32) nb_cell_vert;
if (!regular_spacing) {
for (i=0; i<nb_cell_width; i++)
unsigned int(16) cell_width;
for (i=0; i<nb_cell_height; i++)
unsigned int(16) cell_height;
}
}
}
Este descriptor "TileInfoDataItem" permite describir una cuadrícula de teselación (regular o irregular). La cuadrícula se describe fila a fila comenzando por la esquina superior izquierda.
El descriptor deberá almacenarse como un elemento de tipo ‘tile’ (tesela). Cuando otro elemento hace referencia a este elemento, deberá utilizar una referencia de tipo “tile” para esta descripción y deberá tener un parámetro "iref_parameter" especificado, cuyo valor es el índice de base 0 de la celda en la cuadrícula definida por el descriptor, donde 0 es el elemento superior izquierdo, 1 es la celda inmediatamente a la derecha de la celda 0, y así sucesivamente.
En el descriptor:
- "version" indica la versión de la sintaxis para el TileInfoDataltem. Solamente está definido el valor 0.
- "regular_spacing" indica si todas las teselas en la cuadrícula tienen la misma anchura y la misma altura.
- "reference_width, reference_height" indica las unidades en las que se describe la cuadrícula. Estas unidades pueden o no corresponderse con la resolución de píxeles de la imagen que se refiere a este elemento. Si la cuadrícula es regular, "reference_width" (respectivamente, "reference_height") deberá ser un múltiplo de "nb_cell_horiz" (respectivamente, de "nb_cell_vert").
- "cell_width" proporciona la división horizontal de la cuadrícula en teselas no regulares, empezando por la izquierda. - "cell_height" proporciona la división vertical de la cuadrícula en teselas no regulares, empezando por arriba.
El enfoque anterior posibilita compartir la información de teselación para todas las teselas.
Además, en caso de que existan múltiples imágenes que comparten la misma teselación, se puede compartir incluso más descripción simplemente haciendo referencia a una celda en la cuadrícula de teselas.
La configuración de teselación se puede poner en la caja de datos multimedia (“Media Data Box”) o en una caja dedicada compartida (por referencia) entre los elementos de información de tesela.
Los anteriores descriptores son puros descriptores espaciales, en el sentido de que solamente proporcionan ubicaciones espaciales y tamaños para imagen o imágenes secundarias en una imagen mayor. En algunos casos de uso, por ejemplo, con colecciones de imágenes o composición de imágenes, una ubicación espacial no es suficiente para describir la imagen, típicamente cuando las imágenes se solapan. Esto es una limitación del anterior descriptor TilelnfoDataBlock. Para permitir composición de imágenes, ya sea la imagen una tesela o una imagen independiente/completa, puede ser útil definir un descriptor que contenga, por una parte, las posiciones y tamaños de la imagen (relaciones espaciales) y, por otra parte, información de visualización (color, recortado...) para dicha imagen. Por ejemplo, se puede proporcionar información de color para transformar una imagen secundaria de un espacio de color a otro para su visualización. Esta clase de información se puede transportar en la ColorlnformationBox 'colr' del ISOBMFF. Por compactibilidad, puede ser útil tener los mismos datos preparados para diferentes clases de visualización, simplemente proporcionando los parámetros de transformación a aplicar en lugar de transportar las dos imágenes diferentes así transformadas. Asimismo, la relación de aspecto de píxeles, tal como la caja PixelAspectRatio, 'pasp', definida en la parte 12 de ISOBMFF, se puede poner en este descriptor para redefinir una anchura y una altura que pueden ser diferentes respecto de la anchura y la altura codificadas de cada imagen. Esto indicaría la relación de escala a aplicar por la pantalla después de la descodificación de una imagen. Entonces, se tendrían los tamaños codificados almacenados en las entradas de muestra de vídeo (caja 'stsd', por ejemplo) y los tamaños de visualización deducidos a partir de la caja 'pasp'. Otra posible información para visualización podría ser la caja de información de apertura limpia 'clap', definida asimismo en ISOBMFF. Según el estándar SMPTE 274M, la apertura limpia define un área en cuyo interior la información de la imagen está subjetivamente no contaminada por todas las distorsiones de transitorios de borde (posibles efectos de anillo en los bordes de las imágenes después de conversiones de analógico a digital). Esta lista de parámetros útiles para visualización no es limitativa y se podría poner, como componentes opcionales en el descriptor de imagen secundaria, cualquier otra caja de metadatos descriptivos. Estos pueden mencionarse explícitamente debido a que ya forman parte del estándar y proporcionan herramientas genéricas para indicar ajustes de recorte de imagen, de modificación de la relación de aspecto de la muestra y de color. Desgraciadamente, su uso ha sido posible solamente para pistas multimedia, no para formato de archivo de imagen que depende de cajas ‘meta’. Entonces, los inventores proponen un nuevo descriptor denominado, por ejemplo, "SimplelmageMetaData", para soportar descripción espacial de elementos de imagen, junto con otras propiedades, tales como apertura limpia o relación de aspecto de la muestra. Esto aplica a cualquier imagen secundaria (tesela o imagen independiente) destinada a componerse en una imagen mayor o, a la inversa, extraída de una imagen mayor.
aligned(8) class SimplelmageMetaData {
CleanApertureBox clap; // opcional
PixelAspectRatioBox pasp; // opcional
ColourlnformationBox colour; // opcional
ImageSpatialRelationBox location; // opcional
}
O su variación, cuando se consideran parámetros de extensión, para ayudar al proceso de visualización (mediante, por ejemplo, extra_boxes):
aligned(8) class SimpleImageMetaData {
CleanApertureBox clap; / /o p c io n a l
PixelAspectRatioBox pasp; // opcional
Colourlnf ormationBox colour; // opcional ImageSpatialRelationBox location; // opcional
extra_boxes boxes; // opcional
}
Donde la ImageSpatialRelationBox es una extensión del TileInfoDataBlock, tal como se describe a continuación. Otro parámetro útil a considerar es la posibilidad de componer imágenes como capas. Se sugiere entonces insertar un parámetro para indicar el nivel asociado a una imagen en esta composición por capas. Esto es útil, típicamente, cuando las imágenes se solapan. Esto se puede denominar ‘layer’ (capa), por ejemplo, con indicación de información de capas. Se proporciona una sintaxis de ejemplo para dicho descriptor:
Definición:
Tipo de caja: ‘isre’
Recipiente: elemento de metadatos de imagen simple (‘simd’)
Obligatorio: no
Cantidad: cero o uno por elemento
Sintaxis:
aligned(8) class ImageSpatialRelationBox
extends FullBox('isre, versión = 0, 0) {
unsigned int(32) horizontal_display_offset
unsigned int(32) vertical_display_offset;
unsigned int(32) display_width;
unsigned int(32) display_height;
int(16) layer;
Con la semántica asociada:
horizontal_display_offset especifica el desplazamiento horizontal de
la imagen.
vertical_display_offset especifica el desplazamiento vertical de la imagen.
display_width especifica la anchura de la imagen.
display_height especifica la altura de la imagen.
layer especifica el orden de delante atrás de la imagen; las imágenes con
números más bajos están más cerca del espectador. 0 es el valor normal; y -1 estaría frente a la capa 0, y así sucesivamente.
Este nuevo tipo de caja 'isre' proporciona la capacidad de describir la posición relativa de una imagen con otras imágenes en una colección de imágenes. Proporciona un subconjunto de las funcionalidades de la matriz de transformación que se encuentra normalmente en la caja de cabecera de pista o película de un archivo multimedia. Las coordenadas en la ImageSpatialRelationBox se expresan en una cuadrícula cuadrada que proporciona el tamaño de visualización de la colección previsto por el autor; estas unidades pueden o no coincidir con el tamaño codificado de la imagen. El tamaño de visualización previsto está definido por:
- Horizontalmente: el valor máximo de (horizontal_display_offset display_width) para todas las cajas 'isre'.
- Verticalmente: el valor máximo de (vertical_display_offset display_height) para todas las cajas 'isre'.
Cuando algunas imágenes no tienen una 'isre' asociada mientras que otras imágenes en el archivo tienen 'isre' asociada, las imágenes por defecto sin 'isre' se tratarán como si sus desplazamientos horizontal y vertical fueran 0, su tamaño de visualización fuera el tamaño de visualización previsto y su capa fuera 0.
La ImageSpatialRelationBox indica la posición espacial relativa de las imágenes después de que se ha aplicado cualquier recorte o relación de aspecto de la muestra a las imágenes. Esto significa que, cuando 'isre' se combina con 'pasp', etc., en unos SimplelmageMetaData, la imagen es descodificada, se aplican los 'pasp', 'clap', 'colr' si están presentes y, a continuación, la imagen es desplazada y escalada al desplazamiento y tamaño declarados en la caja 'isre'. Este nuevo descriptor se puede utilizar como descripción de una imagen (tesela o imagen individual) definiendo una asociación entre la información de elemento que representa la imagen y la información de elemento que representa el descriptor (tómese el tipo 'simd' para la definición de SimplelmageMetadata, cualquier código de 4 caracteres reservados sería aceptable para que un analizador sintáctico mp4 identifique fácilmente la clase de metadatos que está procesando actualmente). Esta asociación se realiza con una ItemRefererenceBox y con un nuevo tipo de referencia; 'simr' para indicar “relación espacial de imágenes”. La siguiente descripción de ejemplo muestra el caso de una composición de 4 imágenes, donde la propia composición no tiene elemento asociado. Cada elemento de imagen está asociado a un elemento SimplelmageMetaData a través de una referencia de elemento (“Item Reference”) de tipo 'simr', y comparte la información DecoderConfigurationRecord en un elemento 'hvcC' dedicado.
Figure imgf000023_0002
La anterior organización de datos se proporciona como ejemplo: la imagen y los metadatos podrían estar entrelazados en la caja de datos multimedia, por ejemplo, para tener una imagen más sus metadatos direccionables como un único intervalo de bytes. Cuando recibe esta descripción, un analizador sintáctico es informado, mediante analizar sintácticamente las informaciones en los elementos 'simd', de si una imagen secundaria está recortada de una imagen completa o, a la inversa, si una imagen completa es una composición de imágenes secundarias. En caso de recorte, el elemento de imagen completa y la imagen recortada compartirían el mismo intervalo de datos, como en el ejemplo siguiente, y la misma información de configuración del descodificador. Entonces, la imagen secundaria se asociaría con el elemento 'simd' que tenga solamente información 'clap' y no posicionamiento, por lo tanto no 'isre'.
En caso de composición: en tal caso, el elemento de imagen completa se asocia con un elemento 'simd' que contiene solamente información 'isre', y la imagen secundaria se asociaría con un elemento 'simd' que refleja su posición en la imagen completa.
El ejemplo siguiente muestra el caso en el que 4 imágenes se componen en una mayor. Todas las imágenes, incluyendo la compuesta, se exponen como un elemento reproducible utilizando el descriptor propuesto.
Figure imgf000023_0001
Entradas de referencia de elemento:
type= 'simr',. fromID=l, toID=l1
type= 'simr',. fromID=2, toID=6
type= 'simr',. fromID=3, toID=7
type= 'simr',. fromID=4, toID=8
type= 'simr',. fromID=5, toID=9
type= 'init',. fromID=l, toID=l0...
type= 'init',. fromID=2/ toID=10...
type= 'init',. fromID=3, toID=l0...
type= 'init',. fromID=4, toID=l0...
type= 'init',. fromID=5/ toID=l0
Posición de elem ento:
itemlD = 1, extent count = 4,// la imagen completa se compone de 4 imágenes secundarias extent_offset = P2, extent_length = L2;
extent_offset = P3, extent_length = L3;
extent_offset = P4, extent_length = L4;
extent_offset = P5, extent_length = L5;
itemlD = 2, extent_count = 1, extent_offset = P2, extent_length = L2
itemlD 3, extent_count = 1, extent offset = P3, extent_length = L3; itemlD 4, extent_count : 1, extent offset = P4, extent_length = L4; itemlD 5, extent_count = 1, extent offset = P5, extent_length = L5; itemlD 6, extent_count = 1, extent offset = P6, extent_length = L6; itemlD 7, extent_count = 1, extent offset = P7, extent_length = L7; itemlD 8, extent_count = 1, extent offset = P8, extent_length = L8; itemlD 9, extent_count = 1, extent offset = P9, extent_length = L9; itemlD 10, extent_count = 1 extent.offset == P0 extent_length = LO; itemlD 11, extent_count = 1 extent offset = P1 , extent_length =
LIO;
Caja de datos multimedia:
1 registro de configuración de descodificador HEVC (‘hvcC’ a desplazamiento PO)
4 imágenes (secundarias) HEVC (a desplazamientos de archivo P2, P3, P4, P5)
5 metadatos de imagen simple (a desplazamientos de archivo P6, P7, P8, P9, P10)
Este otro ejemplo muestra el caso en el que la imagen completa es, de hecho, una imagen HEVC teselada (4 teselas):
Figure imgf000024_0001
Entradas de re ferencia de elem ento:
type= 'init' , fromID=l, toID=10...
/ / d e c la ra r im ágenes se cu ndaria s com o tese la s de la im agen com pleta
type= 'tbas', fromID=2, toID=l...
type= 'tbas', fromID=3, toID=l...
type= 'tbas', fromID=4, toID=l...
type= 'tbas', fromID=5, toID=l...
/ / p roporc io nar po sic iones y tam año s
type= 'simr', fromID=2, toID=6
type= 'simr', fromID=3, toID=7
type= 'simr', fromID=4, toID=8
type= 'simr', fromID=5, toID=9
Localización del elem ento:
itemlD = 1, extent_count = 4 , / / la im agen com ple ta se com pone de 4 tese las extent_offset = P2, extent length = L2... II datos para tesela 1
extent_offset = P3, extent iength = L3...//datos para tesela 2
extent_offset = P4, extent length - L4...//datos para tesela 3
extent_offset = P5, extent_length = L5.../ / datos para tesela 4
itemID = 2, extent count = 1, extent offset = P2, extent length = L2 itemID = 3, extent count = 1, extent offset = P3, extent length = L3
itemID = 4, extent count = 1, extent offset = P4, extent length = L4
itemID = 5, extent count = 1, extent offset = P5, extent length = L5
itemID = 6, extent count = 1, extent offset = P6, extent length = L6 itemID = 7, extent count = 1, extent offset = P7, extent length L7
itemID = 8, extent count = 1, extent offset = P8, extent length = L8 itemID = 9, extent count = 1, extent offset = P9, extent length = L9 itemID = 10 extent count = 1 extent offset P0, extent length = LO Caja de datos multimedia:
1 registro de configuración de descodificador HEVC fhvcC’ a desplazamiento PO)
1 imagen HEVC (con 4 teselas a desplazamiento de archivo P2, P3, P4, P5) P5)
4 metadatos de imagen simple (a desplazamientos de archivo P6, P7, P8, P9)
Dependiendo de los casos de uso, sería posible tener varios elementos de imagen que compartan los mismos metadatos, por ejemplo, cuando se aplica el mismo recorte a todas las imágenes. Es posible asimismo que un elemento de imagen tenga múltiples referencias 'simr' a diferentes SimplelmageMetaData, por ejemplo, cuando entre imágenes se comparte el recorte pero no la información espacial.
Una realización alternativa a la nueva versión de la ItemInfoEntry (como se muestra en la figura 6) es definir más de un parámetro (605) por cada referencia y entrada de elemento de información. En la realización de la figura 6, el iref_parameter es un código de cuatro bytes que es útil en caso de que un índice de tesela haga referencia a una celda en una cuadrícula de teselación. Pero, para tener una descripción más rica y poder integrar una descripción vinculada dentro de la propia entrada de información del elemento en lugar de con los datos (en la caja mdat), puede ser útil la siguiente extensión.
if (versión == 4) {
unsigned int(32) item_iref_parameter_count;
for (i=0 ; i< item_iref_parameter_count ; i++) {
unsigned int(32) iref_type;
ItemReferenceParameterEntry parameter;
}
aligned(8) abstract class ItemReferenceParameterEntry (unsigned int(32) format)
extends Box(format){
}
/ / Ejemplo para referencia a índice de tesela
aligned(8) abstract class TilelndexItemReferenceParameterEntry
extends ItemReferenceParameterEntry(1 tile’) {
unsigned int(32) tile_index;
}
/ / Ejemplo para expansión en línea de la descripción de tesela
aligned(8) abstract class TilelndexItemReferenceParameterEntry
extends ItemReferenceParameterEntry('tile’){
unsigned int(32) tile_index;
}
En la anterior extensión:
- item_iref_parameter_count proporciona el número de tipos de referencia para los que se proporciona un parámetro. Esto no cambia en comparación con el elemento 605 de la figura 6,
- iref_type proporciona el tipo de referencia, tal como se indica en la caja 'iref', para el cual el parámetro aplica para este elemento. Esto no cambia en comparación con el elemento 605 de la figura 6,
- en este caso, parameter (parámetro) difiere de iref_parameter (elemento 605 en la figura 6), debido a que proporciona un medio de extensión por medio de la nueva caja ItemReferenceParameterEntry. Al especializar esta nueva caja (tal como se realiza con la TileIndexItemReferenceParameterEntry para el índice de tesela en una configuración de teselación), cualquier clase de metadatos adicionales se puede asociar con una entrada de elemento de información, siempre que la encapsulación y los módulos de análisis sintáctico estén al tanto de la estructura de esta caja especializada. Esto se puede realizar mediante tipos estándar de ItemReferenceParameterEntry o proporcionando, por construcción o en una etapa de negociación, la estructura de la entrada de parámetro. La semántica de la estructura del parámetro está dada por la semántica del elemento con tipo iref_type.
En lo que sigue, se dan a conocer metadatos descriptivos a modo de ejemplo para elementos de información que describen una imagen con 4 teselas y los metadatos EXIF de la imagen completa.
En la técnica anterior, las imágenes de tesela se enumeraban como elementos de información sin proporcionarse ninguna descripción correspondiente, tal como se muestra en lo que sigue. Además, la información de configuración denotada como tipo 'hvcC' no se describía como un elemento. Esto posibilita factorizar los datos comunes relacionados con conjuntos de parámetros HEVC y mensajes SEI que aplican a todas las imágenes de tesela y a la imagen completa.
caja ftyp: major-brand = 'heve', compatible-brands = 'heve'
caja meta: (recipiente)
caja del controlador: hdlr = 'hvcl ' elemento principal: itemiD = 1;
Información de elemento:
ítem type = 'hvcl', itemID=l, item protection Índex = 0 (unused) => Imagen completa
ítem type = 'Exif', itemID=2, item protection índex = 0 (unused)
ítem type = 'hvcC', itemID=3, item protection Índex = 0 (unused)
ítem type = 'hvet', itemID=4, item protection Índex = 0 (unused) => Imagen de tesela
ítem type = 'hvet', itemID=5, item protection Índex = 0 (unused) => Imagen de tesela
ítem type = 'hvet', itemID=6, item protection Índex = 0 (unused) => Imagen de tesela
ítem type = 'hvet', itemID=7, item protection Índex = 0 (unused) => Imagen de tesela
Localización de elemento:
itemiD = 1, extent count = 1, extent offset = X, extent length = Y;
itemiD = 2, extent count - 1, extent offset - P, extent length = Q;
itemiD = 3, extent count = 1, extent offset = R, extent length = S;
itemiD — 4, extent count - 1, extent offset - X, extent length = ETl itemiD = 5, extent count = 1, extent offset = X+ET1, extent length = ET2;
itemiD = 6, extent count = 1, extent offset = X+ET2, extent length = ET3;
itemiD = 7, extent count = 1, extent offset = X+ET3, extent length = ET4;
Referencia de elemento:
type='cdsc', fromID=2, toID=l;
type='init', fromID=l, toID=3;
type='tbas', fromID=4, toID=l;
type='tbas', fromID=5, toID=l;
type='tbas', fromID=6, toID=l;
type='tbas', fromID=7, toID=l;
Caja de datos multimedia:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Bloque de datos exlf (a desplazamiento de archivo P, con longitud Q)
Registro de conflg HEVC (a desplazamiento de archivo R, con longitud S)
II Sin descripción de tesela
Según las realizaciones, utilizando la extensión con versión 4 (de la figura 6, 602, 603) de la caja ItemInfoEntry (601): la información de imagen de tesela se enumera con referencias asociadas a partes de la configuración de teselación que se describe asimismo como un elemento de información (ID=8).
caja ftyp: major-brand = 'heve' compatible-brands = 'heve'
caja meta: (recipiente)
caja del controlador: hdir = 'hvcl' elemento principal: itemiD = i;
Item Information:
i t e m _ ty p e = ' h v c l', i t e m I D = l , i t e m p r o t e c t i o n Ín d e x = 0 (unu;
i t e m _ ty p e = ' E x i f ' , i te m íD = 2 , i t e m p r o t e c t i o n Ín d e x = 0 (unu;
ite m _ _ ty p e = 'h v c C ', i t e m ID = 3 , i t e m p r o t e c t i o n Ín d e x = 0 (unu;
i t e m _ ty p e = ' h v e t ', i t e m íD=4 , parámetro para ireftype==tile:
tile_ index=0
i t e m _ ty p e = ' h v e t ' , i t e m íD =5 , parámetro para ireftype== ti l e :
tile index=l
i t e m _ ty p e = ' h v e t ', i t e m ID = 6 / parámetro para ireftype=;=tile:
tile index=2
i t e m _ ty p e = ' h v e t ', i t e m íD = 7 , parámetro para ireftype==tile:
tile index=3
item type = 'tile' , itemíD=8 , (configuración de teselación)
Localización de elemento:
itemiD = 1, extent count = 1, extent offset = X, extent_length = Y;
itemiD = 2, extent count = 1, extent offset = P, extent_length = Q;
itemiD = 3, extent count = 1, extent offset = R, extent_length = S; itemiD = 4, extent count = 1, extent offset = X, extent_length = ETl; itemiD = 5, extent_count = 1, extent offset = X+ET1, extent_length = ET2;
itemiD = 6, extent count = 1, extent offset = X+ET2, extent_length = ET3;
itemID = 7, extent_count = 1, extent_offset = X+ET3, extent_length = ET4;
itemID = 8, extent_count = 1, extent_offset = i, extent_length = I;
Elemento de referencia:
type='cdsc' , fromID=2, toID=l;
type= 'init' , fromID=l, toID=3;
type='tbas', fromID=4, toID=l;
type='tbas', fromID=5, toID=l;
type='tbas' , fromID=6, toID=l;
type='tbas' , fromID=7, toID=l;
typ e = 'tile ', fromID=4, toID=8; //
typ e = 'tile ', fromID=5, toID=8; // vincula cada imagen de tesela al
type= 'tile ' , fromID=6, toID=8; // elemento de configuración de teselación
type= 'tile ' , f romID=7, toID=8; //
Caja de datos multimedia:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Bloque de datos exif (a desplazamiento de archivo P, con longitud Q)
Registro de config HEVC (a desplazamiento de archivo R, con longitud S)
Bloque de datos de descripción de tesela (a desplazamiento de archivo i, con longitud I)
La figura 8 muestra un contexto de implementación de realizaciones de la invención. En primer lugar, se registran diferentes multimedia: por ejemplo, audio durante la etapa 800a, vídeo durante la etapa 800b y una o varias imágenes durante la etapa 800c. Cada medio se comprime durante respectivas etapas 801a, 801b y 801c. Durante estas etapas de compresión, se generan flujos elementales 802a, 802b y 802c. A continuación, a nivel de la aplicación (selección de usuario a partir de interfaz gráfica de usuario; configuración del sistema de generación de multimedia, etc.), se selecciona un modo de encapsulación para determinar si todos estos flujos elementales deberán o no fusionarse. Cuando se activa (criterio 803, “sí”) el modo de “fusión”, los datos para audio, vídeo e imágenes fijas son encapsulados en el mismo archivo durante la etapa 806c, tal como se ha descrito en lo anterior. Si no se activa (criterio 803, “no”) el modo “fusión”, entonces se generan durante las etapas 806a y 806b, consecutivamente o en paralelo, dos archivos encapsulados conduciendo así, respectivamente, a la creación de un archivo para datos multimedia sincronizados durante la etapa 807a y de un archivo adicional con solamente las imágenes fijas 907b. Durante la etapa 806a, se encapsulan flujos elementales de audio y de vídeo, según el estándar ISOBMFF, y las imágenes fijas son encapsuladas durante la etapa 806b, tal como se ha descrito anteriormente en el presente documento, para proporcionar características de descripción de teselas y de zonas de interés. Finalmente, se obtiene una presentación multimedia 807 y esta puede ser proporcionada a un generador DASH para prepararla para transmisión continua (etapa 820a) o almacenada en una memoria (etapa 820b) o representada en una unidad de visualización (etapa 820c) o transmitida (etapa 820d) a una entidad remota, ya sea íntegramente o después de que algunas partes (tales como teselas) hayan sido extraídas mediante análisis sintáctico de los metadatos descriptivos.
De acuerdo con descripciones anteriores de realizaciones, cabe señalar que los metadatos descriptivos, tal como, por ejemplo, la caja SimplelmageMetadata ('simd') (denominada, asimismo, ISOBMFFMetaData en la última versión de la especificación de formato de archivo de imagen fija) se describen como elementos acabados. Se definen asimismo metadatos prescriptivos o descriptivos adicionales mediante la especificación de formato de archivo de imagen fija, descrita en el documento de estudio del borrador de comité, w14878, de la primera edición de ISO/IEC 23008-12:2013, "Information technology - MPEG systems technologies - Part 12: Image File Format", MPEG 110 Estrasburgo, octubre de 2014. Ejemplos de metadatos prescriptivos o descriptivos son CleanApertureBox ('clap'), ImageRotation ('irot'), ExifDataBlock (‘exif') o ImageOverlay ('iovl'). De manera más general, los metadatos descriptivos son metadatos que proporcionan información o descripción adicional para un elemento, tal como una imagen o una imagen secundaria (por ejemplo, metadatos Exif) y los metadatos prescriptivos son operaciones o transformaciones a aplicar a un elemento (por ejemplo, una rotación, un recorte o una combinación de varios elementos que forman los operadores de transformación).
Sin embargo, puede parecer muy engorroso tener que almacenar dichos metadatos prescriptivos o descriptivos en la especificación como elementos acabados; son tan sólo pseudoelementos, que requieren que los metadatos prescriptivos o descriptivos se almacenen con datos codificados en la caja mdat (110) y que requieren definir entradas en itemLocationBox (iloc) (109), itemlnfoBox (iinf) e itemProtectionBox (ipro). Requerir, para esto, dichas entradas en iloc, iinf e ipro es una sobrecarga importante. Por ejemplo, una entrada en itemInfoBox requiere la utilización de una caja completa con, por lo menos, una cabecera de 12 bytes, además, es necesario definir un item_protection_index (16 bits) más un item_name vacío (8 bit) para un total de 15 bytes de coste extra por cada entrada en itemlnfoBox (iinf). Una entrada en itemLocationBox (iloc) requiere, asimismo, por lo menos 9 bytes en el mejor de los casos (base_offset_size= offset_size=length_size= 1, 1 extensión). En la práctica, la entrada itemLocationBox se utiliza con base_offset_size= offset-size=length_size=2 o 4, lo que supone 12 o 18 bytes de coste extra. Además, estos metadatos son normalmente pequeños y permiten la lectura eficiente de otros elementos. Tenerlos almacenados como elementos dedicados puede complicar el análisis sintáctico de archivos, en especial la extracción parcial de un archivo (multiplicación de solicitudes HTTP, por ejemplo).
En una realización alternativa, todos los metadatos descriptivos y prescriptivos se pueden definir como elementos integrados que se pueden almacenar en la caja meta (100) como parte de otras cajas, en lugar de en la caja mdat (110) y, por lo tanto, que pueden evitar el coste extra de definir entradas itemInfoBox e itemLocationBox.
Para almacenar metadatos descriptivos y prescriptivos en la caja meta, se define una caja de elementos virtuales denominada 'VirtualItemBox'. Según esta realización, todas las cajas de metadatos descriptivos y prescriptivos son heredadas de esta clase de elementos virtuales.
A un elemento virtual le están asignados un itemJD y un item_type, junto con un conjunto de cajas. Los elementos virtuales son datos adicionales utilizados, habitualmente, para describir metadatos a asociar con otros elementos. Por ejemplo, el elemento virtual permite asociar una entrada de la itemlnfoBox que identifica un elemento (imagen o imagen secundaria) y la operación o la transformación a aplicar a este elemento. Habitualmente, esta asociación se puede describir definiendo una entrada de tipo 'simr' en la caja de referencias de elementos, desde el itemJD de la imagen al itemJD de la caja de descripción de operación o transformación de metadatos. Solo se puede hacer referencia a elementos virtuales en cajas de referencia de elementos y cajas de elementos principales, y no deberán ser declarados ni referenciados en ninguna otra caja (por ejemplo, itemLocationBox (iloc), itemlnfoBox (iinf), itemProtectionBox (ipro)). La 'VirtualItemBox' se define como sigue:
al i gned(8) class VirtualItemBox(unsigned int(32) item_type)
extends Full Box('vite', versión, 0) {
if (versión == 0) {
unsigned int(16) item_ID;
} else {
unsigned int(32) item_ID;
}
unsigned int(32) item_type;
}
con la siguiente semántica para sus parámetros:
itemJD: ID (o identificador) de este elemento. Es ilegal tener el mismo valor de itemJD en las entradas a iinf, iloc o ipro.
item_type es un valor de 32 bits, habitualmente 4 caracteres imprimibles, que es un indicador válido de tipo elemento definido, tal como 'mime'.
Opcionalmente, en una variante, la 'VirtualItemBox' puede incluir, asimismo, un parámetro adicional denominado "descriptorjamily". La familia de descriptores indica si la caja de metadatos son metadatos prescriptivos o descriptivos. En una variante, la familia de descriptores indica el tipo de caja de metadatos a partir de una lista de valores predefinidos. Por ejemplo, transfo_operator, composed_image, descriptive_metadata...
Al heredarse de esta caja de elementos virtuales, todas las cajas de metadatos descriptivos y prescriptivos pueden ser almacenadas en la caja meta sin la necesidad de definir entradas asociadas en itemlnfoBox (iinf) e itemLocationBox (iloc), pero siguen manteniendo la ventaja de ser direccionables por cajas de referencia de elemento.
Según esta realización, ImageOverlay (iovl), SubSampleItemData (subs), AuxiliaryConfiguration (auxC), ExifDataBlock (exif), SimplelmageMetadata (simd) y elemento de imagen derivada se heredan de la clase de elemento virtual.
También según esta realización, se introduce un único tipo de elemento genérico denominado 'dimg', con referencias de elemento de tipo 'simr' a elementos de los tipos 'simd'. Este enfoque permite la reutilización de propiedades cuando ello es apropiado, y reduce el número de elementos y de referencias de elemento. La ImageRotationBox se añade a los SimplelmageMetadata (simd). El tipo de referencia 'simr' define un vínculo de un elemento de imagen a un elemento 'simd', para proporcionar acceso directo a metadatos descriptivos de imagen. Además, una caja de metadatos ImageOverlay (iovl) se rediseña como sigue, de manera que ya no depende del orden de referencia.
aligned(8) class ImageOverlay {
unsigned int(8) versión = 0;
unsigned int(8) flags;
for (j =0; j <3; j++) {
unsigned int(16) canvas_fill_value;
}
FieldLength = ((flags & 1) 1) * 16;
unsigned int(FieldLength) output_width;
unsigned int(FieldLength) output_height;
for (i=0; i<reference_count; i++) {
unsigned int(16) item_id;
signed int(FieldLength) horizontal_offset
signed int(FieldLength) vertical_offset;
}
Se añade un item_id explícito para cada entrada en el bucle, para identificar explícitamente el elemento que se compone.
En una realización alternativa, todas las cajas incluidas en SimplelmageMetadata (simd) están definidas como cajas de metadatos independientes que son heredadas de la caja de elementos virtuales.
En una realización alternativa, una rotación de imagen simple se puede declarar integrando la operación de rotación directamente en la caja SimplelmageMetadata ('simd') de descriptores de metadatos de imagen (denominada, asimismo, ISOBMFFMetaData en la última versión de la especificación de formato de archivo de imagen fija), como sigue:
aligned(8) class ISOBMFFMetaData {
CleanApertureBox clap; / / opcional PixelAspectRatioBox pasp; / / opcional ColourlnformationBox colour; / / opcional ImageSpatialRelationBox location; / / opcional
ImageRotationBox rotation; / / opcional
Box extra_boxes[]; / / opcional
}
aligned(8) class ImageRotationBox
extends FullBox('irot', versión = 0, flags = 0) { // 12
bytes adicionales
unsigned int (6) reserved = 0;
unsigned int (2) angle;
Aunque la caja de rotación es ligeramente mayor que los elementos 'irot' (12 bytes), el beneficio de utilizar este enfoque es claro cuando se combinan transformaciones, tales como rotación y CleanApperture, dado que solamente se requiere 'simd', en lugar de una cascada de elementos derivados.
En tal caso, el elemento derivado genérico, 'dimg' (descrito anteriormente), se puede utilizar para hacer referencia tanto al elemento de imagen como a la descripción de metadatos. Entonces, dicho elemento podría enumerarse como un elemento principal en una PrimaryltemBox ('pitm').
Otro beneficio de este enfoque es que el autor puede indicar claramente que solamente desea que se visualice el elemento rotado.
Los siguientes párrafos proponen una alternativa a la realización descrita anteriormente. Esta alternativa es ventajosamente simple en cuanto a cómo se pueden aplicar las transformaciones (o “efectos”) a imágenes en el formato de archivo de imagen fija ISO. En particular, con esta realización alternativa se resuelven los siguientes problemas:
- el elevado número de referencias de elemento;
- el número creciente de elementos cuando hay efectos en cascada; y
- la imposibilidad de hacer mutuos los efectos para un determinado conjunto de elementos, que significa conjunto de imágenes o partes de imágenes de tipo zona de interés.
Las soluciones existentes han propuesto hacer mutuos los efectos como extensiones diferentes (lo que significa desplazamientos de byte en la parte de datos) del elemento. En mayor detalle, extensión significa que una imagen derivada se describiría como una lista de extensiones en la itemLocationBox ("iloc"), identificando cada extensión un fragmento de la parte de datos ('mdat'), correspondiendo cada fragmento a uno o varios metadatos descriptivos o prescriptivos o de transformación.
Pero hay varios inconvenientes inherentes a esta solución:
- la autoría de un archivo de imagen encapsulado se complica mucho: tocar un efecto en un elemento de imagen derivada implica inspeccionar todas las imágenes derivadas para comprobar si comparten la misma extensión, y potencialmente reescribir parte de esta;
- el análisis sintáctico tampoco es muy simple, dado que el lector de archivos de imagen tendrá que determinar si una cadena de transformaciones/efectos es la misma en diferentes elementos en dicho archivo (no hay señalización directa);
- para cada transformación/efecto se requerirá una nueva extensión en el itemLocationBox ("iloc") siempre que la nueva transformación/efecto no se almacene continuamente con la transformación/efecto en la cadena de transformaciones/efectos a aplicar. Además, una combinación o cascada de efectos puede ser costosa cuando no se almacena en extensiones contiguas en la parte de datos.
Además, estas soluciones han requerido almacenamiento de implementación, lo que implica la creación de una caja para almacenar el efecto, con el fin de comprender su tipo (hasta ahora, el tipo del efecto estaba dado por el item_type). Definiendo un nuevo formato de caja para el efecto, una solución más simple es definir efectos independientemente de sus elementos y tener un mapeo directo entre elementos y efectos sin ningún coste adicional.
La realización alternativa propone una simplificación de la manipulación de efectos, teniendo una separación limpia en los formatos de archivo:
- elementos regulares (imágenes o partes de imágenes) (por ejemplo: hvc1, ...) vinculados a sus metadatos descriptivos (tal como se ha propuesto anteriormente: mediante un tipo de referencia 'init' o 'simr', o bien mediante cualquier tipo de referencia que describa metadatos descriptivos);
- “imágenes derivadas”, que son una colección de efectos (o transformaciones) aplicados a uno o varios elementos de origen (imagen o parte de imagen) identificados por medio de una referencia de elemento 'dimg', desde el elemento de “imagen derivada” al elemento de origen; y
- una estructura que representa las transformaciones/efectos, incluyendo una colección de varios efectos diferentes. Las ventajas de esta realización alternativa son:
- el carácter reutilizable de los efectos: declarados una vez y, potencialmente, referenciados múltiples veces, - descripciones más compactas al definir colecciones de efectos (más sobre esto a continuación);
- legibilidad global incluyendo que no son necesarias nuevas extensiones de la itemLocationBox; y
- mantener pequeño el número de referencias de elemento.
Según esta realización alternativa, un nuevo elemento derivado individual se define con el tipo de elemento 'dimg'. El elemento derivado individual está representado concretamente por:
if (index_mode==0) nb_bits_effect = 8;
else if (index_mode==l) nb_bits_effect = 16;
else if (Índex mode==2) nb bits effect = 32;
unsigned int(nb_bits_effect) nb_effects;
for (i=0; icnb effects; i++) {
unsigned int(nb_bits_effect) effect_id;
Donde nb_effects representa el número de efectos a aplicar a la imagen de origen para componer la imagen derivada y effect_id es un identificador único, en el archivo encapsulado, del efecto a aplicar. Los efectos se aplican en el orden inverso a su aparición en la lista de efectos.
La imagen derivada o elemento transformado denominado "DerivedImage" define una imagen como un conjunto de efectos a aplicar a una imagen de origen antes de presentarla a un usuario o a una pantalla de visualización, por ejemplo. La imagen de origen está identificada por una referencia de elemento de tipo 'dimg' (o cualquier tipo de referencia reservado) desde el elemento derivado a la imagen de origen. La propia imagen de origen puede ser cualquier elemento de imagen (imágenes o partes de imágenes, superposición de imágenes, imagen derivada) definido en la especificación de formato de archivo de imagen fija ISO. No deberá haber más de una referencia de elemento 'dimg' desde el mismo elemento (pero puede haber múltiples sobre el mismo elemento, si este elemento se reutiliza varias veces para varias composiciones).
La imagen derivada se almacena en la parte de datos del archivo.
Cuando se edita el archivo encapsulado, por ejemplo, eliminando un efecto de un archivo de imagen, todas las referencias a este efecto deberían ser eliminadas en las imágenes derivadas.
Los efectos se pueden aplicar a imágenes, partes de imágenes, imagen compuesta o imagen derivada, por medio de elementos de imagen derivada. Cada efecto es descrito por una caja que se deriva de una estructura de BaseEffectBox mostrada a continuación.
class BaseEffetBox(effect_type) extends FullBox(effect_type, versión, flags){
if (version==0) nb_bits_effect = 8;
else if (versión ==1) nb_bits_effect = 16;
else if (versión ==2) nb bits effect = 32;
unsigned int (nb_bits_effect) effect_id;
}
Con la siguiente semántica:
effect_type es el tipo de caja de efectos que se deriva de esta clase, un código único de cuatro caracteres que identifica la clase de caja;
effect_id es un identificador único para un determinado efecto o transformación. Este identificador deberá ser único dentro de la caja ‘meta’.
nb_bits_effect se deriva del valor de versión e indica el número de bits utilizados para representar el effect_id.
Los efectos se pueden declarar en una EffectDeclarationBox opcional, contenida en la caja ‘meta’:
Tipo de caja: 'effd'
Recipiente: meta
Obligatorio: No
Cantidad: cero o uno
class EffectDeclarationBox extends Box('effd'){
/ / una o varias cajas de efecto
}
Por ejemplo, se pueden definir los siguientes efectos (lista no restrictiva):
- el efecto de rotación: el efecto de rotación transforma la imagen de origen en sentido antihorario en unidades de 90 grados.
Tipo de caja: ’erot'
Recipiente: effd
Obligatorio: No
Cantidad: cero o más
class RotationEffectBox extends BaseEffectBox('erot'){ unsigned int (6) reserved = 0;
unsigned int (2) angle;
}
La semántica es:
angle (ángulo) * 90: especifica el ángulo (en sentido antihorario) en unidades de grados
- el efecto de apertura limpia: el efecto de apertura limpia modifica la parte visible de la imagen de origen.
Tipo de caja: 'ecla'
Recipiente: effd
Obligatorio: No
Cantidad: cero o más
class CleanApertureEffectBox extends BaseEffectBox('ecla'){
unsigned int(nb_bits effect) cleanApertureWidthN;
unsigned int(nb_bits_effect) cleanApertureWidthD;
unsigned int(nb_bits_effect) CleanApertureHeightN;
unsigned int(nb_bits_effect) cleanApertureHeightD;
unsigned int(nb_bits_effect) horizOffN;
unsigned int(nb bits effect) horizOffD;
unsigned int (nb_bits_effect) vertOffN;
unsigned int(nb_bits_effect) vertOffD;
}
Las semánticas son:
nb_bits_effect se deriva de la BaseEffectBox de la clase padre, e indica el número de bits utilizados para representar los diferentes campos de la CleanApertureEffectBox;
hSpacing, vSpacing: definen la anchura y altura relativas de un píxel;
cleanApertureWidthN, cleanApertureWidthD: un número fraccionario que define la anchura de apertura limpia exacta, en píxeles contados, de la imagen;
cleanApertureHeightN, cleanApertureHeightD: un número fraccionario que define la altura de apertura limpia exacta, en píxeles contados, de la imagen;
horizOffN, horizOffD: un número fraccionario que define el desplazamiento horizontal del centro de apertura limpia menos (anchura -1)/2 (habitualmente 0);
vertOffN, vertOffD: un número fraccionario que define el desplazamiento vertical del centro de apertura limpia menos (altura -1)/2 (habitualmente 0).
La colección de efectos: la caja Effect Collection permite definir un conjunto de varios efectos como un solo efecto, para reutilizarlo para varias imágenes y reduciendo, por lo tanto, el coste de la descripción en términos de bytes.
Tipo de caja: ’ecol'
Recipiente: effd
Obligatorio: No
Cantidad: cero o más
class EffectCollectionBox extends BaseEffectBox('ecol')
{
unsigned int(nb_bits_effect) nb_effects;
for (±=0; i<nb_effects; i++) {
unsigned int(nb_bits_effect) apply_effect_id;
}
}
La semántica es:
nb_bits_effect se deriva de la BaseEffectBox de la clase padre, e indica el número de bits utilizados para representar los diferentes campos de la EffectCollectionBox;
apply_effect_id: indica el ID de un efecto a aplicar a la imagen de origen.
Los efectos en una colección de efectos se aplican en el mismo orden que los efectos en el elemento DerivedImage; por ejemplo, cada efecto se deberá aplicar a la entrada en el orden inverso a su aparición en la lista de efectos. La OverlayEffectBox declara una composición de imágenes como una superposición. Para este efecto específico, la imagen derivada resultante no tiene ninguna referencia a ninguna imagen de origen, dado que este efecto declara la lista de imágenes de origen que son parte de la composición.
class OverlayEffectBox extends BaseEffectBox ('eovl') {
bit(1) fill_required;
bit(7) reserved;
if (fill_required) {
for (j=0; j <3; j++) {
unsigned int(nb_bits_effects) canvas_fill_value;
)
}
unsigned int(nb_bits_effects) output_width;
unsigned int(nb_bits_effects) output_height;
unsigned int(nb bits effects) nb images;
for (i=0; i<nb_images; i++) {
unsigned int (nb_bits_effects) image_item_lD;
signed int(nb_bits_effects) horizontal_offset;
signed int(nb_bits_effects) vertical_offset;
}
)
con la siguiente semántica:
nb_bits_effects se deriva de la BaseEffectBox de la clase padre, e indica el número de bits utilizados para representar los diferentes campos de la OverlayEffectBox;
fill_required indica si existen huecos en la imagen compuesta resultante, a rellenar con un valor de fondo; canvas_fill_value: indica el valor de píxel por canales utilizados si ningún píxel de ninguna imagen de entrada está situado en una ubicación de píxel particular. Si las imágenes de entrada contienen menos de tres canales, la semántica de canvas_fill_value correspondiente a los canales que no están presentes en las imágenes de entrada no se especifica;
nb_images indica el número de imágenes a componer, cada una identificada por su item_ID, tal como se indica mediante el parámetro image_item_ID.
output_width, output_height: especifican la anchura y la altura, respectivamente, de la imagen de salida sobre la que se sitúan las imágenes de entrada. El área de imagen de la imagen de salida se denomina el lienzo. horizontal_offset, vertical_offset: especifican el desplazamiento, desde la esquina superior izquierda del lienzo, con el que se ubica la imagen de entrada. Las ubicaciones de píxel con un valor de desplazamiento negativo no están incluidas en la imagen de salida. Las ubicaciones horizontales de píxel mayores o iguales que output_width no están incluidas en la imagen de salida. Las ubicaciones verticales de píxel mayores o iguales que output_height no están incluidas en la imagen de salida.
Según otro aspecto de la invención, el almacenamiento de todos los metadatos descriptivos y prescriptivos se puede optimizar más, comparado con algunas realizaciones, en función de si los metadatos prescriptivos y/o descriptivos son específicos de un elemento de imagen particular o compartidos entre varios elementos de imagen. Dicha compartición se posibilita sin usar compartición de intervalos de bytes o sin definir una lista extensiva de referencias de elemento, como requerían las realizaciones anteriores. De acuerdo con esta realización alternativa, todos los metadatos descriptivos y prescriptivos siguen estando almacenados solamente en el interior de la jerarquía de la caja en la caja ‘meta’ (100), permitiendo que los lectores ISOBMFF analicen sintácticamente toda la información del sistema sin tener que extraer una caja 'idat' o 'mdat'. El número de elementos de imagen (en la caja 'iinf') y de referencias de elemento (en la caja 'iref’) están, por lo tanto, limitados a solamente tratar datos multimedia o a representar una relación entre varios elementos de imagen. Semejante diseño simplifica el análisis sintáctico del archivo y facilita la comprensión de alto nivel del formato de archivo.
Un aspecto clave de esta realización es que toda la información de elementos a nivel del sistema está contenida en cajas dedicadas (utilizando ISOBMFF fullbox), accesibles para un analizador sintáctico sin extraer ninguna caja 'mdat' o 'idat', e incluida en la entrada de información de elemento o referenciada por la misma directamente.
Esta realización introduce los siguientes cambios:
- se define una nueva caja dedicada denominada SharedltemPropertiesBox ('sitp') que contiene metadatos descriptivos y prescriptivos estructurados en cajas, que se comparte entre elementos.
- una modificación de la entrada de información de elementos ('infe') para asociar metadatos descriptivos y prescriptivos estructurados en cajas, con un elemento. Estos metadatos pueden ser almacenados directamente en la caja 'infe' si los metadatos están relacionados solamente con este elemento, o almacenados en la caja 'sitp' y referenciados desde la caja 'infe' si los metadatos son compartidos entre varios elementos.
- una nueva caja (SampleDescriptionEntryReference 'sder', que representa un parámetro de inicialización) para permitir compartir los mismos datos de inicialización entre un elemento de imagen y una muestra en una pista. La nueva caja denominada PropertiesBox de elemento compartida ('sitp') se define como sigue:
Tipo de caja: 'sitp'
Recipiente: MetaBox ('meta')
Obligatorio: No
Cantidad: Cero o uno
La caja de propiedades de elemento compartida (la caja compartida dedicada) contiene una lista de cajas que definen metadatos (denominados, asimismo, propiedades) descriptivos (parámetros de visualización) y prescriptivos (operadores de transformación) que pueden ser aplicables a varios elementos declarados en la caja ‘meta’ padre. Se hace referencia a estas cajas mediante un índice basado en 0, desde una caja ItemInfoEntry. Esta caja tiene la siguiente sintaxis:
aligned(8) class SharedltemPropertiesBox extends
Box('sitp') {
/ / una o varias cajas
}
En relación con la modificación de la entrada de información de elemento, se define una nueva versión (4) con la siguiente semántica: la caja ItemInfoEntry proporciona la posibilidad de incluir, o hacer referencia a cajas adicionales en la entrada de información del elemento que proporciona propiedades para este elemento. Deberá haber como mucho una propiedad de un determinado tipo en la unión de las propiedades incluidas y referenciadas. Las propiedades pueden depender del orden, en cuyo caso se deberá utilizar el orden dado en la caja ItemInfoEntry, es decir, la primera propiedad incluida se aplica primero, seguida en orden por todas las demás propiedades incluidas, seguidas después por todas las propiedades referenciadas.
La sintaxis adicional se especifica como sigue:
if (versión == 4) {
unsigned int(16) included_prop_count;
Box item_properties[included_prop_count];
unsigned int(16) indexed_prop_count;
unsigned int(16) box_prop_idx[indexed_prop_count];
)
La semánticas asociadas son:
included_prop_count: número de propiedades (metadatos prescriptivos o descriptivos) incluidas en el conjunto item_properties.
item_properties: conjunto de cajas o tabla de cajas que proporciona información adicional para este elemento (propiedades de la información de elemento). Las cajas permitidas son las mismas que en la caja de propiedades de elemento compartida.
indexed_prop_count: número de referencias a propiedades en la caja de propiedades de elemento compartida. box_prop_idx: índices basados en 0 a la lista de cajas almacenadas en la caja SharedltemProperties de la caja ‘meta’.
De acuerdo con esta realización, todos los metadatos descriptivos y prescriptivos son cajas completas ISOBMFF a almacenar en la caja de propiedades de elemento compartida o en el conjunto item_properties dentro de una caja ItemInfoEntry.
Por ejemplo, los metadatos prescriptivos para rotación de imagen se definen como sigue:
Tipo de caja: 'irot'
Recipiente: SharedltemProperties
Obligatorio: No
Cantidad: cero o más.
La caja de rotación de imagen proporciona un ángulo de rotación en sentido antihorario en unidades de 90 grados. Deberá existir solamente una de dichas cajas asignada como propiedad de un elemento de imagen. La sintaxis de esta caja se define como sigue:
Con la siguiente semántica de atributos:
version (versión) deberá ser igual a 0.
flags (indicadores) deberá ser igual a 0.
angle (ángulo) * 90: especifica el ángulo (en sentido antihorario) en unidades de grados
Los metadatos prescriptivos para superposición de imágenes se definen como sigue:
Tipo de caja: 'iovl'
Recipiente: SharedltemProperties
Obligatorio: No
Cantidad: cero o más.
La caja de superposición de imágenes ubica una o varias imágenes de entrada en un determinado orden de disposición en capas dentro de un lienzo mayor. Las imágenes de entrada se enumeran en el orden en el que están dispuestas en capas, es decir, primero la imagen de entrada situada más abajo, y por último la imagen de entrada situada más arriba, en la SingleltemTypeReferenceBox de tipo 'dimg' para el elemento de imagen derivada que incluye, o hace referencia a esta caja como propiedad. Deberá existir solamente una de dichas cajas asignada como propiedad de un elemento de imagen.
La sintaxis de esta caja se define como sigue:
aligned(8) class ImageOverlay extends FullBox('iovl
versión, flags){
for (j =0; j<4; j++) {
unsigned int(16) canvas_fill_value;
}
FieldLength = ((flags & 1) 1) * 16;
unsigned int(FieldLength) output_width;
unsigned int(FieldLength) output_height;
for (i=0; icreference count; i++) {
signed int(FieldLength) horizontal offset
signed int(FieldLength) vertical_offset;
Con la siguiente semántica de atributos:
versión deberá ser igual a 0.
(flags & 1) igual a 0 específica que la longitud de los campos output_width, output_height, horizontal_offset y vertical_offset es de 16 bits. (flags & 1) igual a 1 específica que la longitud de los campos output_width, output_height, horizontal_offset y vertical_offset es de 32 bits. Los valores de indicadores mayores que 1 están reservados.
canvas_fill_value: indica el valor de píxel por canales utilizados si ningún píxel de ninguna imagen de entrada está situado en una ubicación de píxel particular. Los valores de relleno se especifican como RGBA (R, G, B y A correspondientes al contador de bucles j igual a 0, 1, 2 y 3, respectivamente). Los valores RGB están en el espacio de color sRGB, tal como se define en IEC 61966-2-1. El valor A es un valor de opacidad lineal comprendido entre 0 (completamente transparente) y 65535 (completamente opaco).
output_width, output_height: especifican la anchura y la altura, respectivamente, de la imagen de salida sobre la que se sitúan las imágenes de entrada. El área de imagen de la imagen de salida se denomina el lienzo. reference_count se obtiene a partir de la SingleltemTypeReferenceBox de tipo 'dimg', donde el elemento que utiliza esta caja está identificado por el campo from_item_ID.
horizontal_offset, vertical_offset: especifican el desplazamiento, desde la esquina superior izquierda del lienzo, al que se sitúa la imagen de entrada. Las ubicaciones de píxel con un valor de desplazamiento negativo no están incluidas en la imagen de salida. Las ubicaciones horizontales de píxel mayores o iguales que output_width no están incluidas en la imagen de salida. Las ubicaciones verticales de píxel mayores o iguales que output_height no están incluidas en la imagen de salida.
Los metadatos prescriptivos para la cuadrícula de imagen se definen como sigue:
Tipo de caja: 'grid'
Recipiente: SharedItemProperties
Obligatorio: No
Cantidad: cero o más.
La caja de cuadrícula de imágenes forma una imagen de salida a partir de una o varias imágenes de entrada en un determinado orden de cuadrícula dentro de un lienzo mayor. Deberá existir solamente una de dichas cajas asignada como propiedad de un elemento de imagen. Las imágenes de entrada se introducen en un orden principal por filas, la fila más alta primero, de izquierda a derecha, en el orden de la SingleltemTypeReferenceBox de tipo 'dimg' para el elemento de imagen derivada, utilizando esta caja dentro de la caja de referencias de elemento. Deberá haber filas*columnas referencias de elemento, de este elemento a las imágenes de entrada. Todas las imágenes de entrada tendrán exactamente la misma anchura y altura; se las denomina tile_width y tile_height. Las imágenes de entrada teseladas deberán “cubrir” completamente el lienzo de cuadrícula de la imagen de salida, donde tile_width*columnas es mayor o igual que output_width, y tile_height*filas es mayor o igual que output_height. La imagen de salida se forma por teselación de las imágenes de entrada en una cuadrícula con una anchura de columna (potencialmente, excluyendo la columna más a la derecha) igual a tile_width y una altura de fila (potencialmente, excluyendo la fila de más abajo) igual a tile_height, sin hueco ni solapamiento, y recortando, a continuación, a la derecha y en la parte inferior, a la output_width y la output_height indicadas.
La sintaxis de esta caja se define como sigue:
aligned(8) class ImageGridBox extends FullBox('grid',
versión, flags) (
FieldLength = ((flags & 1) 1) * 16;
unsigned int(8) rows;
unsigned int(8) columns;
unsigned int(FieldLength) output_width;
unsigned int(FieldLength) output_height;
}
Con la siguiente semántica de atributos:
versión deberá ser igual a 0.
(flags & 1) igual a 0 específica que la longitud de los campos output_width, output_height es de 16 bits. (flags & 1) igual a 1 específica que la longitud de los campos output_width, output_height es de 32 bits. Los valores de indicadores mayores que 1 están reservados.
output_width, output_height: especifican la anchura y la altura, respectivamente, de la imagen de salida sobre la que se sitúan las imágenes de entrada. El área de imagen de la imagen de salida se denomina el lienzo.
rows, columns (filas, columnas): especifican el número de filas de las imágenes de entrada, y el número de imágenes de entrada por cada fila. Las imágenes de entrada pueblan primero la fila superior, seguida por la segunda y subsiguientes, en el orden de las referencias de elemento.
De manera similar, todos los demás metadatos descriptivos y prescriptivos, tales como la caja de configuración auxiliar ('auxC'), la caja de extensiones espaciales de imágenes ('ispe'), la caja de información de píxeles ('pixi'), la caja de ubicación relativa ('rloc'), la caja de apertura limpia ('clap') (la lista no es restrictiva), son heredados de la fullbox ISOBMFF.
Según esta realización, un elemento es una imagen derivada, cuando incluye una referencia de elemento 'dimg' a otro u otros elementos de imagen, que son entradas para la derivación. Una imagen derivada se obtiene realizando una operación especificada, tal como rotación, para imágenes de entrada especificadas. La operación realizada para obtener la imagen derivada está identificada por el item_type del elemento. Los elementos de imagen utilizados como entrada a una imagen derivada pueden ser imágenes codificadas o pueden ser otros elementos de imagen derivada. Por ejemplo, el elemento de imagen derivada de apertura limpia está identificado por el valor de item_type 'clap'. Este no almacena datos y no deberá tener una entrada asociada en la tabla 'iloc'. Deberá incluir, o hacer referencia a una propiedad de elemento del tipo CleanApertureBox, tal como se define en ISO/IEC 14496-12. Deberá tener una referencia de elemento de tipo 'dimg' a un elemento de imagen. Como otro ejemplo, el elemento de imagen derivada de rotación de imagen está identificado por el valor de item_type 'irot'. Este no almacena datos y no deberá tener una entrada asociada en la tabla 'iloc'. Deberá incluir, o hacer referencia a una propiedad de elemento del tipo ImageRotationBox, tal como se ha definido anteriormente. Deberá tener una referencia de elemento de tipo 'dimg' a un elemento de imagen.
De manera similar, el elemento de imagen derivada de superposición de imágenes está identificado por el item_type 'iovl'. Este no almacena datos y no deberá tener una entrada asociada en la tabla 'iloc'. Deberá incluir, o hacer referencia a una propiedad de elemento del tipo ImageOverlayBox, tal como se ha definido anteriormente. Deberá tener una referencia de elemento de tipo 'dimg' a un conjunto de elementos de imagen. El elemento de imagen derivada de cuadrícula de imágenes está identificado por el valor de item_type 'grid'. Este no almacena datos y no deberá tener una entrada asociada en la tabla 'iloc'. Deberá incluir, o hacer referencia a una propiedad de elemento del tipo ImageGridBox, tal como se ha definido anteriormente. Deberá tener una referencia de elemento de tipo 'dimg' a un conjunto de elementos de imagen.
Siguen algunos ejemplos que muestran la utilización de la caja de propiedades de elemento (item properties) compartida y la caja ItemInfoEntry extendida, para asignar metadatos descriptivos y prescriptivos (o propiedades) a imágenes.
En el siguiente ejemplo, se asignan dos cajas de propiedades ('hvcC' e 'ispe') a un elemento de imagen directamente dentro de la itemlnfoEntry asociada en las item_properties del conjunto.
Figure imgf000037_0001
En el siguiente ejemplo, además del ejemplo anterior, un operador de rotación de imagen ('irot') es asignado al elemento de imagen de manera similar:
FileTypeBox: major-brand. = ’heic', compatible-brands = ’heic*
MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 1;
ItemlnfoBox:
1) item_type = ’hvcl', itemID=l, item_protection_index = 0 (unused), item properties: 'hvcC', 'ispe1, 'irot' ItemLocationBox:
itemID = 1, extent_count = 1, extent_of fset = X, extent_length = Y; MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
En el siguiente ejemplo, múltiples imágenes con diferentes configuraciones HEVC comparten las mismas dimensiones descritas en una caja de extensiones espaciales de imágenes ('ispe') común, almacenada en la caja de propiedades de elemento compartida ('sitp'). Cada caja itemlnfoEntry de imagen contiene su propia caja de configuración HEVC ('hvcC') y utiliza un índice (índice de propiedades del elemento) a la caja de propiedades de elemento compartida, para hacer referencia a la caja de extensiones espaciales de imagen ('ispe') común:
FileTypeBox: major-brand = ’heic', compatible-brands = 'heic'
MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 1;
ItemlnfoBox:
1) item_type = 1hvcl', itemID-1,
item_protection_index = 0 (no Utilizado),
ítem properties: 'hvcC', índices de propiedades de elemento: 0
2) item_type = 'hvcl', itemID=2,
item_protection_index = 0 (no Utilizado),
item properties: ' hvcC', índices de propiedades de elemento: 0
3 ) i t e m _ t y p e = ' h v c l ' , i t e m ID = 3 ,
i t e m _ p r o t e c t io n _ m d e x = 0 (no utilizado)
i t e m p r o p e r t i e s : 'h v c C ' , Índices de propiedades de elemento: 0
4 ) i t e m _ t y p e = ' h v c l ' , i t e m ID = 4 ,
i t e m _ p r o t e c t io n _ m d e x = 0 (no utilizado)
i t e m p r o p e r t i e s : ' h v c C ' , índices de propiedades de elemento: 0
S h a r e d I t e m P r o p e r t ie s B o x :
0 ) ' i s p e '
ItemLocationBox:
itemID = 1, extent_count = 1, extent_offset = X,
extent_length = Y;
itemID = 2, extent_count = 1, extent_offset = P0,
extent_length = Q0;
itemID = 3, extent_count = 1, extent_offset = Pl,
extent_length = Q1;
itemID = 4, extent_count = 1, extent_offset = P2,
e>:tent_length = Q2;
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Imagen HEVC (a desplazamiento de archivo P1, con longitud Q1)
Imagen HEVC (a desplazamiento de archivo P2, con longitud Q2)
Imagen HEVC (a desplazamiento de archivo P3, con longitud Q3)
Las entradas de los índices de propiedades del elemento de la tabla forman un conjunto de identificadores. Otro conjunto de identificadores está formado por el rango de la información de descripción de imágenes (en este caso, 'ispe') en la caja compartida dedicada [SharedItemPropertiesBox] (en este caso “0”).
En otra realización, el otro identificador puede estar formado por otro ID asignado a una información de descripción de imágenes en la caja compartida dedicada. Por ejemplo, este otro ID asignado a una información de descripción de imágenes se puede definir como heredado de la "VirtualItemBox" (descrita anteriormente) en lugar de la "fullbox" ISOBMFF. Ventajosamente, esta realización permite reordenar la información de descripción de imágenes en la caja compartida dedicada sin afectar al identificador de conjunto.
Ambos conjuntos de identificadores forman una estructura para vincular la información de elementos de imagen [representada por una entrada en ItemInfoBox] a, por lo menos, una información de descripción de imágenes.
El siguiente ejemplo describe una imagen derivada compuesta de múltiples imágenes en una cuadrícula rotada. Todas las imágenes que componen la cuadrícula comparten la misma configuración HEVC y las mismas dimensiones de imagen por medio de las cajas 'hvcC' e 'ispe' situadas en la caja de propiedades de elemento compartida y referenciadas por medio del índice de propiedades de la caja. La imagen derivada que representa la cuadrícula se describe por medio de una itemlnfoEntry que contiene una caja de cuadrícula de imagen. La rotación a aplicar se describe con una caja de rotación de imagen asociada a la imagen derivada. Las imágenes de entrada para componer la imagen derivada son referenciadas por medio de una entrada de referencia de elemento (“Item Reference Entry”) en la caja de referencias de elemento ('iref'):
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic' MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 5;
ItemInfoBox:
1) item_type = 'hvcl', itemID=l,
item_protection_index = 0 (no utilizado),
índices de propiedades de elemento: 0 , 1
2) item_type = 'hvcl1, itemID=2,
item_protection_index = 0 (no utilizado),
índices de propiedades de elemento: 0 , 1
3) item_type = 'hvcl', itemID=3,
item_protection_index = 0 (no utilizado),
índices de propiedades de elemento: 0 , l
4) item_type = 'hvcl', itemíD=4,
item_protection_index = 0 (no utilizado),
índices de propiedades de elemento: 0 , 1
5) item_type = 'grid', itemID=5,
item_protection_index = 0 (no utilizado),
propiedades de elemento: 'grid', 'irot'
SharedItemPropertiesBox:
0) 'hvcC'
1) 'ispe'
ItemLocationBox:
itemID = 1, extent_count - 1, extent_offset = X,
extent_length = Y;
itemID = 2, extent_count = 1, extent_offset = P0,
extent_length = Q0;
itemID = 3, extent_count - 1, extent_offset = P1,
extent_length = Q l ;
itemID = 4, extent_count = 1, extent_offset = P2,
extent_length = Q2;
ItemReferenceBox:
type='dimg', fromID=5, toID=l,2,3 , 4;
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Imagen HEVC (a desplazamiento de archivo P1, con longitud Q1)
Imagen HEVC (a desplazamiento de archivo P2, con longitud Q2)
Imagen HEVC (a desplazamiento de archivo P3, con longitud Q3)
El siguiente ejemplo describe una imagen teselada HEVC. En este ejemplo, todos los elementos (de imagen completa (itemlD=1) y teselas (itemlD=2,3,4,5)) comparten la misma caja de configuración HEVC y todas las teselas comparten la misma caja de extensiones espaciales de imagen que define el tamaño de la tesela (Wt, Ht) por medio de la SharedltemPropertiesBox. Además, todos los elementos de tesela contienen su propia caja de ubicación relativa ('rloc') que proporciona las coordenadas x, y, de cada tesela:
FileTypeBox: major-brand = ’heic', compatible-brands = ’heic' MetaBox: (recipiente)
HandlerBox: hdlr = ’pict'
PrimaryltemBox: itemID = 1;
ItemlnfoBox:
1) i te m _ ty p e = ' h v c l ’ , i t e m ID = l,
i t e m _ p r o te c t io n _ in d e x = 0 (no utilizado),
índices de propiedades de elemento: o
propiedades de elemento: ■ i spe < (w, H)
2) i te m _ ty p e = ' h v t l ' , i te m ID = 2 ,
i t e m _ p r o te c t io n _ in d e x = 0 (no utilizado),
índices de propiedades de elemento: o , i
propiedades de elemento:»r i o c »
3) i te m _ ty p e = ' h v t l ' , i te m ID = 3 ,
i t e m _ p r o te c t io n _ in d e x = 0 (no utilizado),
índices de propiedades de elemento: 0 , i
propiedades de elemento:1 r l o c '
4) item_type = 'hvtl*, itemID=4,
item_protection_index = 0 (no utilizado),
índices de propiedades de elemento: 0 ^ 1
propiedades de elemento: *rloc '
5) item_type = 'hvtl', itemID=5,
item_protection_index = 0 (no utilizado),
índices de propiedades de elemento: 0 , l
propiedades de elemento: 1rloc'
SharedltemPropertiesBox:
0) 'hvcC1
1) 'ispe' (Wt, Ht)12345
ItemLocationBox:
itemID = 1, extent_count=l, extent_offset=X, extent_length=Q0+Ql+Q2EQ3;
itemID = 2, extent_count=l, extent_offset=X,
extent_length=Q0;
itemID = 3, extent_count=l, extent_offset=X+Q0,
extent_length=Ql;
itemID = 4, extent_count=l, extent_offset=X+Q0+Ql,
extent_length=Q2;
itemID - 5, extent_count=l, extent_offset=X+Q0+Ql+Q2,
extent_length=Q3;
ItemReferenceBox:
type=,tbas’, fromID=2, toID=l;
type='tbas', fromID=3, toID=l;
type=1tbas1, fromID=4, toID=l;
type=Ttbas*, fromID=5, toID=l;
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Q0+Q1+Q2+Q3)
Además, algunos formatos de imagen requieren datos de inicialización para descodificar datos de elemento de imagen. Los datos de inicialización son específicos por códec y pueden ser iguales o similares al registro de configuración del descodificador, especificado para pistas de vídeo. En tal caso, es útil compartir datos de inicialización en lugar de repetirlos en el formato de archivo. Si se requieren dichos datos de inicialización, estos se proporcionan en la información de elemento mediante (una propiedad de los) metadatos descriptivos de un tipo específico. Varios elementos de imagen pueden compartir la misma mencionada propiedad. Para permitir compartir los mismos datos de inicialización entre un elemento de imagen y algunas muestras de una pista, se define una nueva caja de metadatos descriptivos denominada SampleDescriptionEntryReference ('sder'), como sigue:
Tipo de caja: 'sder'
Recipiente: SharedItemProperties
Obligatorio: No
Cantidad: cero o más.
La SampleDescriptionEntryReferenceBox permite indicar que un elemento de imagen reutiliza los mismos datos de inicialización que algunas muestras de una pista. Esta identifica la pista y la entrada de descripción de muestra de tales muestras de esa pista. Esta caja tiene la siguiente sintaxis:
aligned(8) class SampleDescriptionEntryReferenceBox
extends FullBox('sder', 0, flags) {
unsigned int(32) track_ID;
unsigned int(32) sample_description_index;
}
Con las siguientes semánticas para sus parámetros:
track_ID: el identificador de la pista desde la cual se reutiliza la inicialización.
sample_description_index: índice de base 1 de la entrada de la muestra en la pista asociada, que describe los datos en este elemento.
El siguiente ejemplo muestra la compartición de la configuración HEVC entre una pista y un elemento de imagen por medio de una caja SampleDescriptionEntryReference ('sder') asociada a la itemlnfoEntry de imagen.
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic, mp41' MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID=1;
ItemlnfoBox:
1) item_type = ’hvcl', itemID=l, item_protection_index = 0
(no utilizado), propiedades de elemento:'sder' (track: i,
sample_desc_index:1), ’íspe'
ItemLocationBox:
itemID = 1, extent_count = 1, extent_offset = X,
extent_length = Y;
Caja de película: (recipiente)
Cabecera de película, pistas
(Incluyendo pista 1 con, por lo menos 1 dése, de muestra),
etc., según requerido por MP4
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Datos multimedia requeridos por la película
(algunos pueden ser compartidos con datos de imagen)
Cuando los datos de elemento de imagen representan teselas HEVC, cada elemento de tesela HEVC deberá, entonces, incluir o hacer referencia a una propiedad del tipo HEVCConfigurationBox estando, todos los conjuntos de parámetros requeridos para descodificar las teselas, presentes en el elemento de tesela HEVC. Varios elementos de tesela HEVC pueden compartir la misma propiedad HEVCConfigurationBox. Un elemento de tesela HEVC deberá, asimismo, incluir, o hacer referencia a una propiedad RelativeLocationBox ('rloc') que indica la posición del elemento de tesela HEVC dentro del respectivo elemento de imagen HEVC. Varios elementos de tesela HEVC correspondientes a teselas que pertenecen a diferentes imágenes HEVC pueden compartir la misma RelativeLocationBox. Se deberá utilizar una propiedad ImageSpatialExtentsBox ('ispe') para cada elemento de tesela HEVC. display_width y display_height de la ImageSpatialExtentsBox deberán ajustarse a la anchura y la altura del elemento de tesela HEVC.
En una variante de la realización alternativa anterior, en lugar de agrupar todos los metadatos descriptivos y prescriptivos compartidos en un único recipiente SharedltemPropertiesBox, se pueden definir dos cajas de recipientes diferentes, una dedicada a metadatos descriptivos y la otra dedicada a metadatos prescriptivos. En este caso, la ItemInfoEntry extendida contiene dos diferentes conjuntos de índices de propiedades (box_prop_idx y box_ope_idx), o se asocia un tipo de metadatos (descriptivos o prescriptivos) a cada entrada del conjunto de índice de propiedades (box_prop_idx) para recuperar su recipiente asociado.
Las entradas de box_prop_idx y box_ope_idx forman el conjunto de identificadores. Otro conjunto de identificadores está formado por el rango de la información de descripción de imágenes en las dos cajas compartidas dedicadas. En otra realización, el otro conjunto de identificadores puede estar formado por otros ID asignados a la información de descripción de imágenes en cada una de las cajas compartidas dedicadas. Ventajosamente, esta realización permite reordenar la información de descripción de imágenes en la caja compartida dedicada sin afectar al conjunto de identificadores.
Ambos conjuntos de identificadores forman una estructura para vincular la información de elementos de imagen [representada por una entrada en ItemInfoBox] a, por lo menos, una información de descripción de imágenes.
Se describen ejemplos adicionales de este último aspecto de la invención en el Anexo.
En otro aspecto de la invención, todos los metadatos descriptivos y prescriptivos pueden seguir estando agrupados en una o dos cajas similares a SharedltemPropertiesBox, pero en lugar de modificar la caja itemlnfoEntry, se puede utilizar la caja de referencias de elemento para asociar elementos de imagen con sus metadatos descriptivos y prescriptivos. En esta realización alternativa, se definen dos diferentes cajas de recipientes, una para propiedades descriptivas (por ejemplo, propiedades de elemento compartidas, “Shared Item Properties”) y la otra para propiedades prescriptivas (por ejemplo, operadores de elemento compartidos, “Shared ItemOperators”):
aligned(8) class SharedltemPropertiesBox extends
Box ('sitp ' ) {
/ / una o varias cajas
}
aligned(8) class SharedltemOperatorsBox extends
Box ('sito ' ) {
/ / una o varias cajas
}
En lugar de modificar la caja 'infe', se utiliza la caja de referencias de elemento 'iref' para asociar elementos de imagen y de imagen derivada a sus metadatos descriptivos y metadatos prescriptivos (denominados, asimismo, operadores).
Se definen dos nuevos tipos de referencia: por ejemplo, ‘sipr' para metadatos descriptivos y 'sior' para metadatos prescriptivos.
En función del tipo de relación ('sipr' o 'sior'), el parámetro 'to_item_ID' en la caja de referencias de elemento se interpreta como un índice a, respectivamente, la SharedltemPropertiesBox o la SharedItemOperatorsBox. Los tipos de referencia (en este caso, 'sipr' o ‘sior') asociados al 'to_item_ID' forman una estructura para vincular la información de elementos de imagen (representada por una entrada en la ItemInfoBox) a la información de descripción de imágenes (metadatos descriptivos y metadatos prescriptivos).
Para cualesquiera otros tipos de referencia existentes, se sigue interpretando que el atributo 'to_item_ID' apunta a un itemID en la ItemInfoBox.
Sigue un ejemplo de utilización de tipos de relación 'sipr' y ‘sior' para describir múltiples imágenes en una cuadrícula rotada:
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic' MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 5;
ItemlnfoBox:
1) item_type = 'hvcl', itemID=l,
item_protection_index = 0 (no utilizado)
2) item_type = 'hvcl1, itemID=2,
item_protection_index = 0 (no utilizado)
3) item_type = 'hvcl', itemID=3,
item_protection_index = 0 (no utilizado)
4) item_type = 'hvcl', itemID=4,
item_protection_index = 0 (no utilizado)
5) item_type = 'grid', itemID=5,
item_protection_index = 0 (no utilizado) SharedItemPropertiesBox:
0) 'hvcC'
1) 'ispe'
SharedItemOperatorsBox:
0) ’irot'
1) 'grid'
ItemLocationBox:
itemID = 1, extent_count =1,
extent_offset = X, extent_length = Y;
itemID = 2, extent_count = 1,
extent_offset = P0, extent_length = Q0;
itemID = 3, extent_count =1,
extent_offset = Pl, extent_length = Ql;
itemID = 4, extent_count = 1,
extent_offset = P2, extent_length = Q2;
ItemReferenceBox:
type='sipr', fromID=l, toID=0,1 ;
type='sipr', fromID=2, toID=0,1 ;
type='sipr', fromID=3, toID=0,1 ;
type='sipr' , fromID=4, toID=0,1 ;
type=’dimg 1, fromID=5, toID=l,2,3,4;
type='sior', fromID=5, toID=l,0;
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Imagen HEVC (a desplazamiento de archivo P1, con longitud Q1)
Imagen HEVC (a desplazamiento de archivo P2, con longitud Q2)
Imagen HEVC (a desplazamiento de archivo P3, con longitud Q3)
Como una variante, cada información de descripción de imágenes en las cajas compartidas está asociada a un ID apropiado. Esta realización permite, ventajosamente, reordenar la información de descripción de imágenes en la caja compartida dedicada sin afectar al identificador.
En una variante, cada tipo de referencia existente está asociado implícitamente a alguna de la itemlnfoBox, la caja de propiedades de elemento compartida o la caja SharedltemOperators. Por ejemplo, los tipos de referencia de metadatos descriptivos, tales como 'ispe', 'rloc', 'clap' o 'hvcC' están asociados con la caja de propiedades de elemento compartida, y los tipos de referencia de metadatos prescriptivos, tales como 'irot', 'iovl', 'grid', están asociados con la caja SharedItemOperators.
La figura 9 es un diagrama de bloques esquemático de un dispositivo informático 900 para la implementación de una o varias realizaciones de la invención. El dispositivo informático 900 puede ser un dispositivo, tal como un microordenador, una estación de trabajo o un dispositivo portátil ligero. El dispositivo informático 900 comprende un bus de comunicación conectado a:
- una unidad central de procesamiento 901, tal como un microprocesador, denominada CPU;
- una memoria de acceso aleatorio 902, denominada RAM, para almacenar el código ejecutable del procedimiento de las realizaciones de la invención, así como los registros adaptados para registrar variables y parámetros necesarios para implementar el procedimiento para leer y escribir los manifiestos y/o para codificar el vídeo y/o para leer o generar los datos bajo un determinado formato de archivo, pudiendo expandirse la capacidad de memoria de la misma mediante una RAM opcional conectada a un puerto de expansión, por ejemplo;
- una memoria de sólo lectura 903, denominada ROM, para almacenar programas informáticos para implementar realizaciones de la invención;
- una interfaz de red 904 está, habitualmente, conectada a una red de comunicación sobre la cual los datos digitales a procesar son transmitidos o recibidos. La interfaz de red 904 puede ser una sola interfaz de red, o estar compuesta de un conjunto de diferentes interfaces de red (por ejemplo, interfaces cableadas e inalámbricas, o diferentes clases de interfaces cableadas o inalámbricas). Los datos se escriben en la interfaz de red para su transmisión, o son leídos desde la interfaz de red para su recepción, bajo el control de la aplicación de software que se ejecuta en la CPU 901;
- una interfaz de usuario 9805 para recibir entradas de un usuario o para presentar información a un usuario;
- un disco duro 906, denominado HD;
- un módulo de E/S 907 para recibir/enviar datos desde/hacia dispositivos externos, tales como una fuente de vídeo o una pantalla.
El código ejecutable puede estar almacenado en cualquiera de memoria de sólo lectura 903, en el disco duro 906 o en un medio digital extraíble, tal como, por ejemplo, un disco. Según una variante, el código ejecutable de los programas puede recibirse por medio de una red de comunicación, a través de la interfaz de red 904, para ser almacenado en uno de los medios de almacenamiento del dispositivo de comunicación 900, tal como el disco duro 906, antes de ser ejecutado.
La unidad central de procesamiento 901 está adaptada para controlar y dirigir la ejecución de las instrucciones o partes de código de software del programa o programas, según las realizaciones de la invención, instrucciones que son almacenadas en uno de los mencionados medios de almacenamiento. Después de su encendido, la CPU 901 puede ejecutar instrucciones desde la memoria RAM principal 902 con respecto a una aplicación de software, después de que dichas instrucciones hayan sido cargadas desde el programa ROM 903 o el disco duro (HD) 906, por ejemplo. Dicha aplicación de software, cuando es ejecutada por la CPU 901, hace que se realicen las etapas de un procedimiento, según las realizaciones.
Alternativamente, la presente invención puede ser implementada en hardware (por ejemplo, en forma de circuito integrado de aplicación específica o ASIC).
La presente invención puede estar integrada en un dispositivo, tal como una cámara, un teléfono inteligente o una tableta, que actúa como un controlador remoto para una TV, por ejemplo, para ampliar una zona particular de interés. Puede utilizarse, asimismo, desde los mismos dispositivos para tener una experiencia de navegación personalizada del programa de TV, mediante seleccionar áreas específicas de interés. Otro uso desde estos dispositivos por un usuario es compartir con otros dispositivos conectados algunas partes secundarias seleccionadas de sus vídeos preferidos. Puede, asimismo, ser utilizado en un teléfono inteligente o una tableta para monitorizar lo ocurrido en un área específica de un edificio sometido a vigilancia, siempre que la cámara de vigilancia soporte la parte de generación de esta invención.
Aunque la invención ha sido mostrada y descrita en detalle en los dibujos y en la descripción anterior, dicha ilustración y descripción deben considerarse ilustrativas o a modo de ejemplo, y no restrictivas, no limitándose la invención a la realización dada a conocer. Los expertos en la materia, practicando la invención reivindicada, pueden entender y efectuar otras variaciones de la realización dada a conocer, a partir de un estudio de los dibujos, de la descripción y de las reivindicaciones adjuntas.
En las reivindicaciones, la expresión “comprende” no excluye otros elementos o etapas, y el artículo indefinido “un” o “una” no excluye una pluralidad. Un solo procesador u otra unidad puede cumplir las funciones de varios elementos enunciados en las reivindicaciones. El mero hecho de que diferentes características se enuncien en reivindicaciones dependientes mutuamente diferentes no indica que no se pueda utilizar ventajosamente una combinación de estas características. Ningún signo de referencia en las reivindicaciones deberá considerarse como limitativo del alcance de la invención.
ANEXO
Ejemplo 1: imagen individual
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic' MetaEox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 1;
ItemlnfoEox:
1) item_type = 'hvcl', itemID=l, item_protection_index = 0 (no utilizado),
ítem properties: 'hvcC', 'áspe'
ItemLocationBox:
itemID = 1, extent_count = 1, extent_offset = X,
extent_length = Y; MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Ejemplo 2: imagen individual con rotación
FileTypeBox: major-brand = ’heic', compatible-brands = 'heic' MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 1;
ItemlnfoBox:
1) Ítem type = 'hvcl', itemID=l, item_protection_index = 0 (no utilizado),
item properties: 'hvcC', 'ispe', 'irot' ItemLocationBox:
itemID 1, extent_count = 1, extent offset = X,
extent_length = Y; MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Ejemplo 3: imagen individual con rotación y apertura limpia
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic' MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 1;
ItemlnfoBox:
1) item type = 'hvcl', itemID=l, item_protection Índex = 0 (no utilizado),
item properties: 'hvcC', 'ispe', 'clap', 'irot' ItemLocationBox:
itemID = 1, extent count = 1, extent offset = X, extent length Y; MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Ejemplo 4: múltiples imágenes con las mismas dimensiones pero diferentes configuraciones HEVC
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic' MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 1;
ItemlnfoBox:
1) item_type = 'hvcl', itemID=l,
item_protection_index = 0 (no utilizado),
propiedades de elemento: 'hvcC'
índices de propiedades de elemento: o
2) item_type = 'hvcl', itemID=2,
item_protection_index = 0 (no utilizado),
propiedades de elemento: 'hvcC '
índices de propiedades de elemento: o
3) item_type = 'hvcl', itemID=3,
item_protection_index = 0 (no utilizado),
propiedades de elemento: 'hvcC '
índices de propiedades de elemento: 0
4) item_type = 'hvcl', itemID=4,
item_protection_index = O (no utilizado),
propiedades de elemento: 'hvcC '
índices de propiedades de elemento: 0
SharedltemPropertiesBox:
0) 'ispe'
ItemLocationBox:
itemlD = 1, extent_count = 1, extent_offset = X,
extent_length = Y;
itemlD = 2, extent_count = 1, extent_offset = P0,
extent_length = Q0;
itemlD = 3, extent_count = 1, extent_offset = Pl,
extent_length = Ql;
itemlD = 4, extent count = 1, extent offset = P2,
extent_length = Q2; MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Imagen HEVC (a desplazamiento de archivo P1, con longitud Q1)
Imagen HEVC (a desplazamiento de archivo P2, con longitud Q2)
Imagen HEVC (a desplazamiento de archivo P3. con longitud Q31
Ejemplo 5: múltiples imágenes con la misma configuración HEVC y dimensiones
Figure imgf000046_0001
Ejemplo 6: múltiples imágenes con la misma configuración HEVC y dimensiones pero diferentes rotaciones
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic' MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemlD = 1;
ItemlnfoBox:
1) item_type = 'hvcl', itemID=l,
item_protection_index = O (no utilizado),
propiedades de elemento: 'irot'
índices de propiedades de elemento: 0, 1
2) item_type = 'hvcl', itemID=2, item_protection_index = 0 (no utilizado),
propiedades de elemento: 'irot'
índices de propiedades de elemento: o , 1
3) item_type = 'hvcl', itemID=3, item_protection_index = 0 (no Utilizado),
propiedades de elemento: 'irot'
índices de propiedades de elemento: o , 1
4) Ítem type = 'hvcl', itemID=4, item_protection_index = 0 (no utilizado),
propiedades de elemento: 'irot'
índices de propiedades de elemento: 0 , 1 SharedltemPropertiesBox:
0) ’hvcC'
1) ’ispe'
ItemLocationBox:
itemID = 1, extent_count = 1, extent_offset = X, extent_length = Y;
itemID = 2, extent_count = 1, extent_offset = P0, extent_length = QO;
itemID = 3, extent_count = 1, extent_offset = Pl, extent_length = Ql;
itemID = 4, extent_count = 1, extent_offset = P2, extent_length = Q2; MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Imagen HEVC (a desplazamiento de archivo P1, con longitud Q1)
Imagen HEVC (a desplazamiento de archivo P2, con longitud Q2)
Imagen HEVC (a desplazamiento de archivo P3. con longitud Q31
Ejemplo 7: múltiples imágenes en una cuadrícula
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic' MetaBox: (recipiente)
HandlerEox: hdlr = ’pict'
PrimaryltemBox: itemID = 5;
ItemlnfoBox:
1) item_type = 'hvcl', itemID=l, item_protection_index = 0 (no Utilizado),
Indices de propiedades de elemento: 0 , i
2) item_type = 'hvcl', itemID=2, item_protection_index = 0 (no Utilizado),
índices de propiedades de elemento: o, i
3) item_type = 'hvcl', itemID=3, item_protection_index = 0 (no Utilizado),
índices de propiedades de elemento: o , j-4) item_type = 'hvcl', itemID=4, item_protection_index = 0 (no utilizado),
índices de propiedades de elemento: 1
5) item_type = ’grid', itemID=5, item_protection_index = 0 (no utilizado),
propiedades de elemento: ’grid'
SharedltemPropertiesBox:
0) 'hvcC'
1) ’ispe'
ItemLocationBox:
itemID = 1, extent_count = 1, extent_offset = X,
extent_length = Y;
itemID = 2, extent_count — 1, extent_offset — PO extent_length = QO;
itemID = 3, extent_count = 1, extent_offset = P1
extent_length = Ql;
itemID = 4, extent_count = 1, extent_offset = P2
extent_length = Q2;
ItemReferenceBox:
type='dimg', fromID=5, toID=l,2,3,4;
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Imagen HEVC (a desplazamiento de archivo P1, con longitud Q1) Imagen HEVC (a desplazamiento de archivo P2, con longitud Q2) Imagen HEVC (a desplazamiento de archivo P3, con longitud Q3)
Ejemplo 8: múltiples imágenes en una cuadrícula rotada
5
FileTypeBox: major-brand = ’heic', compatible-brands = 1heic' MetaBox: (recipiente)
HandlerBox: hdlr = 'pict’
PrimaryltemBox: itemID = 5 ;
ItemlnfoBox:
1) item_type = ’hvcl’, itemID=l,
Ítem protection Índex = 0 (no Utilizado),
índices de propiedades de elemento: o , l
2) item_type = ’hvcl', itemID=2,
Ítem protection índex = 0 (no Utilizado),
índices de propiedades de elemento: 0 , 1
3) item_type = 'hvcl', itemID=3, item_protection_index = 0 (no Utilizado),
índices de propiedades de elemento: o , i
4) item_type = ’hvcl’, itemID=4/ item_protection_index = 0 (no Utilizado),
índices de propiedades de elemento: o , i
5) i t e m _ t y p e = ’ g r i d ’ , i te m ID = 5 ,
i t e m _ p r o t e c t i o n _ in d e x = 0 (no Utilizado),
propiedades de elemento: 1 g r i d ' , ' i r o t ' SharedltemPropertiesBox:
0) 'hvcC'
1) ’ispe'
ItemLocationBox:
itemID = i. extent count = 1, extent offset x,
extent length = Y;
itemID = 2, extent count = 1, extent offset P0,
extent length = QO;
itemID - 3, extent count = 1, extent offset Pl,
extent length = Ql;
itemID = 4, extent count = 1, extent offset P2,
extent_length = Q2;
ItemReferenceBox:
type=,dimg', fromID=5, toID=l,2,3,4;
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Imagen HEVC (a desplazamiento de archivo P1, con longitud Q1)
Imagen HEVC (a desplazamiento de archivo P2, con longitud Q2)
Imagen HEVC (a desplazamiento de archivo P3, con longitud Q3)
Ejemplo 9: múltiples imágenes con superposición
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic MetaBox : (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 3;
ItemlnfoBox:
1) item_type = 1hvcl’, itemID=l, item_protection_index = 0 (no utilizado),
índices de propiedades de elemento: o , l
2) item_type — 'hvcl', itemID=2, item_protection_index = 0 (no Utilizado),
j q índices de propiedades de elemento: o , i
3) item_type = 'iovl1, itemID=3,
item_protection_index = 0 (no Utilizado),
propiedades de elemento: 'iovl'
SharedltemPropertiesBox:
0) 1hvcC'
1) 'ispe'
ItemLocationBox:
itsmlD = 1, extent_count = 1, extent_offset x,
extent length = Y;
itemID = 2, extent_count = 1, extent_offset PO,
extent_length = Q0;
ItemReferenceBox:
type=,dimg’/ fromID=3, toID=l,2;
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Imagen HEVC (a desplazamiento de archivo P1, con longitud Q1)
Ejemplo 10: una imagen y su versión rotada
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic' MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 3;
ItemlnfoBox:
1) item_type = 'hvcl', itemID=l, item_protection_index = 0 (no Utilizado),
propiedades de elemento: 'hvcC ', 'ispe'
2) item_type = 'irot', itemID=2/ item_protection_index = 0 (no Utilizado),
propiedades de elemento: 1irot'
ItemLocationBox:
itemID = 1, extent_count = 1, extent_offset = X,
extent_length = Y;
ItemReferenceBox:
type=1dimg', fromID=2, toID=l;
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Ejemplo 11: imágenes teseladas
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic' MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 1;
ItemlnfoBox:
1) item_type = 'hvcl', itemID=l, item_protection_index = 0 (no Utilizado),
Índices de propiedades de elemento: o
propiedades de elemento: 'ispe' (w,h)
2) item_type = 'hvtl', itemID=2, item_protection_index = 0 (no Utilizado),
índices de propiedades de elemento: o , 1
propiedades de elemento: 'rloc'
3) item_type = 'hvtl', itemID=3, item_protection_index = 0 (no Utilizado),
índices de propiedades de elemento: 0 , 1
propiedades de elemento: 'rloc '
4) Ítem type = 'hvtl', itemID=4, item_protection_index = 0 (no utilizado),
índices de propiedades de elemento: o , 1
propiedades de elemento: 'rloc'
5) item_type = 'hvtl', itemID=5, item_protection_index = 0 (no Utilizado),
índices de propiedades de elemento: o , 1
propiedades de elemento: 'rloc '
SharedltemPropertiesBox:
0) 'hvcC'
1) 'ispe' (Wt, Ht)
ItemLocationBox:
itemID = i, extent count=l, extent_offset=X,
extent length=Q0+Ql+Q2+Q3;
itemID - 2, extent count=l, extent_offset=X,
extent length=Q0;
itemID = 3, extent count=l, extent_offset=X+Q0,
extent length=Ql;
itemID = 4, extent count=l, extent_offset=X+Q0+Ql,
extent length=Q2;
itemID = 4, extent count=l, extent_offset=X+Q0+Ql+Q2,
extent_length=Q3;
ItemReferenceBox:
type='tbas'/ fromID=2, toID=l;
type='tbas', fromID=3, toID=l;
type=,tbas'/ fromID=4, toID=l;
type='tbas', fromID=5, toID=l;
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Q0+Q1+Q2+Q3)
Ejemplo 12: imagen auxiliar con la misma configuración HEVC y dimensiones que la imagen maestra
FileTypeBox: major-brand = 'heic', compatible-brands = 'heic' MetaBox : (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 1;
ItemlnfoBox:
1) item_type = 'hvcl', itemID=l,
item protection índex = 0 (no utilizado),
índices de propiedades de elemento: 0 , 1
2) item_type = 'hvcl’, itemID=2,
item_protection_index = 0 (no utilizado),
item properties índices: 0, 1
propiedades de elemento: 'auxc'
SharedltemPropertiesBox:
0) ’hvcC'
1) 'ispe'
ItemLocationBox:
itemID = 1, extent_count = 1, extent_offset = X,
extent_length = Y;
itemID = 2, extent_count = 1, extent_offset = P,
extent_length = Q;
ItemReferenceBox:
type='auxl’, fromID=2, toID=l;
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Imagen HEVC (a desplazamiento de archivo P, con longitud Q)
Ejemplo 13: imagen con descripción de muestras secundarias
FileTypeBox: major-brand = ’heic', compatible-brands = 'heic' MetaBox: (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 1;
ItemlnfoBox:
1) item_type = 'hvcl', itemID=l,
item_protection_index = 0 (no utilizado),
propiedades de elemento: 'hvcC ', 'ispe', 'subs' ItemLocationBox:
itemID = 1, extent_count = 1, extent_offset = X,
extent length = Y;
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Ejemplo 14: configuración HEVC compartida entre pista y elemento
FileTypeBox: major-brand = 'heic', compatible-brands = ’heic, mp41' MetaBox : (recipiente)
HandlerBox: hdlr = 'pict'
PrimaryltemBox: itemID = 1;
ItemlnfoBox:
1) item type = 'hvcl', itemID=l,
item_protection_index = 0 (no utilizado),
propiedades de elemento: 'sder' (track: 1, sample_desc_index: 1), 'á s pe '
ItemLocationEox:
itemID = 1, extent_count = 1, extent_offset = X,
extent_length = Y; Movie Box: (recipiente) Cabecera de película, pistas (incluyendo pista 1 con, por lo menos 1 dése, de muestra), etc., según requerido por MP4
MediaDataBox:
Imagen HEVC (a desplazamiento de archivo X, con longitud Y)
Datos multimedia requeridos por la película (algunos pueden ser compartidos con datos de imagen)

Claims (6)

REIVINDICACIONES
1. Procedimiento de generación de un archivo multimedia en base a una o varias imágenes fijas, comprendiendo el archivo multimedia una parte de datos y una parte de metadatos, estando organizados los metadatos en base a una jerarquía de cajas conforme al estándar ISOBMFF, comprendiendo el procedimiento:
- generar una o varias entradas en una caja de información de elemento, para describir cada una de la una o varias imágenes fijas como uno o varios elementos, estando identificados cada uno del uno o varios elementos por un identificador de elemento;
- generar una caja de propiedades de elemento compartida, que comprende una lista indexada de cajas de propiedades que describen propiedades relacionadas con la una o varias imágenes fijas, una propiedad que comprende parámetros de visualización u operadores de transformación;
- generar metadatos de asociación para asociar un identificador de elemento con uno o varios índices de caja de propiedades en la caja de propiedades de elemento compartida;
- generar el archivo multimedia que incluye un flujo de bits que representa la una o varias imágenes fijas en la parte de datos (110) del archivo multimedia; y la una o varias entradas en una caja de información de elemento, la caja de propiedades de elemento compartida y los metadatos de asociación en la parte de metadatos (100) del archivo multimedia.
2. Procedimiento, según la reivindicación 1, en el que las propiedades se aplican a la una o varias imágenes fijas siguiendo el orden en el que las correspondientes cajas de propiedades se asocian con el identificador de elemento.
3. Procedimiento, según cualquiera de las reivindicaciones 1 y 2, en el que, por lo menos, una de las imágenes fijas está relacionada con una secuencia de vídeo, comprendiendo una de las propiedades asociadas con la caja de información de elemento que describe la, por lo menos, una de las imágenes fijas, uno o varios parámetros de inicialización para hacer referencia a la información de inicialización de dicha secuencia de vídeo.
4. Dispositivo para encapsular un flujo de bits codificado que representa la una o varias imágenes fijas, configurado para implementar un procedimiento, según cualquiera de las reivindicaciones 1 a 3.
5. Producto de programa informático que comprende instrucciones para implementar un procedimiento, según cualquiera de las reivindicaciones 1 a 3, cuando el programa es cargado y ejecutado por un aparato programable.
6. Medio de almacenamiento de información no transitorio legible por un ordenador o un microprocesador, que almacena instrucciones de un programa informático, para implementar un procedimiento, según cualquiera de las reivindicaciones 1 a 3, cuando el programa es cargado y ejecutado por el ordenador o microprocesador.
ES16727713T 2015-06-16 2016-06-08 Encapsulación de datos de imagen Active ES2943233T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1510608.1A GB2539461B (en) 2015-06-16 2015-06-16 Image data encapsulation
PCT/EP2016/063035 WO2016202664A1 (en) 2015-06-16 2016-06-08 Image data encapsulation

Publications (1)

Publication Number Publication Date
ES2943233T3 true ES2943233T3 (es) 2023-06-12

Family

ID=53784855

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16727713T Active ES2943233T3 (es) 2015-06-16 2016-06-08 Encapsulación de datos de imagen

Country Status (13)

Country Link
US (3) US10645379B2 (es)
EP (2) EP4135336A1 (es)
JP (4) JP2018522469A (es)
KR (2) KR102166877B1 (es)
CN (2) CN107750462B (es)
BR (1) BR112017025498A2 (es)
CA (2) CA3192369A1 (es)
ES (1) ES2943233T3 (es)
GB (1) GB2539461B (es)
MX (2) MX2017015444A (es)
RU (2) RU2690167C1 (es)
SG (1) SG10202002513XA (es)
WO (1) WO2016202664A1 (es)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2539461B (en) 2015-06-16 2020-01-08 Canon Kk Image data encapsulation
WO2017134110A1 (en) * 2016-02-02 2017-08-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Scene section and region of interest handling in video streaming
EP3293981A1 (en) * 2016-09-08 2018-03-14 Koninklijke KPN N.V. Partial video decoding method, device and system
WO2018123608A1 (ja) * 2016-12-27 2018-07-05 ソニー株式会社 画像処理装置および方法
GB2560921B (en) * 2017-03-27 2020-04-08 Canon Kk Method and apparatus for encoding media data comprising generated content
CN109089162B (zh) * 2017-04-08 2021-05-28 腾讯科技(深圳)有限公司 一种图片文件处理方法及系统
EP3777221A1 (en) * 2018-04-05 2021-02-17 Canon Kabushiki Kaisha Method and apparatus for encapsulating images in a file
GB2572947A (en) * 2018-04-05 2019-10-23 Canon Kk Method and apparatus for encapsulating images in a file
GB2585760B (en) * 2018-06-06 2022-04-20 Canon Kk Method, device, and computer program for transmitting media content
BR112020026618A2 (pt) 2018-06-26 2021-03-30 Huawei Technologies Co., Ltd. Projetos de sintaxe de alto nível para codificação de nuvem de pontos
JP2022501891A (ja) * 2018-09-20 2022-01-06 ノキア テクノロジーズ オーユー 人工知能についての装置及び方法
JP7267703B2 (ja) * 2018-09-27 2023-05-02 キヤノン株式会社 画像データ格納装置、画像データ格納方法、及び、プログラム
KR102106716B1 (ko) * 2018-11-15 2020-05-04 전자부품연구원 타일 기반 스트리밍을 위한 분산 트랜스코딩 방법 및 시스템
JP7391963B2 (ja) * 2018-12-10 2023-12-05 ノキア テクノロジーズ オーユー コンテナファイルフォーマットで情報をシグナリングするための装置及び方法
JP7303625B2 (ja) 2018-12-18 2023-07-05 キヤノン株式会社 画像ファイル生成装置、画像ファイル生成方法、及びプログラム
WO2020130331A1 (ko) * 2018-12-21 2020-06-25 (주)소프트제국 블록체인에서 노드들간 블록 및 전자 문서를 공유 및 검증하는 방법
JPWO2020137854A1 (ja) * 2018-12-28 2021-11-18 ソニーグループ株式会社 情報処理装置および情報処理方法
GB2582155B (en) * 2019-03-12 2023-12-27 Canon Kk Method, device, and computer program for signaling available portions of encapsulated media content
GB2585052B (en) * 2019-06-26 2023-07-26 Canon Kk Method and apparatus for encapsulating panorama images in a file
CN114072847A (zh) * 2019-07-01 2022-02-18 佳能株式会社 图像文件创建设备、图像文件创建方法和程序
JP7370047B2 (ja) 2019-10-29 2023-10-27 株式会社ニッキ エンジンの失火診断検出方法
JP7442302B2 (ja) * 2019-11-22 2024-03-04 キヤノン株式会社 データ処理装置およびその制御方法、プログラム
GB2590435B (en) * 2019-12-17 2023-12-20 Canon Kk Method, device, and computer program for improving encapsulation of media content
CN115211130B (zh) 2020-02-21 2024-04-09 抖音视界有限公司 基于条带和片图片分割的信令通知的处理视频数据的方法
GB2593945A (en) * 2020-04-06 2021-10-13 Canon Kk Method and apparatus for encapsulating region related annotation in an image file
EP4131961A4 (en) * 2020-04-13 2023-09-13 LG Electronics, Inc. DEVICE FOR TRANSMITTING POINT CLOUD DATA, METHOD FOR TRANSMITTING POINT CLOUD DATA, DEVICE FOR RECEIVING POINT CLOUD DATA AND METHOD FOR RECEIVING POINT CLOUD DATA
GB2596325B (en) * 2020-06-24 2023-04-19 Canon Kk Method and apparatus for encapsulating annotated region in ISOBMFF tracks
WO2022135508A1 (en) * 2020-12-23 2022-06-30 Beijing Bytedance Network Technology Co., Ltd. Video decoder initialization information constraints
CN113891015A (zh) * 2021-09-16 2022-01-04 平安养老保险股份有限公司 基于人工智能的图像处理方法、装置和计算机设备

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633685B1 (en) * 1998-08-05 2003-10-14 Canon Kabushiki Kaisha Method, apparatus, and storage media for image processing
JP2000200283A (ja) * 1999-01-06 2000-07-18 Canon Inc 画像処理システム、画像処理装置、画像処理方法及び記憶媒体
JP3745179B2 (ja) * 1999-01-12 2006-02-15 キヤノン株式会社 情報処理装置及びその制御方法及び記憶媒体
JP2000209580A (ja) * 1999-01-13 2000-07-28 Canon Inc 画像処理装置およびその方法
US20020120596A1 (en) * 2001-02-24 2002-08-29 Matthew Gershoff Content store with inheritance
US7480382B2 (en) * 2003-09-30 2009-01-20 Microsoft Corporation Image file container
FR2868896B1 (fr) * 2004-04-13 2008-03-14 Canon Kk Procede et dispositif de controle d'acces a un document numerique partage dans un reseau de communication de type poste a poste
US7512878B2 (en) * 2004-04-30 2009-03-31 Microsoft Corporation Modular document format
JP4368748B2 (ja) * 2004-06-28 2009-11-18 株式会社リコー コンテンツの編集方法、文書ファイル構造、情報処理装置およびシステム並びにプログラム
EP1932315A4 (en) 2005-09-01 2012-05-09 Nokia Corp METHOD FOR INTEGRATING SVG CONTENT INTO ISO MULTIMEDIA FILE FORMAT FOR PROGRESSIVE DOWNLOAD AND CONTINUOUS TRANSMISSION OF RICH MULTIMEDIA CONTENT
JP2007109329A (ja) * 2005-10-14 2007-04-26 Canon Inc 画像データ記録装置、画像データ再生装置、画像データ記録方法、プログラム及び記録媒体
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US20080007650A1 (en) * 2006-06-23 2008-01-10 Broadcom Corporation, A California Corporation Processing of removable media that stores full frame video & sub-frame metadata
EP1887513A3 (en) * 2006-08-08 2010-04-07 GCS Research LLC Digital watermarking for geospatial images
US8775474B2 (en) * 2007-06-29 2014-07-08 Microsoft Corporation Exposing common metadata in digital images
JP4861302B2 (ja) * 2007-12-26 2012-01-25 オリンパスイメージング株式会社 画像ファイル作成装置、画像ファイル作成方法
KR20090088772A (ko) * 2008-02-15 2009-08-20 삼성전자주식회사 슬라이드 쇼를 위한 영상파일을 생성 및 재생하기 위한시스템 및 방법
US8406531B2 (en) 2008-05-15 2013-03-26 Yahoo! Inc. Data access based on content of image recorded by a mobile device
TWI473016B (zh) * 2008-07-16 2015-02-11 Sisvel Internat S A 用以處理多視圖視訊位元串流之方法與裝置及電腦可讀媒體
US20100191765A1 (en) * 2009-01-26 2010-07-29 Raytheon Company System and Method for Processing Images
RU2622621C2 (ru) * 2009-11-04 2017-06-16 Амотек Ко., Лтд. Система и способ для потоковой передачи воспроизводимого контента
JP5605608B2 (ja) 2010-03-30 2014-10-15 ソニー株式会社 送信装置及び方法、並びにプログラム
EP2596458B1 (en) * 2010-07-21 2018-02-21 MBDA UK Limited Image processing method
EP2614653A4 (en) 2010-09-10 2015-04-15 Nokia Corp METHOD AND APPARATUS FOR ADAPTIVE CONTINUOUS DIFFUSION
KR20140110071A (ko) * 2011-05-27 2014-09-16 돌비 레버러토리즈 라이쎈싱 코오포레이션 변하는 레벨들의 메타데이터을 포함하는 컬러 관리를 제어하기 위한 스케일러블 시스템들
WO2013042766A1 (ja) 2011-09-22 2013-03-28 オリンパス株式会社 画像処理装置、画像処理システム、及び画像読出し装置
US20130195172A1 (en) * 2012-01-30 2013-08-01 Qualcomm Incorporated Method of coding video and storing video content
US20140098868A1 (en) 2012-10-04 2014-04-10 Qualcomm Incorporated File format for video data
US11290510B2 (en) * 2012-11-29 2022-03-29 Samsung Electronics Co., Ltd. Method and apparatus for encapsulation of motion picture experts group media transport assets in international organization for standardization base media files
KR101965374B1 (ko) * 2013-01-18 2019-04-03 캐논 가부시끼가이샤 비디오 데이터의 재생 방법 및 비디오 데이터를 재생하기 위한 디바이스
WO2015008686A1 (ja) * 2013-07-19 2015-01-22 ソニー株式会社 ファイル生成装置および方法、並びにコンテンツ再生装置および方法
GB2519746B (en) * 2013-10-22 2016-12-14 Canon Kk Method, device and computer program for encapsulating scalable partitioned timed media data
US9648348B2 (en) 2013-10-23 2017-05-09 Qualcomm Incorporated Multi-layer video file format designs
WO2015082763A1 (en) 2013-12-02 2015-06-11 Nokia Technologies Oy Video encoding and decoding
EP3092772B1 (en) * 2014-01-07 2019-07-31 Nokia Technologies Oy Media encapsulating and decapsulating
GB2524726B (en) * 2014-03-25 2018-05-23 Canon Kk Image data encapsulation with tile support
GB2531271A (en) * 2014-10-14 2016-04-20 Nokia Technologies Oy An apparatus, a method and a computer program for image sequence coding and decoding
WO2016097482A1 (en) * 2014-12-19 2016-06-23 Nokia Technologies Oy Media encapsulating and decapsulating
GB2535453A (en) * 2015-02-10 2016-08-24 Canon Kk Method, device, and computer program for encapsulating hevc layered media data
US9756268B2 (en) * 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US9965824B2 (en) * 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
GB2539461B (en) 2015-06-16 2020-01-08 Canon Kk Image data encapsulation

Also Published As

Publication number Publication date
US20180352219A1 (en) 2018-12-06
CN107750462A (zh) 2018-03-02
JP2018522469A (ja) 2018-08-09
MX2017015444A (es) 2018-03-08
KR20190123806A (ko) 2019-11-01
US11985302B2 (en) 2024-05-14
RU2719368C2 (ru) 2020-04-17
US10645379B2 (en) 2020-05-05
GB201510608D0 (en) 2015-07-29
JP7293312B2 (ja) 2023-06-19
JP2023120249A (ja) 2023-08-29
KR102038783B1 (ko) 2019-10-30
CA3192369A1 (en) 2016-12-22
US20240179297A1 (en) 2024-05-30
EP3311585A1 (en) 2018-04-25
RU2019115882A (ru) 2019-07-01
JP2021057899A (ja) 2021-04-08
GB2539461A (en) 2016-12-21
MX2021002494A (es) 2021-05-27
KR20180016519A (ko) 2018-02-14
JP7039668B2 (ja) 2022-03-22
JP2022009845A (ja) 2022-01-14
CN112153386A (zh) 2020-12-29
CN107750462B (zh) 2020-10-09
KR102166877B1 (ko) 2020-10-16
US20200228795A1 (en) 2020-07-16
SG10202002513XA (en) 2020-05-28
RU2019115882A3 (es) 2019-10-08
BR112017025498A2 (pt) 2018-08-07
CA2988476A1 (en) 2016-12-22
GB2539461B (en) 2020-01-08
EP3311585B1 (en) 2023-03-01
WO2016202664A1 (en) 2016-12-22
EP4135336A1 (en) 2023-02-15
RU2690167C1 (ru) 2019-05-31

Similar Documents

Publication Publication Date Title
ES2943233T3 (es) Encapsulación de datos de imagen
JP7367130B2 (ja) ファイルを生成する方法、装置、プログラム、ならびにファイルを処理することにより画像を再生する方法、装置、プログラム
US11876994B2 (en) Description of image composition with HEVC still image file format
GB2573939A (en) Image data encapsulation