ES2971545T3 - Señalización de formato de archivo de mitigación de errores en una codificación de vídeo dependiente del área de visualización basada en flujos de bits de subimágenes - Google Patents
Señalización de formato de archivo de mitigación de errores en una codificación de vídeo dependiente del área de visualización basada en flujos de bits de subimágenes Download PDFInfo
- Publication number
- ES2971545T3 ES2971545T3 ES19716702T ES19716702T ES2971545T3 ES 2971545 T3 ES2971545 T3 ES 2971545T3 ES 19716702 T ES19716702 T ES 19716702T ES 19716702 T ES19716702 T ES 19716702T ES 2971545 T3 ES2971545 T3 ES 2971545T3
- Authority
- ES
- Spain
- Prior art keywords
- track
- video
- subpicture
- sub
- subimage
- 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
Links
- 230000001419 dependent effect Effects 0.000 title abstract description 37
- 230000011664 signaling Effects 0.000 title description 19
- 230000000116 mitigating effect Effects 0.000 title description 2
- 230000004927 fusion Effects 0.000 claims abstract description 43
- 238000013507 mapping Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 104
- 230000008569 process Effects 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012800 visualization Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 abstract description 33
- 230000005236 sound signal Effects 0.000 abstract 1
- 230000033001 locomotion Effects 0.000 description 190
- 239000013598 vector Substances 0.000 description 89
- 239000000523 sample Substances 0.000 description 67
- 230000006870 function Effects 0.000 description 34
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 33
- 238000010586 diagram Methods 0.000 description 24
- 238000013139 quantization Methods 0.000 description 23
- 238000007906 compression Methods 0.000 description 19
- 230000006835 compression Effects 0.000 description 18
- 230000000007 visual effect Effects 0.000 description 16
- 230000002123 temporal effect Effects 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 239000012634 fragment Substances 0.000 description 9
- 238000007499 fusion processing Methods 0.000 description 9
- 238000005192 partition Methods 0.000 description 9
- 230000002829 reductive effect Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000001914 filtration Methods 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 6
- 239000013074 reference sample Substances 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 210000003128 head Anatomy 0.000 description 3
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 101150114886 NECTIN1 gene Proteins 0.000 description 1
- 102100023064 Nectin-1 Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000003776 cleavage reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000007017 scission Effects 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 235000019615 sensations Nutrition 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Se divulga un mecanismo de codificación de vídeo para codificación de vídeo dependiente del punto de vista. El mecanismo incluye mapear una señal de video esférica, unida a partir de múltiples señales de video direccionales, en una pluralidad de señales de video de subimágenes, cada una de las cuales contiene una secuencia de subimágenes. La pluralidad de señales de vídeo de subimagen se codifican como una pluralidad de flujos de bits de subimagen. La pluralidad de flujos de bits de subimagen se componen en una pluralidad de pistas de subimagen para que sean compatibles con una función de fusión de múltiples flujos de bits para la reconstrucción de la señal de vídeo esférica. Una indicación fusionable a nivel de pista está codificada dentro de un cuadro de nivel de pista para las pistas de subimagen, lo que indica que las pistas de subimagen son compatibles con la función de fusión de flujos de bits múltiples para la reconstrucción de la señal de vídeo esférica. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Señalización de formato de archivo de mitigación de errores en una codificación de vídeo dependiente del área de visualización basada en flujos de bits de subimágenes
Campo técnico
La presente descripción se refiere generalmente a la codificación de vídeo para la realidad virtual (RV) y se refiere específicamente a la señalización de mecanismos de prevención de errores cuando se codifica un flujo de bits de imágenes de RV como una pluralidad de flujos de bits de subimágenes para admitir una codificación de vídeo dependiente del área de visualización. La invención se refiere en particular a un método implementado en un dispositivo de codificación de vídeo, un medio no transitorio legible por ordenador, así como un dispositivo de codificación de vídeo.
Antecedentes
La cantidad de datos de vídeo necesarios para representar incluso un vídeo relativamente corto puede ser sustancial, lo que puede dar como resultado dificultades cuando los datos se van a enviar por flujo continuo o comunicar de cualquier otra manera a través de una red de comunicaciones con capacidad de ancho de banda limitada. Por lo tanto, los datos de vídeo por lo general se comprimen antes de comunicarse a través de redes de telecomunicaciones modernas. El tamaño de un vídeo también podría ser un problema cuando el vídeo se almacena en un dispositivo de almacenamiento porque los recursos de memoria pueden ser limitados. Los dispositivos de compresión de vídeo a menudo usan software y/o hardware en la fuente para codificar los datos de vídeo antes de su transmisión o almacenamiento, disminuyendo de esta manera la cantidad de datos necesarios para representar imágenes de vídeo digitales. A continuación, los datos comprimidos se reciben en el destino mediante un dispositivo de descompresión de vídeo que decodifica los datos de vídeo. Con recursos de red limitados y demandas cada vez mayores de mayor calidad de vídeo, son deseables técnicas mejoradas de compresión y descompresión que mejoren la relación de compresión con poco o ningún sacrificio en la calidad de la imagen.
En HANNUKSELA, M. M. (NOKIA): “ [OMAF] Defects and proposed fixes” , 121. REUNION MPEG; 22-1-2018 - 26-1 2018; GWANGJU; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), n.° m42066, 17 de enero de 2018 (2018-01-17), XP030070408, se describe una fusión de subimágenes de señales de vídeo esférico.
En “ Technology under Consideration on sub-picture composition track grouping for OMAF” , 120. REUNIÓN MPEG; 23-10-2017 - 27-10-2017; MACAO; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), n.° N17279, 18 de diciembre de 2017 (2017-12-18), XP030023939, se describen algunas correcciones a la fusión de subimágenes de señales de vídeo esférico.
Resumen
La presente invención está definida por las reivindicaciones independientes, y en las reivindicaciones dependientes adjuntas se enumeran otras realizaciones y ventajas. A continuación, partes de la descripción y de los dibujos que se refieren a realizaciones antiguas que no comprenden necesariamente todas las características para implementar realizaciones de la invención reivindicada no se han representado como realizaciones de la invención, sino como ejemplos que son útiles para comprender las realizaciones de la invención. Según la invención, la descripción incluye un método implementado en un dispositivo de codificación de vídeo. El método comprende mapear, por parte del procesador, una señal de vídeo esférico, confeccionada a partir de múltiples señales direccionales de vídeo, en una pluralidad de señales de vídeo de subimágenes que contienen cada una, una secuencia de subimágenes. El método también comprende codificar, por parte del procesador, la pluralidad de señales de vídeo de subimágenes como una pluralidad de flujos de bits de subimágenes y componer, por parte del procesador, la pluralidad de flujos de bits de subimágenes en una pluralidad de pistas de subimágenes que son compatibles con una función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico o de una parte de la misma. El método también comprende codificar, por parte del procesador, una o más indicaciones fusionables a nivel de pista que están dentro de una caja a nivel de pista para cada una de las pistas de subimágenes, indicando las indicaciones fusionables a nivel de pista que las pistas de subimágenes son compatibles con la función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico o de una parte de la misma. El método también comprende transmitir, por parte de un transmisor del dispositivo de codificación de vídeo, un conjunto de la pluralidad de pistas de subimágenes que contiene un conjunto de la pluralidad de flujos de bits de subimágenes y las indicaciones fusionables a nivel de pista al decodificador para admitir una decodificación y una visualización de un área de visualización de vídeo de realidad virtual. Un flujo de imágenes de realidad virtual (RV) se puede escindir en múltiples flujos de subimágenes para una transmisión selectiva al usuario. Los flujos de subimágenes pueden restringirse durante la interpredicción para que sean completamente autorreferenciales y se sincronicen temporalmente con el fin de evitar errores de decodificación cuando algunos flujos se omitan o se envíen a distintas resoluciones. Esto permite fusionar los flujos en el decodificador mediante un proceso de fusión ligero. En la presente invención se usa una señalización a nivel de pista (p. ej., cualquier caja dentro de una caja de películas en formato de archivo Base Media File Format de la Organización Internacional de Normalización [ISOBMFF]) para indicar al decodificador que las diversas pistas de flujo de bits de subimágenes son compatibles con el proceso de fusión ligero. Por consiguiente, en el proceso de fusión ligero, los flujos de bits de subimágenes se pueden fusionar en el decodificador usando información de cabecera sin necesidad de alterar los resultados de codificación a nivel de bloque para tener en cuenta los artefactos relacionados con la interpredicción que se producen debido a vectores de movimiento que atraviesan los límites de flujo de subimágenes.
Según la invención, las pistas de subimágenes son compatibles con la función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico cuando cada pista de subimágenes es apta para fusionarse con otras pistas de subimágenes a fin de generar un único flujo de bits de vídeo usando un proceso de reescritura de flujo de bits ligero que no conlleva cambiar unos resultados de codificación a nivel de bloque.
Según la invención, las indicaciones fusionables a nivel de pista incluyen un indicador track_mergable_with_other_video_track que, cuando se establece, indica que el flujo de bits de subimágenes portado en una correspondiente pista de subimágenes puede fusionarse con uno o más de otros de la pluralidad de flujos de bits de subimágenes portados en una o más de otras de la pluralidad de pistas de subimágenes para generar un único flujo de bits de vídeo sin que haya un desajuste de decodificación al reescribir únicamente datos de cabecera de los flujos de bits.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista se codifican en una caja de cabecera de pista que está en una caja de pista para cada pista que contiene uno de los flujos de bits de subimágenes.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista se codifican en una caja de grupo de pistas que describe unas asociaciones entre las pistas que incluyen los flujos de bits de subimágenes.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista se codifican en una caja de medios que describe una información de medios de pista.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista, cuando se establecen, indican además que un procesamiento paralelo de frente de onda se desactiva poniendo un entropy_coding_sync_enabled_flag a cero en unos conjuntos de parámetros de imagen (PPS) para las pistas de subimágenes que incluyen los flujos de bits de subimágenes.
La invención también proporciona un medio no transitorio legible por ordenador que comprende un producto de programa informático para ser usado por un dispositivo de codificación de vídeo, comprendiendo el producto de programa informático instrucciones ejecutables por ordenador que están almacenadas en el medio no transitorio legible por ordenador, de manera que, cuando son ejecutadas por un procesador, hacen que el dispositivo de codificación de vídeo realice el método de cualquiera de los aspectos anteriores.
La invención proporciona además un dispositivo de codificación de vídeo que comprende un procesador que está configurado para mapear una señal de vídeo esférico, confeccionada a partir de múltiples señales direccionales de vídeo, en una pluralidad de señales de vídeo de subimágenes que contienen cada una una secuencia de subimágenes. El procesador también está configurado para codificar la pluralidad de señales de vídeo de subimágenes como una pluralidad de flujos de bits de subimágenes y componer la pluralidad de flujos de bits de subimágenes en una pluralidad de pistas de subimágenes que son compatibles con una función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico o de una parte de la misma. El procesador también está configurado para codificar una o más indicaciones fusionables a nivel de pista que están dentro de una caja a nivel de pista para cada una de las pistas de subimágenes, indicando las indicaciones fusionables a nivel de pista que las pistas de subimágenes son compatibles con la función de fusión de múltiples flujos de bits para una reconstrucción en la señal de vídeo esférico o de una parte de la misma. El dispositivo de codificación de vídeo también comprende un transmisor acoplado al procesador, estando el transmisor configurado para transmitir un conjunto de la pluralidad de pistas de subimágenes que contiene un conjunto de flujos de bits de subimágenes y las indicaciones fusionables a nivel de pista al decodificador para admitir una decodificación y una visualización de un área de visualización de vídeo de realidad virtual. Un flujo de imágenes de realidad virtual (RV) se puede escindir en múltiples flujos de subimágenes para una transmisión selectiva al usuario. Los flujos de subimágenes pueden restringirse durante la interpredicción para que sean completamente autorreferenciales y se sincronicen temporalmente con el fin de evitar errores de decodificación cuando algunos flujos se omitan o se envíen a distintas resoluciones. Esto permite fusionar los flujos en el decodificador mediante un proceso de fusión ligero. En la presente invención se usa una señalización a nivel de pista (p. ej., cualquier caja dentro de una caja de películas en formato ISOBMFF) para indicar al decodificador que las diversas pistas de flujo de bits de subimágenes son compatibles con el proceso de fusión ligero. Por consiguiente, en el proceso de fusión ligero, los flujos de bits de subimágenes se pueden fusionar en el decodificador usando información de cabecera sin necesidad de alterar los resultados de codificación a nivel de bloque para tener en cuenta los artefactos relacionados con la interpredicción que se producen debido a vectores de movimiento que atraviesan los límites de flujo de subimágenes.
Según la invención, las pistas de subimágenes son compatibles con la función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico cuando cada pista de subimágenes es apta para fusionarse con otras pistas de subimágenes a fin de generar un único flujo de bits de vídeo usando un proceso de reescritura de flujo de bits ligero que no conlleva cambiar unos resultados de codificación a nivel de bloque.
Según la invención, las indicaciones fusionables a nivel de pista incluyen un indicador track_mergable_with_other_video_track que, cuando se establece, indica que el flujo de bits de subimágenes portado en una correspondiente pista de subimágenes puede fusionarse con uno o más de otros de la pluralidad de flujos de bits de subimágenes portados en una o más de otras de la pluralidad de pistas de subimágenes para generar un único flujo de bits de vídeo sin que haya un desajuste de decodificación al reescribir únicamente datos de cabecera de los flujos de bits.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista se codifican en una caja de cabecera de pista que está en una caja de pista para cada pista que contiene uno de los flujos de bits de subimágenes.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista se codifican en una caja de grupo de pistas que describe unas asociaciones entre las pistas que incluyen los flujos de bits de subimágenes.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista se codifican en una caja de medios que describe una información de medios de pista.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista, cuando se establecen, indican además que un procesamiento paralelo de frente de onda se desactiva poniendo un entropy_coding_sync_enabled_flag a cero en unos conjuntos PPS para las pistas que incluyen los flujos de bits de subimágenes.
Según la invención, también se proporciona un dispositivo de codificación de vídeo que comprende un medio de mapeo para mapear una señal de vídeo esférico, confeccionada a partir de múltiples señales direccionales de vídeo, en una pluralidad de señales de vídeo de subimágenes que contienen cada una una secuencia de subimágenes. El dispositivo de codificación de vídeo también comprende un medio de codificación de señales de vídeo para codificar la pluralidad de señales de vídeo de subimágenes como una pluralidad de flujos de bits de subimágenes y componer la pluralidad de flujos de bits de subimágenes en una pluralidad de pistas de subimágenes que son compatibles con una función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico o de una parte de la misma. El dispositivo de codificación de vídeo también comprende un medio de indicaciones fusionables para codificar una o más indicaciones fusionables a nivel de pista que están dentro de una caja a nivel de pista para cada una de las pistas de subimágenes, indicando las indicaciones fusionables a nivel de pista que las pistas de subimágenes son compatibles con la función de fusión de múltiples flujos de bits para una reconstrucción en la señal de vídeo esférico o de una parte de la misma; y un medio de transmisión para transmitir un conjunto de la pluralidad de pistas de subimágenes que contiene un conjunto de flujos de bits de subimágenes y las indicaciones fusionables a nivel de pista al decodificador para admitir una decodificación y una visualización de un área de visualización de vídeo de realidad virtual. Un flujo de imágenes de realidad virtual (RV) se puede escindir en múltiples flujos de subimágenes para una transmisión selectiva al usuario. Los flujos de subimágenes pueden restringirse durante la interpredicción para que sean completamente autorreferenciales y se sincronicen temporalmente con el fin de evitar errores de decodificación cuando algunos flujos se omitan o se envíen a distintas resoluciones. Esto permite fusionar los flujos en el decodificador mediante un proceso de fusión ligero. En la presente invención se usa una señalización a nivel de pista (p. ej., cualquier caja dentro de una caja de películas en formato ISOBMFF) para indicar al decodificador que las diversas pistas de flujo de bits de subimágenes son compatibles con el proceso de fusión ligero. Por consiguiente, en el proceso de fusión ligero, los flujos de bits de subimágenes se pueden fusionar en el decodificador usando información de cabecera sin necesidad de alterar los resultados de codificación a nivel de bloque para tener en cuenta los artefactos relacionados con la interpredicción que se producen debido a vectores de movimiento que atraviesan los límites de flujo de subimágenes.
Según la invención, las pistas de subimágenes son compatibles con la función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico cuando cada pista de subimágenes es apta para fusionarse con otras pistas de subimágenes a fin de generar un único flujo de bits de vídeo usando un proceso de reescritura de flujo de bits ligero que no conlleva cambiar unos resultados de codificación a nivel de bloque.
Según la invención, las indicaciones fusionables a nivel de pista incluyen un indicador track_mergable_with_other_video_track que, cuando se establece, indica que el flujo de bits de subimágenes portado en una correspondiente pista de subimágenes puede fusionarse con uno o más de otros de la pluralidad de flujos de bits de subimágenes portados en una o más de otras de la pluralidad de pistas de subimágenes para generar un único flujo de bits de vídeo sin que haya un desajuste de decodificación al reescribir únicamente datos de cabecera de los flujos de bits.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista se codifican en una caja de cabecera de pista que está en una caja de pista para cada pista que contiene uno de los flujos de bits de subimágenes.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista se codifican en una caja de grupo de pistas que describe unas asociaciones entre las pistas que incluyen los flujos de bits de subimágenes.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista se codifican en una caja de medios que describe una información de medios de pista.
Opcionalmente, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que las indicaciones fusionables a nivel de pista, cuando se establecen, indican además que un procesamiento paralelo de frente de onda se desactiva poniendo un entropy_coding_sync_enabled_flag a cero en unos conjuntos PPS para las pistas que incluyen los flujos de bits de subimágenes.
En una realización no reivindicada, la descripción incluye un método que comprende codificar un flujo de bits de subimágenes con unas restricciones establecidas sobre el flujo de bits de subimágenes para que el flujo de bits de subimágenes sea fusionable con otros flujos de bits de subimágenes sin que haya errores de decodificación causados por la reescritura únicamente de datos de cabecera de los flujos de bits de subimágenes. La descripción también incluye codificar un track_not_mergable_flag para indicar que el flujo de bits de subimágenes portado en una pista de subimágenes puede fusionarse con un flujo de bits de subimágenes portado en otra pista que pertenece al mismo grupo de pistas para generar un único flujo de bits de vídeo así sin que haya errores de decodificación causados por la reescritura únicamente de datos de cabecera de los flujos de bits de subimágenes.
Opcionalmente, aunque no se reivindica, en cualquiera de los aspectos anteriores se proporciona otra implementación del aspecto en la que el track_not_mergable_flag se incluye en una caja de región de subimágenes.
Estas y otras características se entenderán más claramente a partir de la siguiente descripción detallada tomada junto con los dibujos y reivindicaciones adjuntos.
Breve descripción de los dibujos
Para una comprensión más completa de esta descripción, ahora se hace referencia a la siguiente breve descripción, tomada en relación con los dibujos adjuntos y la descripción detallada, en los que los mismos números de referencia representan partes similares.
La figura 1 es un diagrama esquemático de un sistema ejemplar para realizar una codificación de vídeo basada en RV.
La figura 2 es un diagrama de flujo de un método ejemplar de codificación de un flujo de bits de imágenes de RV como una pluralidad de flujos de bits de subimágenes.
La figura 3 es un diagrama de flujo de un método ejemplar de codificación de una señal de vídeo que incluye una señal de vídeo de subimágenes.
La figura 4 es un diagrama esquemático de un sistema de codificación y decodificación (códec) ejemplar para realizar una codificación de vídeo.
La figura 5 es un diagrama esquemático que ilustra un codificador de vídeo ejemplar que puede codificar flujos de bits de subimágenes.
La figura 6 es un diagrama esquemático que ilustra un decodificador de vídeo ejemplar que puede decodificar flujos de bits de subimágenes.
La figura 7 es un diagrama esquemático que ilustra una pluralidad de señales de vídeo de subimágenes escindidas de una señal de vídeo de imágenes de RV.
La figura 8 es un diagrama esquemático que ilustra un ejemplo de interpredicción unidireccional.
La figura 9 es un diagrama esquemático que ilustra un ejemplo de interpredicción bidireccional.
La figura 10 es un diagrama esquemático que ilustra un ejemplo de un mecanismo de codificación de vídeo basada en bloques.
La figura 11 es un diagrama esquemático que ilustra un formato de archivo Base Media File Format de la Organización Internacional de Normalización (ISO) (ISOBMFF) para transportar una codificación de vídeo.
La figura 12 es un diagrama de flujo de un método ejemplar de señalización a nivel de formato de archivo para indicar que unos flujos de bits de subimágenes son fusionables a través de una función de fusión de múltiples flujos de bits.
La figura 13 es un diagrama esquemático de un dispositivo de codificación de vídeo ejemplar.
La figura 14 es un diagrama esquemático de un dispositivo de codificación de vídeo ejemplar para una señalización a nivel de formato de archivo para indicar que unos flujos de bits de subimágenes son fusionables a través de una función de fusión de múltiples flujos de bits.
La figura 15 es un diagrama esquemático de un método ejemplar de señalización a nivel de formato de archivo para indicar que unos flujos de bits de subimágenes son fusionables a través de una función de fusión de múltiples flujos de bits.
Descripción detallada
Debe entenderse desde el principio que, aunque a continuación se proporciona una implementación ilustrativa de una o más modalidades, los sistemas y/o métodos divulgados pueden implementarse mediante el uso de cualquier número de técnicas, ya sea actualmente conocidas o en existencia. La descripción no debe limitarse de ninguna manera a las implementaciones ilustrativas, dibujos y técnicas ilustrados a continuación, incluidos los diseños ilustrativos e implementaciones ilustrados y descritos en el presente documento, pero puede modificarse dentro del alcance de las reivindicaciones adjuntas junto con su alcance completo de equivalentes.
La presente descripción está relacionada con la RV, que también puede conocerse como medios omnidireccionales, medios inmersivos y medios de trescientos sesenta grados. La RV es una experiencia interactiva grabada y/o generada por ordenador que tiene lugar dentro de un entorno simulado y que emplea retroalimentación visual, de audio y/o háptica. Para tener una perspectiva visual, la RV proporciona una esfera (o una subparte de una esfera) de imágenes, con un usuario colocado en el centro de la misma. La esfera de las imágenes puede ser representada por un visualizador en forma de visor (HMD). En concreto, el HMD proporciona al usuario un campo de visión (CdV), también conocido como área de visualización, de la esfera. Por lo tanto, el usuario puede mirar a través del área de visualización para ver una subparte de la esfera y mover su cabeza para cambiar dinámicamente la posición del área de visualización. Esto da la impresión de estar dentro de un entorno definido por la esfera. La esfera también se puede presentar de manera desplazada a cada uno de los ojos del usuario para dar la sensación de un espacio tridimensional. Cada imagen, conocida también como cuadro, incluye tanto el área de la esfera dentro del CdV del usuario como el área de la esfera fuera del CdV del usuario. Por lo tanto, un cuadro de RV incluye significativamente más datos que una imagen de vídeo que no es de RV.
Para generar una señal de vídeo de RV, una red multidimensional de cámaras graba simultáneamente la esfera desde todos los ángulos pertinentes. Esto produce múltiples señales direccionales de vídeo, las cuales se combinan para crear una única señal de vídeo esférico para usarse como la señal de vídeo de RV. Para comprimir la señal de vídeo de RV, cada cuadro de la señal puede escindirse en subimágenes de una forma predefinida, tal como rectangular, cuadrada u otra. Tales subimágenes crean unas señales de vídeo de subimágenes, que luego pueden codificarse y enviarse a un usuario para decodificarse, reconstruirse en una señal de vídeo de RV y mostrarse a un usuario en un área de visualización. Un mecanismo para garantizar que la reconstrucción sea correcta implica codificar cada señal de vídeo de subimágenes a la misma resolución. Sin embargo, esto puede tener todavía como resultado un archivo muy grande.
La codificación dependiente del área de visualización es una técnica de compresión ejemplar con la que se puede reducir aún más el tamaño de archivo de la señal de vídeo de RV (p. ej., para admitir una emisión en continuo de vídeo basada en RV). La codificación dependiente del área de visualización hace uso del concepto de que el usuario solo ve la parte de la esfera que está en el área de visualización en cualquier momento. En consecuencia, la zona que está fuera del CdV del usuario puede transmitirse a resoluciones más bajas (p. ej., la resolución se reduce cuanto más lejos se está del CdV actual). Las resoluciones de las señales de vídeo de subimágenes pueden aumentarse o reducirse dinámicamente a medida que se mueve el CdV, por ejemplo, al seleccionar dinámicamente distintas representaciones de las señales de vídeo de subimágenes a distintas resoluciones. Este enfoque reduce el tamaño de archivo global de la señal de vídeo de RV al reducir la calidad de vídeo de las zonas de la esfera que el usuario no puede ver (p. ej., y/o se considera que son de fondo y de importancia limitada en el momento de la codificación).
En algunos casos, la codificación dependiente del área de visualización puede sufrir errores de codificación de vídeo. Por ejemplo, una señal de vídeo, tal como una señal de vídeo de subimágenes, puede codificarse empleando una interpredicción. En la interpredicción, un bloque de píxeles (que, p. ej., representan un objeto) que aparece en múltiples cuadros puede codificarse como un vector de movimiento que apunta de un bloque actual a otro bloque en un cuadro diferente que incluye los píxeles. De esta manera, un bloque que aparece en múltiples cuadros se puede codificar una vez (p. ej., por intrapredicción) y luego referenciarse mediante una serie de vectores de movimiento para reducir la redundancia y, por tanto, el tamaño de archivo. En la interpredicción se emplean múltiples modos. Algunos modos, tales como el modo de fusión y el modo de predicción por adelantado de vectores de movimiento (AMVP, por sus siglas en inglés), generan una lista de vectores de movimiento candidatos para un bloque actual basándose en bloques vecinos. Tales modos señalan un vector de movimiento seleccionado señalando un índice de la lista de candidatos. De esta manera, un bloque entero de píxeles puede codificarse como un único valor de índice. La interpredicción utilizando listas de candidatos puede crear problemas en la codificación dependiente del área de visualización cuando se aplica a señales de vídeo de subimágenes adyacentes que incluyen distintas resoluciones y/o velocidades secuenciales. En concreto, una lista de candidatos para un bloque que esté en el borde de una primera señal de vídeo de subimágenes puede depender de unos vectores de movimiento utilizados en un borde correspondiente de una segunda señal de vídeo de subimágenes adyacente. Cuando la primera señal de vídeo de subimágenes y la segunda señal de vídeo de subimágenes se transmiten a distintas resoluciones/velocidades secuenciales, pueden producirse desajustes de datos relacionados con la resolución, lo que hará que la lista de candidatos contenga valores de vector de movimiento inesperados (o se omitan valores esperados). Esto se traduce en que el decodificador genera una lista de candidatos incorrecta, lo que da como resultado una mala interpretación del índice de lista de candidatos. Una mala interpretación del índice de lista de candidatos provoca errores en la señal de vídeo de subimágenes decodificada y, por tanto, errores en la señal de vídeo de RV que se muestra al usuario. Pueden aparecer problemas similares si un vector de movimiento en una señal de vídeo de subimágenes hace referencia a una muestra en otra señal de vídeo de subimágenes, ya que puede que esa muestra no esté disponible y/o sea de una resolución reducida. Además, los códecs de vídeo pueden emplear un procesamiento paralelo de frente de onda (WPP, por sus siglas en inglés) para codificar/decodificar bloques de una imagen de vídeo en paralelo. Sin embargo, el procesamiento WPP puede tener efectos en los mecanismos de codificación a nivel de bloque, y, por tanto, decodificar distintas partes de una imagen a distintas resoluciones según el WPP puede provocar errores adicionales.
Pueden emplearse diversos mecanismos para mitigar los errores causados por el uso de listas de candidatos en la interpredicción cuando ésta se aplica a señales de vídeo de subimágenes de una señal de vídeo de RV codificada según mecanismos de codificación dependientes del área de visualización. Por ejemplo, cuando se codifica una señal de vídeo de subimágenes, un bloque actual en una subimagen de una señal de vídeo de subimágenes solo puede hacer referencia a muestras de referencia que están en bloques de referencia que se encuentran en ubicaciones de muestra completa en la misma señal de vídeo de subimágenes y, por tanto, no puede hacer referencia a ubicaciones de muestra completa o fraccionaria procedentes de otras señales de vídeo de subimágenes. Esto aplica tanto a la intrapredicción como a la interpredicción. Además, se puede hacer referencia a ubicaciones de muestra fraccionaria en una señal de vídeo de subimágenes, pero solo si la muestra que se encuentra en la ubicación de muestra fraccionaria se puede recrear por interpolación basándose únicamente en unas ubicaciones de muestra completa y/o fraccionaria dentro del mismo flujo de bits de subimágenes. Además, cuando se realiza una interpredicción, los vectores de movimiento de bloques que están en flujos de bits de subimágenes adyacentes no se incluyen en las listas de candidatos a vector de movimiento. Estas restricciones garantizan que cada flujo de bits de subimágenes puede decodificarse sin hacer referencia a un flujo de bits de subimágenes vecino, y, por tanto, se evitan los desajustes basados en la resolución. Además, el procesamiento WPP no puede usarse en combinación con flujos de bits de subimágenes. Por ejemplo, un entropy_coding_sync_enabled_flag en cada conjunto de parámetros de imagen (PPS) puede ponerse a cero para impedir el procesamiento WPP en el caso de las señales de vídeo de subimágenes. Además, pueden evitarse problemas de desajuste de temporización entre los flujos de bits de subimágenes garantizando pistas que contengan las señales de vídeo de subimágenes que tienen el mismo tiempo de presentación y garantizando que cada muestra de una imagen de RV común emplee el mismo valor de recuento de orden de imagen incluso cuando tales muestras se escindan en distintos flujos de bits de subimágenes y/o se porten en distintas pistas.
Los mecanismos anteriores, o combinaciones de los mismos, garantizan que cada flujo de bits de subimágenes sea autorreferenciado, lo cual también se denomina autónomo en la presente memoria. Los flujos de bits de subimágenes que son autorreferenciados/autónomos se codifican de una manera completamente autorreferencial y, por tanto, pueden decodificarse sin hacer referencia a otros flujos de bits de subimágenes. Un flujo de bits de subimágenes autorreferenciado puede decodificarse y fusionarse con otros flujos de bits de subimágenes para reconstruir una señal de vídeo esférico según una función de fusión ligera, tal y como se describe en mayor detalle más adelante. La función de fusión ligera también puede denominarse proceso de reescritura de flujos de bits ligero. La función de fusión ligera puede colocar y fusionar subimágenes de cada señal basándose en un recuento de imágenes y una posición de subimagen sin comprobar y/o cambiar unos resultados de codificación a nivel de bloque para cada señal de vídeo de subimágenes. Este enfoque emplea significativamente menos recursos informáticos en el decodificador, siempre y cuando éste esté al tanto de que la función de fusión ligera puede aplicarse a un correspondiente conjunto de flujos de bits de subimágenes sin generar artefactos de codificación.
En la presente memoria se describen unos mecanismos para informar a un decodificador de que unos flujos de bits de subimágenes son autorreferenciados y, por tanto, pueden reconstruirse para formar una señal de vídeo esférico a través de una función de fusión ligera. En concreto, la señalización de formato de archivo puede contener una indicación fusionable a nivel de pista que indique que puede aplicarse una función de fusión ligera a los flujos de bits de subimágenes. Por ejemplo, los flujos de bits pueden codificarse en el formato de archivo Base Media File Format de la Organización Internacional de Normalización (ISOBMFF). En el formato ISOBMFF, los flujos de bits y los correspondientes datos contextuales se almacenan en cajas. Un indicador, tal como track_mergable_with_other_video_tracks, puede incluirse en una caja de cabecera de pista que está asociada a una pista que contiene un flujo de bits de subimágenes. Cuando se establece, el indicador puede indicar que la pista contiene un flujo de bits de subimágenes que puede fusionarse con otros flujos de bits de subimágenes (que también tienen un correspondiente indicador de conjunto) empleando la función de fusión ligera (p. ej., sin cambiar unos resultados de codificación a nivel de bloque). En otros ejemplos, la indicación fusionable a nivel de pista puede incluirse en otras cajas a nivel de pista, tal como una caja de medios. En este contexto, una caja a nivel de pista es cualquier caja que describa una pista especificada. En otro ejemplo, la indicación fusionable a nivel de pista puede incluirse en una descripción de grupo de pistas. Con los mecanismos de señalización anteriores, una entidad que admita la reescritura/fusión de múltiples flujos de bits de subimágenes para formar un flujo de bits de vídeo de realidad virtual conforme puede determinar si ciertos flujos de bits de subimágenes pueden fusionarse/reescribirse para formar un flujo de bits de vídeo conforme sin los artefactos de codificación dependientes de área de visualización basándose en la variabilidad de resolución.
La figura 1 es un diagrama esquemático de un sistema 100 ejemplar para realizar una codificación de vídeo basada en RV. El sistema 100 incluye una cámara multidireccional 101, un dispositivo 104 de codificación de RV que incluye un codificador 103, un decodificador 107 y un dispositivo 109 de representación. La cámara multidireccional 101 comprende una red de dispositivos de cámara. Cada dispositivo de cámara apunta a un ángulo diferente para que la cámara multidireccional 101 pueda tomar múltiples señales direccionales de vídeo del entorno circundante desde una pluralidad de ángulos. Por ejemplo, la cámara multidireccional 101 puede tomar un vídeo del entorno como una esfera con la cámara multidireccional 101 en el centro de la esfera. Tal y como se usa en la presente memoria, la esfera y/o el vídeo esférico se refieren tanto a una esfera geométrica como a unas subpartes de una esfera geométrica, tales como casquetes esféricos, cúpulas esféricas, segmentos esféricos, etc. Por ejemplo, una cámara multidireccional 101 puede tomar un vídeo de ciento ochenta grados para cubrir la mitad del entorno para que un equipo de producción pueda permanecer detrás de la cámara multidireccional 101. Una cámara multidireccional 101 también puede tomar vídeo en trescientos sesenta grados (o cualquier subparte de los mismos). Sin embargo, puede omitirse una parte del suelo que hay debajo de la cámara multidireccional 101, lo que da como resultado un vídeo de menos de una esfera perfecta. Por lo tanto, el término esfera, tal y como se usa en la presente memoria, es un término general utilizado para mayor claridad, y no debe considerarse limitante desde un punto de vista geométrico.
El vídeo de la cámara multidireccional 101 se reenvía al dispositivo 104 de codificación de RV. Un dispositivo 104 de codificación de RV puede ser un sistema informático que incluya un software de codificación de RV especializado. El dispositivo 104 de codificación de RV puede incluir un codificador 103. En algunos ejemplos, el codificador 103 también puede incluirse en un sistema informático independiente del dispositivo 104 de codificación de RV. El dispositivo 104 de codificación de RV está configurado para convertir las múltiples señales direccionales de vídeo en una única señal de vídeo multidireccional que incluye toda la zona grabada desde todos los ángulos pertinentes. Esta conversión puede denominarse cosido de imágenes. Por ejemplo, los cuadros procedentes de cada señal de vídeo que se hayan captado al mismo tiempo se pueden unir para crear una única imagen esférica. Una señal de vídeo esférico se puede crear entonces a partir de las imágenes esféricas. Para mayor claridad, cabe observarse que los términos cuadro e imagen pueden ser intercambiables en la presente memoria salvo que se indique específicamente lo contrario.
La señal de vídeo esférico puede entonces reenviarse al codificador 103 para su compresión. Un codificador 103 es un dispositivo y/o programa que es capaz de convertir información de un formato a otro a efectos de normalización, velocidad y/o compresión. Los codificadores 103 estandarizados se configuran para codificar imágenes rectangulares y/o cuadradas. Por consiguiente, el codificador 103 está configurado para mapear cada imagen esférica de la señal de vídeo esférico en una pluralidad de subimágenes en una forma predefinida, tal como una forma rectangular, una forma cuadrada u otra forma geométrica bidimensional. Si bien la imagen esférica puede mapearse en subimágenes de cualquier forma, las subimágenes pueden denominarse más adelante rectangulares a efectos de claridad y de brevedad. No obstante, una forma rectangular así no debe considerarse limitativa en ausencia de indicaciones contextuales en sentido contrario. Tras la finalización del mapeo, las subimágenes pueden colocarse en señales de vídeo de subimágenes separadas. Así, cada señal de vídeo de subimágenes muestra una señal de imágenes a lo largo del tiempo como ha sido grabada desde una subparte de la señal de vídeo esférico. El codificador 103 puede codificar entonces cada señal de vídeo de subimágenes para comprimir la señal de vídeo a un tamaño de archivo manejable. El proceso de codificación se analiza en mayor detalle a continuación. Generalmente, el codificador 103 parte cada cuadro de cada señal de vídeo de subimágenes en unos bloques de píxeles, comprime los bloques de píxeles por interpredicción y/o intrapredicción para crear unos bloques de codificación que incluyen unos bloques de predicción y unos bloques residuales, aplica transformadas a los bloques residuales para comprimir más y aplica diversos filtros a los bloques. Los bloques comprimidos, así como la correspondiente sintaxis, se almacenan en uno o unos flujos de bits en, por ejemplo, formato ISOBMFF y/o formato de medios omnidireccional (OMAF, por sus siglas en inglés).
El dispositivo 104 de codificación de RV puede almacenar el o los flujos de bits codificados en una memoria, localmente y/o en un servidor, para comunicarlos a un decodificador 107 bajo petición. Los datos pueden reenviarse a través de una red 105, que puede incluir Internet, una red de telecomunicaciones móviles (p. ej., una red de datos basada en la evolución a largo plazo [LTE]) u otro sistema de datos de comunicación de datos.
El decodificador 107 es un dispositivo en la ubicación de un usuario que está configurado para invertir el proceso de codificación para reconstruir las señales de vídeo de subimágenes a partir del o los flujos de bits codificados. El decodificador 107 también fusiona las señales de vídeo de subimágenes para reconstruir la señal de vídeo esférico. La señal de vídeo esférico, o unas subpartes de la misma, se puede reenviar al dispositivo 109 de representación. El dispositivo 109 de representación es un dispositivo configurado para mostrar la señal de vídeo esférico al usuario. Por ejemplo, el dispositivo 109 de representación puede incluir un HMD que se sujeta a la cabeza del usuario y cubre los ojos del mismo. El dispositivo 109 de representación puede incluir una pantalla para cada ojo, cámaras, sensores de movimiento, altavoces, etc., y puede comunicarse con el decodificador 107 a través de conexiones inalámbricas y/o cableadas. El dispositivo 109 de representación puede mostrar una subparte de la señal de vídeo esférico al usuario. La subparte mostrada está basada en el CdV y/o en el área de visualización del dispositivo de representación. Por ejemplo, el dispositivo 109 de representación puede cambiar la posición del CdV basándose en el movimiento de la cabeza del usuario empleando los sensores de seguimiento de movimiento. Esto permite al usuario ver distintas partes de la señal de vídeo esférico dependiendo del movimiento de la cabeza. Además, el dispositivo 109 de representación puede desplazar el CdV para cada ojo basándose en la distancia interpupilar (DIP) del usuario para crear la impresión de un espacio tridimensional.
La figura 2 es un diagrama de flujo de un método 200 ejemplar de codificación de un flujo de bits de imágenes de RV como una pluralidad de flujos de bits de subimágenes empleando, por ejemplo, los componentes del sistema 100. En un paso 201, se usa un conjunto de cámaras multidireccionales, tal como la cámara multidireccional 101, para captar múltiples señales direccionales de vídeo. Las múltiples señales direccionales de vídeo incluyen vistas de un entorno en diversos ángulos. Por ejemplo, las múltiples señales direccionales de vídeo pueden captar vídeo desde trescientos sesenta grados, ciento ochenta grados, doscientos cuarenta grados, etc., alrededor de la cámara en un plano (p. ej., el plano horizontal). Las múltiples señales direccionales de vídeo también pueden captar vídeo desde trescientos sesenta grados, ciento ochenta grados, doscientos cuarenta grados, etc., alrededor de la cámara en el plano vertical. El resultado es la creación de un vídeo que incluye información suficiente como para cubrir una zona esférica alrededor de la cámara durante algún período de tiempo.
En un paso 203, las múltiples señales direccionales de vídeo se sincronizan en el dominio del tiempo. En concreto, cada señal direccional de vídeo incluye una serie de imágenes tomadas en un ángulo correspondiente. Las múltiples señales direccionales de vídeo se sincronizan garantizando que los cuadros procedentes de cada señal direccional de vídeo que se captaron en la misma posición en el dominio de tiempo se procesan juntas. Los cuadros procedentes de las señales direccionales de vídeo se pueden unir en el dominio espacial para crear una señal de vídeo esférico. Así pues, cada cuadro de la señal de vídeo esférico contiene datos tomados de los cuadros de todas las señales direccionales de vídeo que se producen en una posición temporal común.
En un paso 205, la señal de vídeo esférico se mapea en unas señales de vídeo de subimágenes (p. ej., rectangulares, cuadradas, etc.). Este proceso también puede denominarse proyección de la señal de vídeo esférico en señales de vídeo de subimágenes rectangulares. Tal y como se indicó anteriormente, los codificadores y decodificadores están diseñados en general para codificar cuadros rectangulares y/o cuadrados. Por consiguiente, el mapeo de la señal de vídeo esférico en unas señales de vídeo de subimágenes crea unas señales de vídeo que pueden ser codificadas y decodificadas por codificadores y decodificadores que no son específicos de RV, respectivamente. Cabe señalar que los pasos 203 y 205 son específicos del procesamiento de vídeo de RV y, por tanto, pueden ser realizados por hardware o software de RV especializado o por combinaciones de los mismos.
En un paso 207, las señales de vídeo de subimágenes rectangulares pueden enviarse a un codificador, tal como el codificador 103. El codificador codifica entonces las señales de vídeo de subimágenes como flujos de bits de subimágenes en un formato de archivo de medios correspondiente. En concreto, cada señal de vídeo de subimágenes puede ser tratada por el codificador como una señal de vídeo. El codificador puede codificar cada cuadro de cada señal de vídeo de subimágenes por interpredicción, intrapredicción, etc. Tales codificación y correspondiente decodificación, así como los codificadores y decodificadores, se analizan más adelante con detalle con respecto a las figuras 3-14. En cuanto al formato de archivo, las señales de vídeo de subimágenes pueden almacenarse en formato ISOBMFF. Por ejemplo, las señales de vídeo de subimágenes se captan a una resolución especificada. Las señales de vídeo de subimágenes se pueden submuestrear a diversas resoluciones más bajas para codificarlas. Cada resolución puede denominarse representación. Las representaciones de peor calidad pierden claridad de imagen, mientras que el tamaño de archivo se reduce. Por consiguiente, se pueden transmitir representaciones de peor calidad a un usuario usando menos recursos de red (p. ej., tiempo, ancho de banda, etc.) que representaciones de mayor calidad, con una pérdida de calidad visual relacionada. Cada representación puede almacenarse en un correspondiente conjunto de pistas. Por lo tanto, pueden enviarse pistas a un usuario, donde las pistas incluyen los flujos de bits de subimágenes a diversas resoluciones (p. ej., calidad visual).
En un paso 209, los flujos de bits de subimágenes pueden enviarse al decodificador como pistas. En algunos ejemplos, todos los flujos de bits de subimágenes se transmiten a la misma calidad transmitiendo pistas procedentes de la misma representación. El inconveniente de este enfoque es que hay zonas de la señal de vídeo de RV final que importan menos que se transmiten a la misma resolución que todas las demás zonas. Una codificación dependiente del área de visualización se puede usar para mejorar la compresión en relación con un enfoque así. En la codificación dependiente del área de visualización, las pistas que contienen flujos de bits de subimágenes con datos en el CdV del usuario se envían a resoluciones más altas seleccionando representaciones de mayor calidad. Las pistas que contienen flujos de bits de subimágenes con zonas que están fuera del CdV del usuario pueden enviarse a resoluciones progresivamente más bajas seleccionando representaciones de peor calidad. En algunos ejemplos, algunas zonas pueden incluso omitirse por completo. Por ejemplo, las zonas adyacentes al CdV pueden enviarse a una calidad ligeramente reducida en caso de que el usuario decida cambiar el CdV para incluir tales zonas. Las zonas más alejadas del CdV pueden enviarse a una calidad progresivamente más baja, ya que es progresivamente más improbable que tales zonas entren en el CdV y, por tanto, es progresivamente más improbable que se representen para el usuario. Las pistas pueden incluir segmentos de vídeo relativamente cortos (p. ej., de unos tres segundos), y, por tanto, las representaciones seleccionadas para zonas particulares del vídeo pueden cambiar a lo largo del tiempo en función de los cambios del CdV. Esto permite que la calidad cambie a medida que el usuario cambie el CdV. La codificación dependiente del área de visualización puede reducir significativamente el tamaño de archivo de las pistas que se envían al usuario sin que haya pérdidas significativas de calidad visual porque es improbable que el usuario vea las zonas de calidad reducida.
En un paso 211, un decodificador, tal como el decodificador 107, recibe las pistas que contienen los flujos de bits de subimágenes. El decodificador puede decodificar entonces los flujos de bits de subimágenes en señales de vídeo de subimágenes para su visualización. El proceso de decodificación supone un proceso inverso al proceso de codificación (p. ej., usando interpredicción e intrapredicción) y se analiza en mayor detalle más adelante con respecto a las figuras 3-10.
En un paso 213, el decodificador puede fusionar las señales de vídeo de subimágenes para formar la señal de vídeo esférico para su presentación al usuario. En concreto, el decodificador puede emplear un denominado algoritmo de fusión ligero que selecciona cuadros de cada señal de vídeo de subimágenes que tienen lugar al mismo tiempo de presentación y los fusiona basándose en la posición y/o el ángulo asociado(s) a la correspondiente señal de vídeo de subimágenes. Puede que el algoritmo de fusión ligero no haga cambios en los resultados de codificación a nivel de bloque asociados a las subimágenes. Por lo tanto, el algoritmo de fusión ligero emplea significativamente menos recursos informáticos que la decodificación de cuadros de vídeo esférico enteros basándose en los flujos de bits de subimágenes. El decodificador también puede emplear filtros para alisar los bordes entre las señales de vídeo de subimágenes, eliminar artefactos, etc. El decodificador puede entonces reenviar la señal de vídeo esférico a un dispositivo de representación, tal como el dispositivo 109 de representación.
En un paso 215, el dispositivo de representación representa un área de visualización de la señal de vídeo esférico para su presentación al usuario. Tal y como se mencionó anteriormente, las zonas de la señal de vídeo esférico que están fuera del CdV en cada momento en el tiempo no se representan. Por lo tanto, en la codificación dependiente del área de visualización, se omiten eficazmente las representaciones de peor calidad, y, por tanto, la reducción de la calidad de visualización tiene un impacto despreciable en la experiencia de usuario, al tiempo que se reduce el tamaño de archivo.
La codificación dependiente del área de visualización, tal y como se aplica al sistema 100 y al método 200, reduce los tamaños de archivo sin que el usuario sufra una pérdida significativa de calidad visual. Sin embargo, este enfoque puede causar en algunos casos ciertos errores de codificación de vídeo. En concreto, la interpredicción y la intrapredicción que se extienden más allá los límites de las señales de vídeo de subimágenes pueden crear artefactos cuando las señales de vídeo de subimágenes son de distintas representaciones. Esto se debe a que las representaciones de peor calidad tienen pérdidas y omiten datos para reducir el tamaño de archivo. En una señal de vídeo de subimágenes de alta calidad se pueden codificar píxeles basándose en datos que se eliminan de señales de vídeo de subimágenes de peor calidad adyacentes. Así, las señales de vídeo de subimágenes de alta calidad pueden decodificarse incorrectamente cuando tales datos se han eliminado de las señales de vídeo de subimágenes de peor calidad adyacentes. La presente descripción incluye unos mecanismos para restringir la codificación de señales de vídeo de subimágenes a fin de garantizar que cada señal de vídeo de subimágenes sea autónoma y, por tanto, que no se produzcan tales errores cuando el algoritmo de fusión ligero se aplique en el decodificador. En las figuras 3-10 se describen unos procesos y sistemas de codificación aplicados a cada señal de vídeo de subimágenes, y en las figuras 11-14 se describen unos mecanismos para codificar una indicación fusionable a nivel de pista para alertar a un decodificador de que las señales de vídeo de subimágenes son autorreferenciadas y, por tanto, se pueden reconstruir a través del algoritmo de fusión ligero.
La figura 3 es un diagrama de flujo de un método 300 ejemplar de codificación de una señal de vídeo que incluye una señal de vídeo de subimágenes. Por ejemplo, el método 300 puede recibir una pluralidad de señales de vídeo de subimágenes del paso 205 del método 200. El método 300 trata cada señal de vídeo de subimágenes como una entrada de señal de vídeo. El método 300 aplica unos pasos 301-317 a cada señal de vídeo de subimágenes para implementar los pasos 207-211 del método 200. Por lo tanto, la señal de vídeo de salida del método 300 incluye las señales de vídeo de subimágenes decodificadas, que pueden fusionarse y mostrarse según los pasos 213 y 215 del método 200.
El método 300 codifica una señal de vídeo, que incluye, por ejemplo, unas señales de vídeo de subimágenes, en un codificador. El proceso de codificación comprime la señal de vídeo empleando diversos mecanismos para reducir el tamaño de archivo de vídeo. Un tamaño de archivo más pequeño permite transmitir el archivo de vídeo comprimido a un usuario, al tiempo que se reduce la sobrecarga de ancho de banda asociada. El decodificador decodifica entonces el archivo de vídeo comprimido para reconstruir la señal de vídeo original para mostrarse a un usuario final. El proceso de decodificación en general refleja el proceso de codificación para permitir que el decodificador reconstruya sistemáticamente la señal de vídeo.
En un paso 301, la señal de vídeo se introduce en el codificador. Por ejemplo, la señal de vídeo puede ser un archivo de vídeo no comprimido almacenado en la memoria. Como otro ejemplo, el archivo de vídeo puede ser captado por un dispositivo de captación de vídeo, tal como una cámara de vídeo, y codificarse para admitir la emisión en continuo en vivo del vídeo. El archivo de vídeo puede incluir tanto un componente de audio como un componente de vídeo. El componente de vídeo contiene una serie de cuadros de imagen que, cuando se ven en secuencia, dan la impresión visual de movimiento. Los cuadros contienen píxeles que se expresan en términos de luz, denominados en la presente memoria componentes de luminancia (o muestras de luminancia), y de color, que se denominan componentes de crominancia (o muestras de color).
En un paso 303, la señal de vídeo se divide en bloques. La partición incluye subdividir los píxeles que hay en cada cuadro en unos bloques cuadrados y/o rectangulares para la compresión. Por ejemplo, en la codificación de vídeo de alta eficiencia (HEVC, por sus siglas en inglés) (también conocida como H.265 y MPEG-H, parte 2), el cuadro se puede dividir primero en unas unidades de árbol de codificación (CTU, por sus siglas en inglés), que son bloques de un tamaño predefinido (p. ej., sesenta y cuatro píxeles por sesenta y cuatro píxeles). Las unidades CTU contienen tanto muestras de luminancia como de crominancia. Tal y como se usa en la presente memoria, una muestra, también conocida como píxel, es un valor de una imagen (p. ej., un valor de luminancia/luz o un valor de crominancia/color) en una ubicación correspondiente. Pueden emplearse árboles de codificación para dividir las unidades CTU en bloques y luego subdividir los bloques reiteradamente hasta que se obtengan configuraciones que admitan más codificación. Por ejemplo, los componentes de luminancia de un cuadro pueden subdividirse hasta que los bloques individuales contengan unos valores de iluminación relativamente homogéneos. Además, los componentes de crominancia de un cuadro pueden subdividirse hasta que los bloques individuales contengan unos valores de color relativamente homogéneos. Por consiguiente, los mecanismos de partición varían dependiendo del contenido de los cuadros de vídeo.
En un paso 305 se emplean diversos mecanismos de compresión para comprimir los bloques de imagen divididos en el paso 303. Por ejemplo, puede emplearse una interpredicción y/o una intrapredicción. La interpredicción está diseñada para aprovecharse del hecho de que los objetos en una escena común tienden a aparecer en cuadros sucesivos. Por consiguiente, un bloque que representa un objeto en un cuadro de referencia no necesita describirse repetidamente en cuadros adyacentes. En concreto, un objeto, tal como una mesa, puede permanecer en posición constante en múltiples cuadros. Por lo tanto, la tabla se describe una vez, y los cuadros adyacentes pueden remitirse al cuadro de referencia. Pueden emplearse unos mecanismos de coincidencia de patrones para hacer coincidir objetos que aparecen en múltiples cuadros. Además, en múltiples cuadros pueden representarse objetos en movimiento debido a, por ejemplo, un movimiento de objeto o un movimiento de cámara. Como ejemplo particular, un vídeo puede mostrar un automóvil que se mueve de un lado a otro de la pantalla en múltiples cuadros. Se pueden emplear vectores de movimiento para describir un movimiento de este tipo o la ausencia del mismo. Un vector de movimiento es un vector bidimensional que proporciona un desplazamiento de las coordenadas de un objeto en un cuadro a las coordenadas del objeto en un cuadro de referencia. Así, la interpredicción puede codificar un bloque de imágenes en un cuadro actual como un conjunto de vectores de movimiento que indican un desplazamiento de un bloque correspondiente en un cuadro de referencia.
La intrapredicción codifica bloques en un cuadro común. La intrapredicción se aprovecha del hecho de que los componentes de luminancia y de crominancia tienden a agruparse en un cuadro. Por ejemplo, un área verde en una parte de un árbol tiende a colocarse adyacente a áreas verdes similares. La intrapredicción emplea múltiples modos direccionales de predicción (p. ej., treinta y tres en HEVC), un modo plano y un modo de corriente continua (c.c.). Los modos direccionales indican que un bloque actual es parecido/igual a las muestras de un bloque vecino en una dirección correspondiente. El modo plano indica que una serie de bloques a lo largo de una fila/columna (p. ej., un plano) puede interpolarse basándose en bloques vecinos que se encuentran en los bordes de la fila. En efecto, el modo plano indica una transición suave de luz/color a través de una fila/columna empleando una pendiente relativamente constante en valores cambiantes. El modo de c.c. se emplea para el alisado de límites e indica que un bloque es parecido/igual a un valor promedio asociado a las muestras de todos los bloques vecinos que están asociadas a las direcciones angulares de los modos de predicción direccional. Por consiguiente, los bloques de intrapredicción pueden representar los bloques de imágenes como diversos valores de modo de predicción relacional en vez de los valores reales. Además, los bloques de interpredicción pueden representar los bloques de imágenes como valores de vector de movimiento en vez de los valores reales. En cualquiera de los casos, los bloques de predicción pueden en algunos casos no representar exactamente los bloques de imagen. Cualquier diferencia se almacena en unos bloques residuales. A los bloques residuales se les pueden aplicar transformadas para comprimir aún más el archivo.
En un paso 307 se pueden aplicar diversas técnicas de filtrado. En la codificación HEVC, los filtros se aplican según un plan de filtrado en bucle. La predicción basada en bloques comentada anteriormente puede dar como resultado la creación de imágenes en bloques en el decodificador. Además, el plan de predicción basado en bloques puede codificar un bloque y luego reconstruir el bloque codificado para su uso posterior como bloque de referencia. El plan de filtrado en bucle aplica iterativamente filtros de supresión de ruido, filtros antibloque, filtros de bucle adaptativo y filtros de desplazamiento adaptativo de muestras (SAO, por sus siglas en inglés) a los bloques/cuadros. Estos filtros mitigan tales artefactos de efecto bloque para que el archivo codificado pueda reconstruirse con precisión. Además, estos filtros mitigan artefactos en los bloques de referencia reconstruidos para que sea menos probable que los artefactos creen artefactos adicionales en bloques posteriores que se codifiquen basándose en los bloques de referencia reconstruidos.
Una vez que la señal de vídeo se ha dividido, comprimido y filtrado, los datos resultantes se codifican en un flujo de bits en un paso 309. El flujo de bits incluye los datos comentados anteriormente, así como cualquier dato de señalización (p. ej., sintaxis) que se desee para admitir una reconstrucción de señales de vídeo adecuada en el decodificador. Por ejemplo, tales datos pueden incluir datos de partición, datos de predicción, bloques residuales y diversos indicadores que proporcionen instrucciones de codificación al decodificador. El flujo de bits puede almacenarse en una memoria para su transmisión a un decodificador previa petición, por ejemplo, como una pista y/o un fragmento de pista en formato ISBBMFF. El flujo de bits también puede difundirse y/o multidifundirse a una pluralidad de decodificadores. La creación del flujo de bits es un proceso iterativo. En consecuencia, los pasos 301, 303, 305, 307 y 309 pueden tener lugar continua y/o simultáneamente en muchos cuadros y bloques. El orden mostrado en la figura 3 se presenta para mayor claridad y facilidad de análisis y no pretende limitar el proceso de codificación de vídeo a un orden en particular.
El decodificador recibe el flujo de bits y comienza el proceso de decodificación en un paso 311. Por ejemplo, el decodificador puede emplear un plan de decodificación entrópica para convertir el flujo de bits en unos correspondientes datos de sintaxis y de vídeo. El decodificador emplea los datos de sintaxis del flujo de bits para determinar las particiones para los cuadros en el paso 311. La partición debe coincidir con los resultados de la partición en bloques del paso 303. Ahora se describirá la codificación/decodificación entrópica, que puede emplearse en el paso 311. El codificador toma muchas decisiones durante el proceso de compresión, tales como seleccionar planes de partición en bloques a partir de varias opciones posibles basándose en el posicionamiento espacial de los valores en la o las imágenes de entrada. La señalización de las opciones precisas puede requerir un gran número de contenedores. Tal y como se usa en la presente memoria, un contenedor es un valor binario que se trata como una variable (p. ej., un valor de bit, que puede variar dependiendo del contexto). La codificación entrópica permite que el codificador descarte cualquier opción que sea claramente inviable para un caso particular, lo que deja un conjunto de opciones admisibles. Cada opción admisible se asigna entonces una palabra clave. La longitud de las palabras clave se basa en el número de opciones admisibles (p. ej., un contenedor para dos opciones, dos contenedores para tres o cuatro opciones, etc.). El codificador codifica entonces la palabra clave para la opción seleccionada. Este plan reduce el tamaño de las palabras clave, ya que éstas son tan grandes como se desee para indicar de manera exclusiva una selección de entre un pequeño subconjunto de opciones admisibles en vez de indicar de manera exclusiva la selección de entre un conjunto potencialmente grande de todas las opciones posibles. A continuación, el decodificador decodifica la selección determinando el conjunto de opciones admisibles de una manera parecida a la del codificador. Al determinar el conjunto de opciones admisibles, el decodificador puede leer la palabra clave y determinar la selección realizada por el codificador.
En un paso 313, el decodificador realiza una decodificación de bloques. En concreto, el decodificador emplea transformadas inversas para generar unos bloques residuales. Luego, el decodificador emplea los bloques residuales y los correspondientes bloques de predicción para reconstruir los bloques de imagen según la partición. Los bloques de predicción pueden incluir tanto bloques de intrapredicción como bloques de interpredicción tal y como se generan en el codificador en el paso 305. Los bloques de imagen reconstruidos se colocan luego en unos cuadros de una señal de vídeo reconstruida según los datos de partición determinados en el paso 311. La sintaxis para el paso 313 también puede señalizarse en el flujo de bits por codificación entrópica, tal y como se comentó anteriormente.
En un paso 315 se realiza un filtrado de los cuadros de la señal de vídeo reconstruida de una manera parecida a la del paso 307 realizado en el codificador. Por ejemplo, a los cuadros se les pueden aplicar filtros de supresión de ruido, filtros antibloque, filtros de bucle adaptativo y filtros SAO para eliminar los artefactos de efecto bloque. Una vez que se filtran los cuadros, la señal de vídeo puede reenviarse para fusionarse en un paso 317 y luego darse salida hacia una pantalla, tal como una HMD, para ser visualizados por un usuario final.
La presente descripción se refiere a unas modificaciones para evitar la aparición de artefactos cuando señales de vídeo de subimágenes procedentes de una señal de vídeo de RV se codifican a una resolución particular y luego se decodifican a resoluciones variables según la codificación dependiente del área de visualización. Artefactos de este tipo ocurren debido a mecanismos en la compresión de bloques del paso 305. La presente descripción también se refiere a una señalización de que un flujo de bits de subimágenes se ha codificado de manera autorreferencial y de que, por tanto, se puede emplear una función de fusión ligera para decodificar el flujo de bits de subimágenes sin que se produzcan tales artefactos. Por lo tanto, la presente descripción mejora la funcionalidad de la compresión de bloques del paso 305 realizada en el codificador y de la decodificación de bloques del paso 313 realizada en el decodificador. Esto se traduce en un tamaño de archivo reducido y, por tanto, en un aumento del rendimiento de codificación, y en un proceso de decodificación más rápido y, por tanto, una reducción de la utilización de recursos de procesamiento, y/o se traduce en una mayor calidad visual de la señal de vídeo de RV resultante decodificada en el decodificador.
La figura 4 es un diagrama esquemático de un sistema 400 de codificación y decodificación (códec) ejemplar para realizar una codificación de vídeo. En concreto, el sistema códec 400 proporciona una funcionalidad para admitir la codificación y la decodificación de señales de vídeo de subimágenes según los métodos 200 y 300. Además, el sistema códec 400 puede emplearse para implementar un codificador 103 y/o un decodificador 107 del sistema 100.
El sistema códec 400 se ha generalizado para representar unos componentes empleados tanto en un codificador como en un decodificador. El sistema códec 400 recibe y divide cuadros para formar una señal de vídeo (que incluye, p. ej., una señal de vídeo de subimágenes), tal y como se comentó con respecto a los pasos 301 y 303 del método 300 de funcionamiento, lo que tiene como resultado unas señales 401 de vídeo divididas. Cuando actúa como codificador, el sistema códec 400 comprime entonces las señales 401 de vídeo divididas y forma un flujo de bits codificado, tal y como se comentó con respecto a los pasos 305, 307 y 309 del método 300. Cuando actúa como decodificador, el sistema códec 400 genera una señal de vídeo de salida del flujo de bits, tal y como se comentó con respecto a los pasos 311, 313, 315 y 317 del método 300 de funcionamiento. El sistema códec 400 incluye un componente 411 general de control de codificador, un componente 413 de cuantificación y cambio de escala de transformada, un componente 415 de estimación intraimagen, un componente 417 de predicción intraimagen, un componente 419 de compensación del movimiento, un componente 421 de estimación del movimiento, un componente 429 de cambio de escala y transformada inversa, un componente 427 de análisis de control de filtros, un componente 425 de filtros en bucle, un componente 423 de memoria intermedia de imágenes decodificadas y un componente 431 de codificación aritmética binaria adaptativa al contexto (CABAC, por sus siglas en inglés) y formateo de cabecera. Tales componentes están acoplados tal y como se muestra. En la figura 4, las líneas negras indican el movimiento de datos que hay codificar/decodificar, mientras que las líneas discontinuas indican el movimiento de datos de control que controlan el funcionamiento de otros componentes. Todos los componentes del sistema códec 400 pueden estar presentes en el codificador. El decodificador puede incluir un subconjunto de los componentes del sistema códec 400. Por ejemplo, el decodificador puede incluir el componente 417 de predicción intraimagen, el componente 419 de compensación del movimiento, el componente 429 de cambio de escala y transformada inversa, el componente 425 de filtros en bucle y el componente 423 de memoria intermedia de imágenes decodificadas. Ahora se describirán estos componentes.
La señal 401 de vídeo dividida es una secuencia de vídeo captada que ha sido dividida en unos bloques de píxeles por un árbol de codificación. Un árbol de codificación emplea diversos modos de escisión para subdividir un bloque de píxeles en bloques de píxeles más pequeños. Estos bloques pueden subdividirse todavía más en bloques más pequeños. Los bloques pueden denominarse nodos en el árbol de codificación. Los nodos principales más grandes se escinden en nodos hijos más pequeños. El número de veces que un nodo se ha subdividido se denomina profundidad del nodo/árbol de codificación. Los bloques divididos pueden incluirse en algunos casos en unas unidades de codificación (CU). Por ejemplo, una unidad CU puede ser una subparte de una unidad CTU que contiene un bloque de luminancia, uno o unos bloques de crominancia de diferencia roja (Cr) y uno o unos bloques de crominancia de diferencia azul (Cb) junto con las correspondientes instrucciones de sintaxis para la unidad CU. Los modos de escisión pueden incluir un árbol binario (BT), un árbol triple (TT) y un árbol cuádruple (QT), que se emplean para dividir un nodo en dos, tres o cuatro nodos hijos, respectivamente, de formas variables dependiendo de los modos de escisión empleados. La señal 401 de vídeo dividida se reenvía al componente 411 general de control de codificador, el componente 413 de cuantificación y cambio de escala de transformada, el componente 415 de estimación intraimagen, el componente 427 de análisis de control de filtros y el componente 421 de estimación del movimiento para su compresión.
El componente 411 general de control de codificador está configurado para tomar decisiones relacionadas con la codificación de las imágenes de la secuencia de vídeo para formar el flujo de bits según las restricciones de aplicación. Por ejemplo, el componente 411 general de control de codificador gestiona la optimización de la velocidad binaria y el tamaño de flujo de bits frente a la calidad de reconstrucción. Tales decisiones se pueden realizar basándose en una disponibilidad de espacio de almacenamiento/ancho de banda y unas solicitudes de resolución de imágenes. El componente 411 general de control de codificador también gestiona la utilización de la memoria intermedia a la luz de la velocidad de transmisión para mitigar problemas de agotamiento y desbordamiento de memoria intermedia. Para gestionar estos problemas, el componente 411 general de control de codificador gestiona la partición, la predicción y el filtrado realizados por los demás componentes. Por ejemplo, el componente 411 general de control de codificador puede incrementar dinámicamente la complejidad de compresión para aumentar la resolución y aumentar el uso de ancho de banda o disminuir la complejidad de compresión para reducir la resolución y el uso de ancho de banda. Por lo tanto, el componente 411 general de control de codificador controla los demás componentes del sistema códec 400 para compensar la calidad de reconstrucción de señales de vídeo con temas de velocidad binaria. El componente 411 general de control de codificador crea unos datos de control con los que se controla el funcionamiento de los demás componentes. Los datos de control también se reenvían al componente 431 de codificación CABAC y formateo de cabecera para codificarse en el flujo de bits para indicar parámetros que hay que decodificar en el decodificador.
La señal 401 de vídeo dividida también se envía al componente 421 de estimación del movimiento y al componente 419 de compensación del movimiento para la interpredicción. Un cuadro o trozo de la señal 401 de vídeo dividida puede dividirse en múltiples bloques de vídeo. El componente 421 de estimación del movimiento y el componente 419 de compensación del movimiento realizan una codificación interpredictiva del bloque de vídeo recibido en relación con uno o más bloques en uno o más cuadros de referencia para proporcionar una predicción temporal. El sistema códec 400 puede realizar múltiples pasadas de codificación para, p. ej., seleccionar un modo de codificación apropiado para cada bloque de datos de vídeo.
El componente 421 de estimación del movimiento y el componente 419 de compensación del movimiento pueden estar muy integrados, pero se ilustran separados a efectos conceptuales. La estimación del movimiento, realizada por el componente 421 de estimación del movimiento, es el proceso de generación de vectores de movimiento, con los que se estima el movimiento para bloques de vídeo. Por ejemplo, un vector de movimiento puede indicar el desplazamiento de un objeto codificado en relación con un bloque predictivo. Un bloque predictivo es un bloque que se ha visto que coincide estrechamente con el bloque que hay que codificar en términos de diferencia de píxeles. Un bloque predictivo también puede denominarse bloque de referencia. Tales diferencias de píxeles pueden determinarse mediante una suma de las diferencias absolutas (SAD, por sus siglas en inglés), la suma de las diferencias cuadradas (SSD, por sus siglas en inglés) u otras métricas de diferencia. En la codificación HEVC se emplean varios objetos codificados, incluidos una unidad CTU, bloques de árbol de codificación (CTB, por sus siglas en inglés) y unidades CU. Por ejemplo, una unidad CTU se puede dividir en bloques CTB, que luego se pueden dividir en bloques CB para su inclusión en las unidades CU. Una unidad CU puede codificarse como una unidad de predicción (PU, por sus siglas en inglés) que contiene datos de predicción y/o como una unidad de transformación (TU) que contiene datos residuales transformados para la unidad CU. El componente 421 de estimación del movimiento genera vectores de movimiento, unidades PU y unidades TU usando un análisis de velocidad-distorsión como parte de un proceso de optimización de la distorsión de la velocidad. Por ejemplo, el componente 421 de estimación del movimiento puede determinar múltiples bloques de referencia, múltiples vectores de movimiento, etc., para un bloque/cuadro actual y puede seleccionar los bloques de referencia, vectores de movimiento, etc., que tienen las mejores características de velocidad-distorsión. Las mejores características de velocidad-distorsión compensan la calidad de reconstrucción de vídeo (p. ej., la cantidad de pérdida de datos por compresión) con el rendimiento de codificación (p. ej., el tamaño de la codificación final).
En algunos ejemplos, el sistema códec 400 puede calcular valores para unas posiciones de píxel subentero de unas imágenes de referencia almacenadas en el componente 423 de memoria intermedia de imágenes decodificadas. Por ejemplo, el sistema códec 400 puede interpolar los valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de píxel fraccionario de la imagen de referencia. Por lo tanto, el componente 421 de estimación del movimiento puede realizar una búsqueda de movimiento en relación con las posiciones de píxel completo y las posiciones de píxel fraccionario y generar un vector de movimiento con una precisión de píxel fraccionaria. El componente 421 de estimación del movimiento calcula un vector de movimiento para una unidad PU de un bloque de vídeo en un trozo intercodificado comparando la posición de la unidad PU con la posición de un bloque predictivo de una imagen de referencia. El componente 421 de estimación del movimiento da salida al vector de movimiento calculado como datos de movimiento al componente 431 de CABAC y formateo de cabecera para codificarlos y moverlos al componente 419 de compensación del movimiento.
La compensación de movimiento, realizada por el componente 419 de compensación del movimiento, puede conllevar obtener o generar el bloque predictivo basándose en el vector de movimiento determinado por el componente 421 de estimación del movimiento. De nuevo, el componente 421 de estimación del movimiento y el componente 419 de compensación del movimiento pueden estar en algunos ejemplos integrados funcionalmente. Una vez recibido el vector de movimiento para la unidad PU del bloque de vídeo actual, el componente 419 de compensación del movimiento puede localizar el bloque predictivo al que apunta el vector de movimiento. Luego se forma un bloque de vídeo residual restando valores de píxel del bloque predictivo de los valores de píxel del bloque de vídeo actual que se está codificando, lo que da lugar a valores de diferencia de píxel. Generalmente, el componente 421 de estimación del movimiento realiza una estimación del movimiento en relación con componentes de luminancia, y el componente 419 de compensación del movimiento usa los vectores de movimiento calculados basándose en los componentes de luminancia tanto para los componentes de crominancia como para los componentes de luminancia. El bloque predictivo y el bloque residual se reenvían al componente 413 de cuantificación y cambio de escala de transformada.
La señal 401 de vídeo dividida también se envía al componente 415 de estimación intraimagen y al componente 417 de predicción intraimagen. Al igual que ocurre con el componente 421 de estimación del movimiento y el componente 419 de compensación del movimiento, el componente 415 de estimación intraimagen y el componente 417 de predicción intraimagen pueden estar muy integrados, pero se ilustran separados a efectos conceptuales. El componente 415 de estimación intraimagen y el componente 417 de predicción intraimagen intrapredicen un bloque actual en relación con bloques en un cuadro actual como alternativa a la interpredicción realizada por el componente 421 de estimación del movimiento y el componente 419 de compensación del movimiento entre cuadros, tal y como se describió anteriormente. En particular, el componente 415 de estimación intraimagen determina un modo de intrapredicción a usar para codificar un bloque actual. En algunos ejemplos, el componente 415 de estimación intraimagen selecciona un modo de intrapredicción apropiado para codificar un bloque actual de entre múltiples modos de intrapredicción probados. Los modos de intrapredicción seleccionados se reenvían luego al componente 431 de CABAC y formateo de cabecera para la codificación.
Por ejemplo, el componente 415 de estimación intraimagen calcula valores de velocidad-distorsión usando un análisis de velocidad-distorsión para los diversos modos de intrapredicción probados y selecciona el modo de intrapredicción que tiene las mejores características de velocidad-distorsión de entre los modos probados. El análisis de velocidaddistorsión generalmente determina una cantidad de distorsión (o de error) entre un bloque codificado y un bloque original no codificado que se codificó para producir el bloque codificado, así como una velocidad binaria (p. ej., un número de bits) usada para producir el bloque codificado. El componente 415 de estimación intraimagen puede calcular unas relaciones a partir de las distorsiones y las velocidades para los diversos bloques codificados para determinar qué modo de intrapredicción presenta el mejor valor de velocidad-distorsión para el bloque. Además, el componente 415 de estimación intraimagen puede configurarse para codificar bloques de profundidad de un mapa de profundidad usando un modo de modelado de profundidad (DMM, por sus siglas en inglés) basado en una optimización de velocidad-distorsión (RDO, por sus siglas en inglés).
El componente 417 de predicción intraimagen puede, cuando se implementa en un codificador, generar un bloque residual a partir del bloque predictivo basándose en los modos de intrapredicción seleccionados determinados por el componente 415 de estimación intraimagen o, cuando se implementa en un decodificador, leer el bloque residual del flujo de bits. El bloque residual incluye la diferencia de valores entre el bloque predictivo y el bloque original, representada como una matriz. El bloque residual se reenvía entonces al componente 413 de cuantificación y cambio de escala de transformada. El componente 415 de estimación intraimagen y el componente 417 de predicción intraimagen pueden trabajar tanto sobre componentes de luminancia como sobre componentes de crominancia.
El componente 413 de cuantificación y cambio de escala de transformada está configurado para comprimir todavía más el bloque residual. El componente 413 de cuantificación y cambio de escala de transformada aplica una transformada, tal como una transformada de coseno discreta (DCT, por sus siglas en inglés) una transformada de seno discreta (DST, por sus siglas en inglés) o una transformada conceptualmente similar, al bloque residual, lo que produce un bloque de vídeo que comprende valores de coeficiente de transformada residuales. También podrían usarse transformadas de ondícula, transformadas de números enteros, transformadas de subbanda u otros tipos de transformadas. La transformada puede convertir la información residual de un dominio de valor de píxel a un dominio de la transformada, tal como un dominio de la frecuencia. El componente 413 de cuantificación y cambio de escala de transformada también está configurado para cambiar la escala de la información residual transformada, por ejemplo, basándose en la frecuencia. Tal cambio de escala conlleva aplicar un factor de escala a la información residual para que una información de frecuencia diferente se cuantifique a distintas granularidades, lo que puede afectar a la calidad visual final del vídeo reconstruido. El componente 413 de cuantificación y cambio de escala de transformada también está configurado para cuantificar los coeficientes de transformada para reducir aún más la velocidad binaria. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación. En algunos ejemplos, el componente 413 de cuantificación y cambio de escala de transformada puede entonces realizar una exploración de la matriz que incluye los coeficientes de transformada cuantificados. Los coeficientes de transformada cuantificados se reenvían al componente 431 de CABAC y formateo de cabecera para codificarse en el flujo de bits.
El componente 429 de cambio de escala y transformada inversa aplica una operación inversa a la del componente 413 de cuantificación y cambio de escala de transformada para admitir la estimación del movimiento. El componente 429 de cambio de escala y transformada inversa aplica una escala, transformación y/o cuantificación inversa(s) para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para su uso posterior como bloque de referencia que puede convertirse en un bloque predictivo para otro bloque actual. El componente 421 de estimación del movimiento y/o el componente 419 de compensación del movimiento puede(n) calcular un bloque de referencia añadiendo de nuevo el bloque residual a un correspondiente bloque predictivo para usarse en la estimación del movimiento de un bloque/cuadro posterior. A los bloques de referencia reconstruidos se les aplican unos filtros para mitigar los artefactos creados durante el cambio de escala, la cuantificación y las transformadas. De lo contrario, tales artefactos podrían causar una predicción imprecisa (y crear artefactos adicionales) cuando se predigan bloques posteriores.
El componente 427 de análisis de control de filtros y el componente 425 de filtros en bucle aplican los filtros a los bloques residuales y/o a bloques de imagen reconstruidos. Por ejemplo, el bloque residual transformado procedente del componente 429 de cambio de escala y transformada inversa puede combinarse con un correspondiente bloque de predicción procedente del componente 417 de predicción intraimagen y/o del componente 419 de compensación del movimiento para reconstruir el bloque de imagen original. Los filtros pueden entonces aplicarse al bloque de imagen reconstruido. En algunos ejemplos, los filtros pueden, en cambio, aplicarse a los bloques residuales. Al igual que ocurre con otros componentes en la figura 4, el componente 427 de análisis de control de filtros y el componente 425 de filtros en bucle están muy integrados y pueden implementarse juntos, pero se representan separados a efectos conceptuales. Los filtros aplicados a los bloques de referencia reconstruidos se aplican a unas regiones espaciales particulares e incluyen múltiples parámetros para ajustar cómo se aplican tales filtros. El componente 427 de análisis de control de filtros analiza los bloques de referencia reconstruidos para determinar dónde deberían aplicarse tales filtros y establece unos parámetros correspondientes. Tales datos se reenvían al componente 431 de CABAC y formateo de cabecera como datos de control de filtro para la codificación. El componente 425 de filtros en bucle aplica tales filtros basándose en los datos de control de filtro. Los filtros pueden incluir un filtro antibloque, un filtro de supresión de ruido, un filtro SAO y un filtro de bucle adaptativo. Dependiendo del ejemplo, tales filtros pueden aplicarse en el dominio del espacio/píxeles (p. ej., en un bloque de píxeles reconstruido) o en el dominio de la frecuencia.
Cuando funciona como codificador, el bloque de imagen reconstruido filtrado, el bloque residual y/o el bloque de predicción se almacenan en el componente 423 de memoria intermedia de imágenes decodificadas para su uso posterior en la estimación del movimiento, tal y como se comentó anteriormente. Cuando funciona como decodificador, el componente 423 de memoria intermedia de imágenes decodificadas almacena y reenvía los bloques reconstruidos y filtrados a un visualizador como parte de una señal de vídeo de salida. El componente 423 de memoria intermedia de imágenes decodificadas puede ser cualquier dispositivo de memoria que sea capaz de almacenar bloques de predicción, bloques residuales y/o bloques de imagen reconstruidos.
El componente 431 de CABAC y formateo de cabecera recibe los datos procedentes de los diversos componentes del sistema códec 400 y codifica tales datos en un flujo de bits codificado para su transmisión a un decodificador. En concreto, el componente 431 de CABAC y formateo de cabecera genera diversas cabeceras para codificar unos datos de control, tales como datos de control generales y datos de control de filtro. Además, los datos de predicción, incluidos los datos de intrapredicción y de movimiento, así como los datos residuales en forma de datos de coeficiente de transformada cuantificados se codifican todos en el flujo de bits. El flujo de bits final incluye la información que quiere el decodificador para reconstruir la señal 401 de vídeo dividida original. Tal información puede también incluir unas tablas de índice de modo de intrapredicción (también denominadas tablas de mapeo de palabras clave), definiciones de contextos de codificación para diversos bloques, indicaciones de los modos de intrapredicción más probables, una indicación de información de partición, etc. Tales datos pueden codificarse por codificación entrópica. Por ejemplo, la información puede codificarse por codificación de longitud variable adaptativa al contexto (CAVLC, por sus siglas en inglés), codificación CABAC, codificación aritmética binaria adaptativa al contexto y basada en la sintaxis (SBAC, por sus siglas en inglés), codificación entrópica de partición en intervalos probabilísticos (PIPE, por sus siglas en inglés) u otra técnica de codificación entrópica. Después de la codificación entrópica, el flujo de bits codificado puede transmitirse a otro dispositivo (p. ej., un decodificador de vídeo) o archivarse para su posterior transmisión o recuperación.
La presente descripción incluye unas modificaciones para evitar que aparezcan artefactos cuando unas señales de vídeo de subimágenes procedentes de una señal de vídeo de RV se codifiquen a una resolución particular y luego se decodifiquen a resoluciones variables según la codificación dependiente del área de visualización. Tales artefactos tienen lugar debido a mecanismos en la intrapredicción según un componente 415 de estimación intraimagen y/o un componente 417 de predicción intraimagen y en la interpredicción según un componente 419 de compensación del movimiento y/o un componente 421 de estimación del movimiento. Por lo tanto, la presente descripción mejora la funcionalidad de un componente 415 de estimación intraimagen, un componente 417 de predicción intraimagen, un componente 419 de compensación del movimiento y/o un componente 421 de estimación del movimiento en un codificador y/o un decodificador. Una vez que se realizan tales modificaciones, los flujos de bits de subimágenes pueden considerarse autorreferenciales y, por tanto, pueden decodificarse según un proceso de fusión ligera. Esto se traduce en un tamaño de archivo reducido y, por tanto, en un aumento del rendimiento de codificación, y en un proceso de decodificación más rápido y, por tanto, una reducción de la utilización de recursos de procesamiento, y/o se traduce en una mayor calidad visual de la señal de vídeo de RV resultante decodificada en el decodificador.
La figura 5 es un diagrama de bloques que ilustra un codificador 500 de vídeo ejemplar que puede codificar flujos de bits de subimágenes. El codificador 500 de vídeo puede emplearse para implementar las funciones de codificación del sistema códec 400 y/o implementar los pasos 301, 303, 305, 307 y/o 309 del método 300. Además, el codificador 500 puede emplearse para implementar los pasos 205-209 del método 200, así como el codificador 103. El codificador 500 divide una señal de vídeo de entrada (p. ej., una señal de vídeo de subimágenes), lo que da como resultado una señal 501 de vídeo dividida que es sustancialmente similar a la señal 401 de vídeo dividida. La señal 501 de vídeo dividida es comprimida y codificada a continuación por componentes del codificador 500 para formar un flujo de bits.
En concreto, la señal 501 de vídeo dividida se reenvía a un componente 517 de predicción intraimagen para una intrapredicción. El componente 517 de predicción intraimagen puede ser sustancialmente similar al componente 415 de estimación intraimagen y al componente 417 de predicción intraimagen. La señal 501 de vídeo dividida también se reenvía a un componente 521 de compensación del movimiento para una interpredicción basada en unos bloques de referencia que están en un componente 523 de memoria intermedia de imágenes decodificadas. El componente 521 de compensación del movimiento puede ser sustancialmente similar al componente 421 de estimación del movimiento y al componente 419 de compensación del movimiento. Los bloques de predicción y los bloques residuales procedentes del componente 517 de predicción intraimagen y del componente 521 de compensación del movimiento se reenvían a un componente 513 de transformada y cuantificación para transformar y cuantificar los bloques residuales. El componente 513 de transformada y cuantificación puede ser sustancialmente similar al componente 413 de escalado y cuantificación de transformada. Los bloques residuales transformados y cuantificados y los correspondientes bloques de predicción (junto con datos de control asociados) se reenvían a un componente 531 de codificación entrópica para codificarse en un flujo de bits. El componente 531 de codificación entrópica puede ser sustancialmente similar al componente 431 de CABAC y formateo de cabecera.
Los bloques residuales transformados y cuantificados y/o los correspondientes bloques de predicción también se reenvían del componente 513 de transformada y cuantificación a un componente 529 de transformada inversa y cuantificación para su reconstrucción en bloques de referencia para su uso por el componente 521 de compensación del movimiento. El componente 529 de transformada inversa y cuantificación puede ser sustancialmente similar al componente 429 de cambio de escala y transformada inversa. Dependiendo del ejemplo, a los bloques residuales y/o a los bloques de referencia reconstruidos también se les aplican unos filtros en bucle en un componente 525 de filtros en bucle. El componente 525 de filtros en bucle puede ser sustancialmente similar al componente 427 de análisis de control de filtro y al componente 425 de filtros en bucle. El componente 525 de filtros en bucle puede incluir múltiples filtros, tal y como se comentó con respecto al componente 425 de filtros en bucle. Los bloques filtrados se almacenan entonces en un componente 523 de memoria intermedia de imágenes decodificadas para su uso como bloques de referencia por el componente 521 de compensación del movimiento. El componente 523 de memoria intermedia de imágenes decodificadas puede ser sustancialmente similar al componente 423 de memoria intermedia de imágenes decodificadas.
El codificador 500 recibe unas señales de vídeo de subimágenes escindidas de una señal de vídeo esférico para su uso en combinación con un sistema de RV usando una codificación dependiente del área de visualización. Tal y como se ha indicado anteriormente, cuando las señales de vídeo de subimágenes se transmiten a un decodificador a resoluciones variables, pueden tener lugar artefactos debido a los datos perdidos en el proceso de reducción de resoluciones para las señales de vídeo de subimágenes de peor calidad. Esto se debe a que tanto la intrapredicción como la interpredicción codifican bloques basándose en muestras (píxeles) procedentes de bloques adyacentes. Cuando las referencias atraviesan límites de señal de vídeo de subimágenes, las referencias pueden volverse imprecisas debido a la pérdida de datos en una señal de vídeo de subimágenes adyacente. Para mitigar estos problemas, el componente 521 de compensación del movimiento y el componente 517 de predicción intraimagen del codificador 500 codifican cada señal de vídeo de subimágenes para que sea autorreferenciada y, por tanto, autónoma. En concreto, el componente 521 de compensación del movimiento y el componente 517 de predicción intraimagen están configurados para hacer referencia únicamente a ubicaciones de muestra completa en la misma señal de vídeo de subimágenes durante la codificación. En concreto, cuando se está codificando una primera señal de vídeo de subimágenes, se impide que el codificador 500 haga referencia a ubicaciones de muestra completa de otras señales de vídeo de subimágenes. Esto aplica tanto a modos de intrapredicción como a vectores de movimiento de interpredicción.
Tal y como se indicó anteriormente, una muestra, también conocida como píxel, es un valor en una ubicación correspondiente, donde el valor puede incluir un valor de luminancia/luz y/o uno o más valores de crominancia/color. Los dispositivos de grabación toman imágenes (y las muestran en un visualizador) expresando valores en posiciones enteras en una rejilla de muestreo. Una posición entera en una rejilla de muestreo se conoce como una ubicación de muestra completa porque un valor de muestra se expresa en una ubicación de muestra completa. Una ubicación de muestra fraccionaria es una posición que no es una posición entera en la rejilla de muestreo. Las ubicaciones de muestra fraccionaria pueden emplearse cuando los objetos se desplazan distancias no enteras entre cuadros y cuando se realiza un filtrado. Un valor en una ubicación de muestra fraccionaria se puede determinar como un valor ponderado (p. ej., un promedio ponderado) determinado basándose en los valores en ubicaciones de muestra completa. El componente 521 de compensación del movimiento y el componente 517 de predicción intraimagen pueden hacer referencia a tales ubicaciones de muestra fraccionaria en la primera señal de vídeo de subimágenes, pero solo cuando el valor de muestra eficaz en la ubicación de muestra fraccionaria referenciada puede recrearse por interpolación basándose únicamente en ubicaciones de muestra que hay dentro del primer flujo de bits de subimágenes (p. ej., sin hacer referencia a ningún otro flujo de bits de subimágenes). Además, el componente 521 de compensación del movimiento puede generar listas de candidatos a vector de movimiento para un primer flujo de bits de subimágenes cuando se realiza la interpredicción. Sin embargo, el componente 521 de compensación del movimiento puede no incluir vectores de movimiento en la lista de candidatos cuando los vectores de movimiento proceden de bloques en otro flujo de bits de subimágenes. Estas restricciones garantizan que cada flujo de bits de subimágenes puede decodificarse sin hacer referencia a un flujo de bits de subimágenes vecino, y, por tanto, se evitan los desajustes basados en la resolución.
Además, la codificación de vídeo puede emplear una paralelización, tal como el procesamiento WPP, para acelerar el proceso de codificación de vídeo. El procesamiento WPP permite codificar un bloque actual (p. ej., una unidad CTU) siempre y cuando ya se hayan decodificado el bloque que está encima del bloque actual y el bloque que está encima y a la derecha del bloque actual. El procesamiento WPP crea la impresión de una onda, codificándose la fila superior de bloques dos bloques por delante de la segunda fila de bloques, que va dos bloques por delante de la tercera fila, etc. Los cuadros de flujo de bits de subimágenes pueden tratarse en el decodificador como mosaicos, y éstos se pueden fusionar para reconstruir la señal de vídeo esférico. El procesamiento WPP no puede configurarse para funcionar cuando haya mosaicos presentes porque el WPP trabaja sobre un cuadro completo a una vez (p. ej., el cuadro procedente de la señal de vídeo esférico) y no a nivel de mosaico. En consecuencia, el codificador 500 puede impedir el procesamiento WPP cuando codifica un flujo de bits de subimágenes. Por ejemplo, en el procesamiento WPP se usa un entropy_coding_sync_enabled_flag. El indicador se incluye en la sintaxis de conjunto PPS para cada imagen. El codificador 500 puede poner el entropy_coding_sync_enabled_flag a cero para impedir el procesamiento WPP con señales de vídeo de subimágenes.
Además, el codificador 500 puede evitar problemas de desajuste de temporización entre los flujos de bits de subimágenes codificando las señales de vídeo de subimágenes en pistas y garantizando que las pistas tengan el mismo tiempo de presentación. Además, el codificador 500 puede garantizar que cada muestra procedente de una imagen de Rv común (p. ej., un cuadro en una señal de vídeo esférico) emplee el mismo valor de recuento de orden de imagen aunque tales muestras se escindan en distintos flujos de bits de subimágenes y/o se porten en distintas pistas.
El codificador 500 también puede señalizar que las restricciones mencionadas anteriormente se han aplicado a los flujos de bits de subimágenes y que, por tanto, los flujos de bits de subimágenes pueden decodificarse según un algoritmo de fusión ligero. Por ejemplo, el codificador 500 puede emplear una señalización de formato de archivo para reenviar una indicación fusionable a nivel de pista que indica que puede aplicarse una función de fusión ligera a los flujos de bits de subimágenes. Por ejemplo, el codificador 500 puede codificar los flujos de bits de subimágenes con el formato ISOBMFF y también puede incluir la indicación fusionable a nivel de pista en una caja a nivel de pista, por ejemplo, en un indicador tal como un indicador track_mergable_with_other_video_tracks asociado a una pista que contiene el correspondiente flujo de bits de subimágenes. Cuando se establece, el indicador puede indicar que la pista contiene un flujo de bits de subimágenes que puede fusionarse con otros flujos de bits de subimágenes (que también tienen un correspondiente indicador de conjunto) empleando la función de fusión ligera (p. ej., sin cambiar unos resultados de codificación a nivel de bloque). La indicación fusionable a nivel de pista puede incluirse en cajas a nivel de pista, tal como una caja de cabecera de pista, una caja de medios, etc. En este contexto, una caja a nivel de pista es cualquier caja que describa una pista especificada. En otro ejemplo, la indicación fusionable a nivel de pista puede incluirse en una descripción de grupo de pistas.
La figura 6 es un diagrama de bloques que ilustra un decodificador 600 de vídeo ejemplar que puede decodificar flujos de bits de subimágenes. El decodificador 600 de vídeo puede emplearse para implementar las funciones de decodificación del sistema códec 400 y/o implementar los pasos 311, 313, 315 y/o 317 del método 300 de funcionamiento. Además, el decodificador 600 puede emplearse para implementar los pasos 211-213 del método 200, así como el decodificador 107. El decodificador 600 recibe una pluralidad de flujos de bits de subimágenes procedentes de, por ejemplo, un codificador 500, genera una señal de vídeo de salida reconstruida que incluye señales de vídeo de subimágenes, fusiona las señales de vídeo de subimágenes en una señal de vídeo esférico y reenvía la señal de vídeo esférico para mostrarse a un usuario a través de un dispositivo de representación.
Los flujos de bits son recibidos por un componente 633 de decodificación entrópica. El componente 633 de decodificación entrópica está configurado para implementar un plan de decodificación entrópica, tal como una codificación CAVLC, CABAC, SBAC u PIPE u otras técnicas de codificación entrópica. Por ejemplo, el componente 633 de decodificación entrópica puede emplear información de cabecera para proporcionar un contexto para interpretar datos adicionales codificados como palabras clave en los flujos de bits. La información decodificada incluye cualquier información requerida para decodificar la señal de vídeo, tal como datos de control generales, datos de control de filtro, información de partición, datos de movimiento, datos de predicción y coeficientes de transformada cuantificados procedentes de bloques residuales. Los coeficientes de transformada cuantificados se reenvían a un componente 629 de transformada inversa y cuantificación para su reconstrucción en bloques residuales. El componente 629 de transformada inversa y cuantificación puede ser similar al componente 529 de transformada inversa y cuantificación.
Los bloques residuales reconstruidos y/o los bloques de predicción se reenvían al componente 617 de predicción intraimagen para su reconstrucción en bloques de imágenes basándose en operaciones de intrapredicción. El componente 617 de predicción intraimagen puede ser similar al componente 415 de estimación intraimagen y al componente 417 de predicción intraimagen. En concreto, el componente 617 de predicción intraimagen emplea modos de predicción para localizar un bloque de referencia en el cuadro y aplica un bloque residual al resultado para reconstruir unos bloques de imágenes intrapredichos. Los bloques de imagen intrapredichos reconstruidos y/o los bloques residuales y los correspondientes datos de interpredicción se reenvían a un componente 623 de memoria intermedia de imágenes decodificadas a través de un componente 625 de filtros en bucle, que puede ser sustancialmente similar al componente 423 de memoria intermedia de imágenes decodificadas y al componente 425 de filtros en bucle, respectivamente. El componente 625 de filtros en bucle filtra los bloques de imagen reconstruidos, los bloques residuales y/o los bloques de predicción, y tal información se almacena en el componente 623 de memoria intermedia de imágenes decodificadas. Los bloques de imagen reconstruidos procedentes del componente 623 de memoria intermedia de imágenes decodificadas se reenvían a un componente 621 de compensación del movimiento para la interpredicción. El componente 621 de compensación del movimiento puede ser sustancialmente similar al componente 421 de estimación del movimiento y/o al componente 419 de compensación del movimiento. En concreto, el componente 621 de compensación del movimiento emplea vectores de movimiento procedentes de un bloque de referencia para generar un bloque de predicción y aplica un bloque residual al resultado para reconstruir un bloque de imagen. Los bloques reconstruidos resultantes también pueden reenviarse a través del componente 625 de filtros en bucle al componente 623 de memoria intermedia de imágenes decodificadas. El componente 623 de memoria intermedia de imágenes decodificadas sigue almacenando bloques de imagen reconstruidos adicionales, que pueden reconstruirse para formar cuadros a través de la información de partición. Tales cuadros también se pueden colocar formando una secuencia. Se da salida a la secuencia hacia un visualizador como una señal de vídeo de salida reconstruida.
Tal y como se ha indicado anteriormente, el decodificador 600 decodifica los flujos de bits de subimágenes para crear señales de vídeo de subimágenes. El decodificador 600 puede emplear entonces un algoritmo de fusión ligero para fusionar las señales de vídeo de subimágenes en una señal de vídeo esférico para su visualización. El algoritmo de fusión ligero incluye seleccionar subimágenes procedentes de cada señal de vídeo de subimágenes que se producen en un tiempo de presentación común y forman parte, por tanto, del mismo cuadro esférico. Las subimágenes se fusionan luego colocando cada subimagen basándose en una posición asociada a la correspondiente señal de vídeo de subimágenes. El algoritmo de fusión se considera un algoritmo ligero porque el enfoque no requiere que el decodificador 600 considere las dependencias entre señales de vídeo de subimágenes. En cambio, cada señal de vídeo de subimágenes puede decodificarse de manera relativamente independiente, y los resultados pueden fusionarse (p. ej., con algo de filtrado en los límites entre subimágenes). Por lo tanto, el algoritmo de fusión ligero puede suponer que los flujos de bits de subimágenes son autorreferenciados y puede no cambiar los resultados de codificación a nivel de bloque determinados para cada flujo de bits de subimágenes al fusionarse las subimágenes entre sí. Este algoritmo de fusión ligero emplea menos recursos de procesamiento en comparación con la consideración de dependencias de flujo de bits de subimágenes durante la decodificación. Además, el algoritmo de fusión ligero puede realizarse en tiempo real durante la visualización para un usuario en vez de realizarse tal fusión en el preprocesamiento antes de la visualización. Por lo tanto, el algoritmo de fusión ligero puede posibilitar la codificación dependiente del área de visualización, ya que ésta se realiza en tiempo real durante la visualización para un usuario. Además, el algoritmo de fusión ligero puede realizarse sin que aparezcan artefactos gracias a las restricciones de codificación empleadas en el codificador 500, tal y como se comentó anteriormente. En concreto, el algoritmo de fusión ligero puede realizarse a medida que cada flujo de bits de subimágenes se codifica de una manera que es autónoma y no depende de otros flujos de bits de subimágenes.
El decodificador 600 puede determinar si aplicar el algoritmo de fusión ligero basándose en una señalización procedente del codificador 500. Por ejemplo, el decodificador 600 puede revisar una información a nivel de pista para una indicación fusionable a nivel de pista, tal como la que está en una caja de cabecera de pista, una caja de medios y/o una descripción de grupo de pistas. Tras encontrar una indicación fusionable a nivel de pista, tal como un correspondiente indicador establecido, el decodificador 600 puede decodificar los flujos de bits de subimágenes por separado y fusionar los resultados en cuadros de RV representables para su visualización. Cuando no está incluida la indicación fusionable a nivel de pista, por ejemplo, el indicador relevante se ha puesto a cero, el decodificador 600 puede emplear un proceso de decodificación más complejo que afecta a la codificación a nivel de bloque, por ejemplo, decodificando cada subimagen haciendo referencia a otras subimágenes independientemente de los límites de flujo de bits de subimágenes.
Las figuras anteriores describen diversos componentes y métodos para codificar y decodificar señales de vídeo de subimágenes para su uso en sistemas de RV. La figura 7 se presenta para ilustrar un posicionamiento espacial ejemplar de cuadros de subimágenes mapeadas a partir de un cuadro esférico. Luego, las figuras 8-10 describen unos mecanismos empleados en la interpredicción, tales como el uso de vectores de movimiento y la generación de listas de candidatos. Estas figuras se presentan para ilustrar los problemas que pueden ocurrir cuando los vectores de movimiento atraviesan los límites entre señales de vídeo de subimágenes, tal y como se ilustra en la figura 7, así como para ilustrar las restricciones que pueden aplicarse para mitigar tales problemas. Luego, las figuras 11-14 describen mecanismos para señalizar que se han aplicado tales restricciones y que, por tanto, puede usarse la fusión ligera en el decodificador.
La figura 7 es un diagrama esquemático que ilustra una pluralidad de unas señales 701 y 703 de vídeo de subimágenes escindidas de una señal 700 de vídeo de imágenes de RV. La señal 700 de vídeo de imágenes de RV puede ser mapeada en las señales 701 y 703 de vídeo de subimágenes por un codificador 103 y/o por el dispositivo 104 de codificación de RV. Las señales 701 y 703 de vídeo de subimágenes pueden ser fusionadas de nuevo en la señal 700 de vídeo de imágenes de RV por un decodificador 107. Por lo tanto, la señal 700 de vídeo de imágenes de RV y las señales 701 y 703 de vídeo de subimágenes ilustran el paso 205 y el paso 213 del método 200. Las señales 701 y 703 de vídeo de subimágenes pueden ser codificadas y decodificadas por interpredicción, por ejemplo, por el componente 421 de estimación del movimiento, el componente 419 de compensación del movimiento, el componente 521 de compensación del movimiento y/o el componente 621 de compensación del movimiento. Las señales 701 y 703 de vídeo de subimágenes también pueden ser codificadas y decodificadas por intrapredicción, por ejemplo, por el componente 415 de estimación intraimagen, el componente 417 de predicción intraimagen, el componente 517 de predicción intraimagen y/o el componente 617 de predicción intraimagen. Por lo tanto, cada una de las señales 701 y 703 de vídeo de subimágenes puede codificarse y decodificarse según el método 300.
Una señal 700 de vídeo de imágenes de RV incluye una pluralidad de cuadros presentados a lo largo del tiempo. Los cuadros de la señal 700 de vídeo de imágenes de RV pueden subdividirse cada uno en unos cuadros secundarios, también conocidos como subimágenes. Por consiguiente, cada cuadro y cada subimagen correspondiente incluye una posición temporal (p. ej., orden de imágenes) como parte de la presentación temporal. Las señales 701 y 703 de vídeo de subimágenes se crean cuando la subdivisión se aplica sistemáticamente a lo largo del tiempo. Tal subdivisión sistemática crea las señales 701 y 703 de vídeo de subimágenes, donde cada señal contiene un conjunto de subimágenes de un tamaño, una forma y una posición espaciales predeterminados en relación con los correspondientes cuadros en la señal 700 de vídeo de imágenes de RV. Además, el conjunto de subimágenes en una señal 701 y/o una señal 703 de vídeo de subimágenes varía en posición temporal durante el tiempo de presentación. Así, las subimágenes de las señales 701 y 703 de vídeo de subimágenes pueden alinearse en el dominio de tiempo basándose en la posición temporal. A continuación, las subimágenes procedentes de las señales 701 y 703 de vídeo de subimágenes en cada posición temporal se pueden fusionar en el dominio espacial basándose en una posición espacial predefinida para reconstruir la señal 700 de vídeo de imágenes de RV para su visualización.
Tal y como se utiliza en la presente memoria, las señales 701 de vídeo de subimágenes pueden denominarse primera señal de vídeo de subimágenes (y/o primer flujo de bits de subimágenes si se habla de un contexto codificado). Las señales 703 de vídeo de subimágenes se presenta para ilustrar las señales de vídeo de subimágenes vecinas (y/o los flujos de bits de subimágenes vecinos) que son adyacentes a la primera señal 701 de vídeo de subimágenes. Por lo tanto, las señales 701 y 703 de vídeo de subimágenes se distinguen a efectos de análisis de las diversas realizaciones descritas en la presente memoria y son por lo demás sustancialmente similares.
La figura 8 es un diagrama esquemático que ilustra un ejemplo de una interpredicción unidireccional 800, por ejemplo, como la que se realiza para determinar vectores de movimiento (MV) en el paso 305 de compresión de bloques, el paso 313 de decodificación de bloques, el componente 421 de estimación del movimiento, el componente 419 de compensación del movimiento, el componente 521 de compensación del movimiento y/o el componente 621 de compensación del movimiento. Por ejemplo, la interpredicción unidireccional 800 puede emplearse para determinar unos vectores de movimiento para unos bloques procedentes de una subimagen en una señal 701 y/o 703 de vídeo de subimágenes y, por tanto, puede ser empleada por un codificador 103 y un decodificador 107 cuando realizan los pasos 207 y 211, respectivamente, del método 200.
La interpredicción unidireccional 800 emplea un cuadro 830 de referencia con un bloque 831 de referencia para predecir un bloque 811 actual en un cuadro 810 actual. Tal y como se muestra, el cuadro 830 de referencia puede colocarse temporalmente después del cuadro 810 actual (p. ej., como un cuadro de referencia posterior), pero en algunos ejemplos también puede colocarse temporalmente antes del cuadro 810 actual (p. ej., como un cuadro de referencia anterior). El cuadro 810 actual es un cuadro/imagen ejemplar que se codifica/decodifica en un momento particular. El cuadro 810 actual contiene un objeto en el bloque 811 actual que coincide con un objeto en el bloque 831 de referencia del cuadro 830 de referencia. El cuadro 830 de referencia es un cuadro que se emplea como referencia para codificar un cuadro 810 actual, y un bloque 831 de referencia es un bloque en el cuadro 830 de referencia que contiene un objeto que también está contenido en el bloque 811 actual del cuadro 810 actual.
El bloque 811 actual es cualquier unidad de codificación que se esté codificando/decodificando en un momento especificado en el proceso de codificación. El bloque 811 actual puede ser un bloque dividido completo o, en el caso de la interpredicción afín, puede ser un subbloque. El cuadro 810 actual está separado del cuadro 830 de referencia por alguna distancia temporal (TD) 833. La distancia TD 833 indica una cantidad de tiempo entre el cuadro 810 actual y el cuadro 830 de referencia en una secuencia de vídeo y puede medirse en unidades de cuadros. La información de predicción para el bloque 811 actual puede hacer referencia al cuadro 830 de referencia y/o al bloque 831 de referencia por un índice de referencia que indica la dirección y la distancia temporal entre los cuadros. Durante el período de tiempo representado por la distancia TD 833, el objeto en el bloque 811 actual se mueve desde una posición en el cuadro 810 actual hasta otra posición en el cuadro 830 de referencia (p. ej., la posición del bloque 831 de referencia). Por ejemplo, el objeto puede moverse a lo largo de una trayectoria 813 de movimiento, que es un sentido de movimiento de un objeto a lo largo del tiempo. Un vector 835 de movimiento describe el sentido y la magnitud del movimiento del objeto a lo largo de la trayectoria 813 de movimiento a lo largo de la distancia TD 833. Por consiguiente, un vector 835 de movimiento codificado y un bloque 831 de referencia proporcionan suficiente información como para reconstruir un bloque 811 actual y colocar el bloque 811 actual en el cuadro 810 actual.
La figura 9 es un diagrama esquemático que ilustra un ejemplo de una interpredicción bidireccional 900, por ejemplo, como la que se realiza para determinar vectores de movimiento (MV) en el paso 305 de compresión de bloques, el paso 313 de decodificación de bloques, el componente 421 de estimación del movimiento, el componente 419 de compensación del movimiento, el componente 521 de compensación del movimiento y/o el componente 621 de compensación del movimiento. Por ejemplo, la interpredicción unidireccional 800 puede emplearse para determinar unos vectores de movimiento para unos bloques procedentes de una subimagen en una señal 701 y/o 703 de vídeo de subimágenes y, por tanto, puede ser empleada por un codificador 103 y un decodificador 107 cuando realizan los pasos 207 y 211, respectivamente, del método 200. Cabe señalar que un codificador puede seleccionar codificar un bloque según la interpredicción bidireccional 900 o la interpredicción unidireccional 800 (p. ej., como parte de una optimización RDO) dependiendo de qué enfoque proporciona el mejor rendimiento de codificación y/o calidad de reconstrucción para el bloque especificado.
La interpredicción bidireccional 900 es similar a la interpredicción unidireccional 800, pero emplea un par de cuadros de referencia para predecir un bloque 911 actual en un cuadro 910 actual. Por lo tanto, el cuadro 910 actual y el bloque 911 actual son sustancialmente similares al cuadro 810 actual y al bloque 811 actual, respectivamente. El cuadro 910 actual se coloca temporalmente entre un cuadro 920 de referencia anterior, que aparece antes del cuadro 910 actual en la secuencia de vídeo, y un cuadro 930 de referencia posterior, que aparece después del cuadro 910 actual en la secuencia de vídeo. El cuadro 920 de referencia anterior y el cuadro 930 de referencia posterior son por lo demás sustancialmente similares al cuadro 830 de referencia.
El bloque 911 actual se hace coincidir con un bloque 921 de referencia anterior en el cuadro 920 de referencia anterior y con un bloque 931 de referencia posterior en el cuadro 930 de referencia posterior. Dicha coincidencia indica que, en el transcurso de la secuencia de vídeo, un objeto se mueve desde una posición en el bloque 921 de referencia anterior hasta una posición en el bloque 931 de referencia posterior a lo largo de una trayectoria 913 de movimiento y a través del bloque 911 actual. El cuadro 910 actual está separado del cuadro 920 de referencia anterior por alguna distancia temporal 923 anterior (TD0) y está separado del cuadro 930 de referencia posterior por alguna distancia temporal 933 posterior (TD1). La distancia TD0 923 indica una cantidad de tiempo entre el cuadro 920 de referencia anterior y el cuadro 910 actual en la secuencia de vídeo en unidades de cuadros. La distancia TD 1933 indica una cantidad de tiempo entre el cuadro 910 actual y el cuadro 930 de referencia posterior en la secuencia de vídeo en unidades de cuadro. Por lo tanto, el objeto se mueve del bloque 921 de referencia anterior al bloque 911 actual a lo largo de la trayectoria 913 de movimiento durante un período de tiempo indicado por la distancia TD0 923. El objeto también se mueve del bloque 911 actual al bloque 931 de referencia posterior a lo largo de la trayectoria 913 de movimiento durante un período de tiempo indicado por la distancia TD1 933. La información de predicción para el bloque 911 actual puede hacer referencia al cuadro 920 de referencia anterior y/o al bloque 921 de referencia anterior y al cuadro 930 de referencia posterior y/o al bloque 931 de referencia posterior mediante un par de índices de referencia que indican el sentido y la distancia temporal entre los cuadros.
Un vector 925 de movimiento anterior (MV0) describe el sentido y la magnitud del movimiento del objeto a lo largo de la trayectoria 913 de movimiento a lo largo de la distancia TD0923 (p. ej., entre el cuadro 920 de referencia anterior y el cuadro 910 actual). Un vector 935 de movimiento posterior (MV1) describe el sentido y la magnitud del movimiento del objeto a lo largo de la trayectoria 913 de movimiento a lo largo de la distancia TD1 933 (p. ej., entre el cuadro 910 actual y el cuadro 930 de referencia posterior). Así, en la interpredicción bidireccional 900, el bloque 911 actual puede codificarse y reconstruirse empleando el bloque 921 de referencia anterior y/o el bloque 931 de referencia posterior, el vector MV0925 y el vector MV1 935.
Tal y como se ha indicado anteriormente, un bloque en una subimagen procedente de una señal 701 y/o 703 de vídeo de subimágenes puede codificarse mediante la interpredicción unidireccional 800 y/o la interpredicción bidireccional 900. Por ejemplo, un objeto puede moverse a lo largo del tiempo entre una señal 701 de vídeo de subimágenes y una señal 703 de vídeo de subimágenes adyacente. En tal caso, la interpredicción puede hacer coincidir muestras (p. ej., píxeles) en un bloque actual en la señal 701 de vídeo de subimágenes con muestras en un bloque de referencia en la señal 703 de vídeo de subimágenes adyacente. El bloque actual podría codificarse entonces como un vector de movimiento que haga referencia a las muestras en la señal 703 de vídeo de subimágenes adyacente. Este enfoque funciona correctamente siempre y cuando tanto la señal 701 de vídeo de subimágenes como la señal 703 de vídeo de subimágenes se decodifiquen a la misma resolución. Sin embargo, en la codificación dependiente del área de visualización, la resolución de la señal 703 de vídeo de subimágenes puede verse reducida con un proceso con pérdidas que elimine los datos para comprimir aún más las subimágenes en la señal 703 de vídeo de subimágenes. Por consiguiente, el bloque de referencia que contiene las muestras de referencia puede quedar alterado o incluso eliminarse de las subimágenes en la señal 703 de vídeo de subimágenes. En este caso, el vector de movimiento codificado todavía puede apuntar al bloque de referencia correcto, pero puede que las muestras contenidas en el bloque de referencia ya no sean precisas para la resolución usada por la señal 701 de vídeo de subimágenes. Además, en algunos casos la señal 703 de vídeo de subimágenes puede incluso ser omitida por completo, lo que se traduciría en que el vector de movimiento haría referencia a datos vacíos. En cualquiera de los casos anteriores, el bloque actual que se está decodificando a partir de la señal 701 de vídeo de subimágenes se reemplaza por la muestra de peor calidad, cuando está disponible, o incluso se expresa de una manera errónea no definida que depende de la implementación del decodificador. Cabe señalar que, aunque el presente problema se analice en términos de interpredicción, el mismo error podría ocurrir en la intrapredicción. La única diferencia es que, en el caso de intrapredicción, la muestra de referencia aparece en la misma posición temporal que el bloque actual, mientras que, en el caso de interpredicción, la muestra de referencia aparece en una posición temporal diferente que el bloque actual.
Para evitar estos problemas, los codificadores descritos en la presente memoria pueden restringirse cuando codifican cada señal de vídeo de subimágenes (p. ej., incluidas las señales 701 y 703 de vídeo de subimágenes). Por ejemplo, los bloques en una primera señal 701 de vídeo de subimágenes solo pueden codificarse haciendo referencia, a través de un vector de movimiento o del modo de intrapredicción, a ubicaciones de muestra completa en la misma primera señal 701 de vídeo de subimágenes y, por tanto, no pueden hacer referencia a ubicaciones de muestras de otras (p. ej., adyacentes) señales 703 de vídeo de subimágenes. Además, los bloques en una primera señal 701 de vídeo de subimágenes pueden codificarse para hacer referencia a ubicaciones de muestra/píxel fraccionario en una señal 701 de vídeo de subimágenes, pero solo si la muestra en la ubicación de muestra fraccionaria puede recrearse por interpolación basándose únicamente en unas ubicaciones de muestra dentro de la misma primera señal 701 de vídeo de subimágenes (p. ej., y no dependiente de ninguna manera de datos procedentes de las señales 703 de vídeo de subimágenes adyacentes). De esta manera, las muestras pueden codificarse y decodificarse independientemente para cada señal 701/703 de vídeo de subimágenes, y los cambios de resolución en una señal 703 de vídeo de subimágenes adyacente no afectan a la primera señal 701 de vídeo de subimágenes y viceversa.
Las restricciones mencionadas anteriormente pueden aplicarse en combinación con ciertas otras restricciones para hacer que una señal 701 y/o una señal 703 de vídeo de subimágenes sea autorreferenciada. Por ejemplo, cuando se codifica una señal 701 de vídeo de subimágenes para que los mecanismos de interpredicción e intrapredicción no hagan referencia a una ubicación de muestra o a una ubicación de muestra fraccionaria en la señal 703 de vídeo de subimágenes o viceversa, los flujos de bits de subimágenes resultantes pueden fusionarse mediante un algoritmo ligero en el decodificador (suponiendo que también se satisfagan las demás restricciones). Por lo tanto, cuando el codificador incluye una indicación fusionable a nivel de pista en datos de pista para la señal 701 de vídeo de subimágenes, el decodificador puede determinar que se han satisfecho las restricciones relacionadas con la muestra mencionadas anteriormente y que la señal 701 de vídeo de subimágenes puede fusionarse con otros flujos 703 de bits de subimágenes sin modificar los resultados de decodificación de bloques para la señal 701 de vídeo de subimágenes para tener en cuenta una posible modificación de los datos de muestra debido a mecanismos de codificación con pérdidas que se hayan aplicado a otras señales 703 de vídeo de subimágenes.
La figura 10 es un diagrama esquemático que ilustra un ejemplo de un mecanismo 1000 de codificación de vídeo basada en bloques. Por ejemplo, el mecanismo 1000 puede usarse para la intrapredicción, la interpredicción unidireccional 800 y/o la interpredicción bidireccional 900. Por lo tanto, el mecanismo 1000 de codificación de vídeo basada en bloques puede usarse para determinar modos de intrapredicción o vectores de movimiento, dependiendo del ejemplo, en el paso 305 de compresión de bloques, el paso 313 de decodificación de bloques, el componente 415 de estimación intraimagen, el componente 417 de predicción intraimagen, el componente 421 de estimación del movimiento, el componente 419 de compensación del movimiento, el componente 517 de predicción intraimagen, el componente 521 de compensación del movimiento, el componente 617 de predicción intraimagen y/o el componente 621 de compensación del movimiento. Por ejemplo, el mecanismo 1000 puede emplearse cuando se codifican unos bloques procedentes de una subimagen en una señal 701 y/o 703 de vídeo de subimágenes y, por tanto, puede ser empleado por un codificador 103 y un decodificador 107 cuando realizan los pasos 207 y 211, respectivamente, del método 200.
El mecanismo 1000 codifica un bloque 1001 actual basándose en unos bloques 1002 codificados previamente que están en el mismo cuadro. En un caso de intrapredicción, el bloque 1001 actual se hace coincidir con muestras procedentes de los bloques 1002 codificados. El bloque 1001 actual puede codificarse entonces mediante un modo de intrapredicción que indique las muestras procedentes de los bloques 1002 codificados que predicen las muestras en el bloque 1001 actual. En el caso de que un bloque 1001 actual se coloque en una primera señal 701 de vídeo de subimágenes y un bloque 1002 codificado se coloque en una señal 703 de vídeo de subimágenes adyacente, pueden producirse errores de codificación en la codificación dependiente del área de visualización debido a diferencias de resolución. Por lo tanto, se puede impedir que los codificadores descritos en la presente memoria usen modos de intrapredicción de una primera señal 701 de vídeo de subimágenes que dependan de muestras procedentes de una señal 703 de vídeo de subimágenes adyacente.
El mecanismo 1000 también se puede usar en ciertos tipos de interpredicción. En concreto, la interpredicción puede emplear diversos modos tales como el modo de fusión y el modo de predicción AMVP. En ambos modos, el vector de movimiento para un bloque 1001 actual puede seleccionarse basándose en vectores de movimiento de los bloques 1002 codificados. En el modo de fusión, los vectores de movimiento seleccionados de los bloques 1002 codificados pueden incluirse en una lista de candidatos. La lista de candidatos también puede incluir vectores de movimiento que indiquen que no hay movimiento alguno, vectores de movimiento de bloques temporalmente adyacentes en cuadros anteriores y/o posteriores, vectores de movimiento que se hayan usado repetidamente para bloques previamente codificados, etc. El vector de movimiento para el bloque 1001 actual se selecciona luego de la lista de candidatos. El vector de movimiento para el bloque 1001 actual puede entonces señalizarse como un índice de lista de candidatos. Esto permite que un bloque 1001 actual sea codificado mediante un único valor de índice. El decodificador puede generar la lista de candidatos para el bloque 1001 actual usando el mismo proceso que el codificador, y luego puede determinar el vector de movimiento para el bloque 1001 actual basándose en el índice de lista de candidatos. El modo de predicción AMVP es similar al modo de fusión, pero puede emplearse cuando ninguno de los vectores de movimiento en la lista de candidatos representa el vector de movimiento correcto para el bloque 1001 actual. En este caso, el modo de predicción AMVP puede seleccionar el vector de movimiento de la lista de candidatos que coincida más estrechamente con el vector de movimiento correcto para el bloque 1001 actual. El modo de predicción AMVP codifica entonces tanto el índice de lista de candidatos del candidato a vector de movimiento seleccionado como un valor que indique la diferencia entre el candidato a vector de movimiento seleccionado y el vector de movimiento correcto para el bloque actual.
Tanto el modo de fusión como el modo de predicción AMVP pueden causar errores en la codificación dependiente del área de visualización cuando el bloque 1001 actual se coloca en una primera señal 701 de vídeo de subimágenes y el bloque 1002 codificado se coloca en una señal 703 de vídeo de subimágenes adyacente. Por ejemplo, cuando se reduce la resolución para la señal 703 de vídeo de subimágenes adyacente, puede cambiar el vector de movimiento para el bloque 1002 codificado en la señal 703 de vídeo de subimágenes adyacente. Esto daría como resultado que la lista de candidatos generada para el bloque 1001 actual en el decodificador haría referencia a vectores de movimiento que se han visto alterados debido a cambios de resolución. Sin embargo, la lista de candidatos generada por el codificador se genera cuando tanto el bloque 1001 actual como el bloque 1002 codificado tienen la misma resolución. Por lo tanto, en este caso las listas de candidatos ya no coinciden. Cuando las listas de candidatos no coinciden, el índice puede apuntar al candidato como vector de movimiento incorrecto en el decodificador. Esto puede traducirse en que el decodificador seleccione el bloque de referencia incorrecto para el bloque 1001 actual y, por tanto, muestre los valores de muestra incorrectos para el bloque 1001 actual.
Para superar estos problemas, los codificadores descritos en la presente memoria pueden restringirse para que las listas de candidatos a vector de movimiento para un bloque l0 o i actual en una primera señal 701 de vídeo de subimágenes no incluyan vectores de movimiento de bloques 1002 codificados en flujos 703 de bits de subimágenes vecinos. Por ejemplo, durante la generación de la lista de candidatos, tales vectores de movimiento de otros flujos 703 de bits de subimágenes vecinos no se añaden a la lista de candidatos y, por tanto, no pueden seleccionarse mediante el modo de predicción AMVP o el modo de fusión cuando se realice la interpredicción. Esta restricción, en combinación con la restricción que impide hacer referencia a muestras en otros flujos 703 de bits de subimágenes, garantiza que cada flujo 701 de bits de subimágenes puede decodificarse sin hacer referencia a un flujo 703 de bits de subimágenes vecino y, por tanto, se evitan los errores de coincidencia basados en la resolución.
Al igual que ocurre con las restricciones relacionadas con las muestras comentadas anteriormente, el codificador puede aplicar las restricciones de lista de candidatos a vector de movimiento mencionadas anteriormente para garantizar que una señal 701 y/o una señal 703 de vídeo de subimágenes sean autorreferenciadas y que, por tanto, se pueden fusionar. Por consiguiente, cuando el codificador incluye una indicación fusionable a nivel de pista en datos de pista para la señal 701 de vídeo de subimágenes, el decodificador puede determinar que se han satisfecho las restricciones de lista de candidatos a vector de movimiento mencionadas anteriormente y que la señal 701 de vídeo de subimágenes puede fusionarse con otros flujos 703 de bits de subimágenes sin modificar los resultados de decodificación de bloques para la señal 701 de vídeo de subimágenes para tener en cuenta una posible modificación de los datos de vector de movimiento debido a mecanismos de codificación con pérdidas que se hayan aplicado a otras señales 703 de vídeo de subimágenes.
Otra fuente de errores potenciales en la codificación dependiente del área de visualización es que el recuento de orden de imagen y/o los datos de tiempo de presentación pueden cambiar entre resoluciones. El recuento de orden de imagen indica un orden de un cuadro en un segmento de medios y, por tanto, puede ser usado por el decodificador para colocar cuadros en segmentos de medios en la secuencia adecuada para su visualización. Los datos de tiempo de presentación de medios indican la duración durante la cual se debe mostrar un segmento de medios basándose en, por ejemplo, el recuento de orden de imagen, la tasa de cuadros, etc. Como estos datos son específicos de una señal de vídeo de subimágenes, los cambios relacionados con la resolución que afectan a la velocidad de cuadros, el recuento de orden de imagen, el tiempo de presentación, etc., podrían hacer que las secciones espaciales de un vídeo de RV se muestren desordenadas. Por ejemplo, distintas partes de subimagen del cuadro de vídeo esférico podrían mostrarse a distintas velocidades, lo que haría que el usuario viese partes del vídeo de RV desordenadas con respecto a otras partes del vídeo de RV en el mismo cuadro de RV.
Para mitigar tales problemas de desajuste de temporización, los codificadores en la presente memoria pueden restringirse para garantizar que cada pista tenga el mismo tiempo de presentación independientemente de la resolución. Además, cada pista que contiene un flujo de bits de subimágenes puede restringirse para incluir el mismo número de muestras de medios (p. ej., el mismo número total de cuadros). Además, las muestras de medios para cada segmento de pista que están asociadas al mismo cuadro de RV pueden usar el mismo valor de recuento de orden de imagen. Esto puede mantenerse aun cuando dichas subimágenes se escindan en distintos flujos de bits de subimágenes y/o se porten en distintas pistas. Cuando se aplican estas restricciones, las subimágenes se visualizan en el mismo orden y la misma velocidad independientemente de la resolución. Por lo tanto, pueden mezclarse distintas resoluciones en una única señal de vídeo esférico sin producir errores de temporización.
Al igual que ocurre con las restricciones relacionadas con la lista de candidatos a muestra y a vector de movimiento comentadas previamente, el codificador puede aplicar las restricciones de temporización mencionadas anteriormente para garantizar que una señal 701 y/o una señal 703 de vídeo de subimágenes se alinee(n) en el dominio de tiempo y, por tanto, se pueda(n) fusionar basándose en el recuento de cuadros y la posición espacial. Por consiguiente, cuando el codificador incluye una indicación fusionable a nivel de pista en datos de pista para la señal 701 de vídeo de subimágenes, el decodificador puede determinar que se han satisfecho las restricciones de temporización mencionadas anteriormente y que la señal 701 de vídeo de subimágenes puede fusionarse con otros flujos 703 de bits de subimágenes sin modificar los resultados de decodificación de bloques para la señal 701 de vídeo de subimágenes para tener en cuenta una posible modificación de los resultados de codificación de bloques debido a cuadros de subimagen desordenados con respecto a otras señales 703 de vídeo de subimágenes.
Además, tal y como se comentó anteriormente, el procesamiento WPP puede alterar la manera en la que se decodifican bloques al alterar el orden de decodificación. Esto puede causar errores cuando se aplica a múltiples subimágenes combinadas a partir de múltiples pistas en un solo cuadro de una señal de vídeo esférico basada en RV. Los codificadores descritos en la presente memoria pueden impedir el procesamiento WPP alterando datos en un conjunto PPS para cada subimagen. Por ejemplo, un entropy_coding_sync_enabled_flag en cada conjunto PPS puede ponerse a cero para impedir el procesamiento WPP en el caso de las señales de vídeo de subimágenes. En algunos ejemplos, los datos relacionados con el procesamiento WPP se almacenan en banda incluyendo los datos relacionados con el WPP en las muestras de medios. En otros ejemplos, tales datos pueden almacenarse en cajas de pista o de fragmento de pista. En algunos ejemplos, cuando el codificador incluye una indicación fusionable a nivel de pista en datos de pista para la señal 701 de vídeo de subimágenes, el decodificador puede determinar que se ha impedido el procesamiento WPP.
La figura 11 es un diagrama esquemático que ilustra un formato ISOBMFF 1100 ejemplar para transportar una codificación de vídeo. Por ejemplo, una codificación de vídeo generada por el codificador 103, el sistema códec 400 y/o el codificador 500 puede almacenarse en el formato ISOBMFF 1100 para que sea decodificada por el decodificador 107, el sistema códec 400 y/o el decodificador 600. Por lo tanto, el formato ISOBMFF 1100 puede emplearse para almacenar y transmitir datos en los métodos 200 y 300. Además, los resultados de la interpredicción unidireccional 800 y/o de la interpredicción bidireccional 900, y el mecanismo 1000, tal y como se aplica a una subimagen en una señal 701 y/o una señal 703 de vídeo de subimágenes, pueden almacenarse en el formato ISOBMFF 1100.
El formato ISOBMFF 1100 incluye una serie de cajas que pueden incluir otras cajas. Una caja es un bloque de construcción orientado a objetos que está definido por un identificador de tipo y longitud exclusivos. Una caja es la estructura sintáctica elemental en el formato ISOBMFF 1100 y puede incluir un tipo de caja codificado de cuatro caracteres, un recuento de bytes de la caja y una carga útil. Por ejemplo, una caja puede ser una estructura sintáctica que comprende un tipo de caja codificado, un recuento de bytes de la caja y una carga útil. En algunos casos, todos los datos en un archivo que se ajusta al formato de archivo de codificación de vídeo de alta eficiencia (HEVC) pueden contenerse dentro de cajas y puede no haber datos en el archivo que no estén en una caja. Por lo tanto, un archivo en formato ISOBMFF puede incluir una secuencia de cajas, y las cajas pueden contener otras cajas. Por ejemplo, la carga útil de una caja puede incluir una o más cajas adicionales.
Los datos procedentes de un flujo de bits codificado, que incluyen tanto muestras de sintaxis como muestras de medios codificados, pueden almacenarse en unas cajas predeterminadas en el formato ISOBMFF 1100. Esto permite que el decodificador encuentre los datos relevantes abriendo la caja correspondiente. En el nivel superior, el formato ISOBMFF 1100 incluye una caja 1110 de tipo de archivo (ftyp), una caja 1120 de película (moov), cajas 1130 de fragmentos de película (moof) y cajas 1140 de datos de medios (mdat).
La caja ftyp 1110 contiene información de compatibilidad de archivos para la codificación. Generalmente, la caja ftyp 1110, y toda subcaja, contiene datos que indican dispositivos de decodificación que son capaces de visualizar los datos de vídeo incluidos.
La caja moov 1120 puede contener una caja 1121 de cabecera de película (mvhd), una caja 1122 de metadatos de múltiples pistas (meta), una pluralidad de cajas 1123 de pista (trak), una caja 1128 de descripción de grupo de pistas y/o una caja 1129 de región de subimágenes. La caja moov 1120 contiene datos funcionales relativos a la codificación. Por ejemplo, la caja moov 1120 puede contener datos de gestión de derechos digitales (DRM, por sus siglas en inglés) para el archivo. La caja moov 1120 también puede contener datos globales que indican cómo debe representarse el vídeo. La caja mvhd 1121 define características generales de toda la película, tales como unidades de escala temporal (p. ej., la unidad de tiempo por segundo para la película), la duración de la película en unidades de escala temporal, la velocidad de reproducción preferida, el volumen preferido, etc. La caja meta 1122 puede contener información de pista relevante para las pistas de película, tal como el título, la productora, la duración, la fecha de estreno, los tipos de pista, los idiomas admitidos, etc., de la película.
Las cajas trak 1123 contienen datos que describen las correspondientes pistas de medios. Una pista de medios puede incluir una pista de audio, una pista de subtítulos, una pista de consejos, una pista de vídeo, etc. El vídeo puede almacenarse en varias representaciones, cada una a una resolución diferente. En algunos ejemplos, una representación puede considerarse como una pista de medios. En el contexto de RV, un flujo de bits de subimágenes a una resolución especificada puede considerarse como una pista de medios. Cada una de las cajas trak 1123 corresponde a una pista y describe la pista correspondiente. Una caja trak 1123 puede contener una caja 1124 de cabecera de pista (tkhd). Una caja tkhd 1124 contiene características de una pista correspondiente, tales como identificadores (ID) de pista, la duración de pista, el volumen, la prioridad espacial, el ancho de pista, la altura de pista, etc. Una caja trak 1123 también puede incluir una caja 1125 de medios (mdia). La caja mdia 1125 puede contener información de medios de pista, tal como la escala temporal y la duración de la pista, la calidad de reproducción de pista (p. ej., la resolución), datos de lenguaje para la pista, etc. La caja mdia 1125 también puede contener una caja 1126 de información de medios (minf) para la pista. La caja minf 1126 puede contener información de manejador específica de la pista correspondiente, tal como datos que indiquen cómo se presenta una pista correspondiente, modos de gráficos, datos de compatibilidad, etc. La caja minf 1126 puede contener una caja 1127 de tabla de muestras (stbl). La caja stbl 1127 puede contener datos de tiempo y de indexación para una pista, tal como datos que indiquen la ubicación temporal de muestras de medios, el tipo de muestra de medios, el tamaño de muestra de medios, el contenedor de muestra de medios, el desplazamiento con respecto a la ubicación de contenedor de muestra de medios, etc.
La caja moov 1120 también puede contener una caja 1128 de grupo de pistas (trgr). La caja trgr 1128 puede describir asociaciones entre pistas de subimágenes que portan subimágenes que se escindieron de la misma imagen de fuente original antes de la codificación. La caja moov 1120 también puede contener una caja 1129 de región de subimágenes que puede contener datos que indiquen las dimensiones espaciales de subimágenes en un flujo de bits de subimágenes.
Las cajas moof 1130 contienen datos que describen segmentos de medios de pistas correspondientes. Un segmento de medios es una parte de una pista que está configurada para presentarse durante una duración predeterminada (p.
ej., un fragmento de tres segundos de una pista que contiene una señal de vídeo de subimágenes). Por ejemplo, la caja moof 1130 puede contener datos que indiquen los puntos inicial y final de un segmento de medios, así como la ubicación del segmento de medios en una memoria. Una caja moof 1130 puede contener una caja 1131 de fragmentos de pista (traf). La caja traf 1131 puede contener datos de temporización relacionados con el segmento de medios. Por ejemplo, la caja traf 1131 puede contener un recuento de orden de imagen para cada cuadro en un segmento de medios correspondiente. El recuento de orden de imagen indica el orden del cuadro en el segmento de medios y, por tanto, puede ser usado por el decodificador para colocar los cuadros en los segmentos de medios en la secuencia adecuada para su visualización. La caja traf 1131 también puede contener datos de tiempo de presentación de medios que indiquen la duración durante la cual debe visualizarse el segmento de medios, por ejemplo, basándose en el recuento de orden de imagen, la velocidad de cuadros, etc. La caja traf 1131 puede incluir a su vez una caja 1133 de duración de pista (trun). Una caja trun 1133 puede contener datos de temporización para una parte de un fragmento de pista, así como datos de desplazamiento en memoria que pueden usarse para localizar una parte de un fragmento de pista en una memoria.
Las cajas mdat 1140 pueden contener una o más muestras 1141 de medios. Las muestras 1141 de medios pueden incluir cuadros de vídeo, datos de audio u otros datos de pista que, cuando se toman juntos, forman duraciones de pista, fragmentos de pista y/o pistas. Las cajas anteriores pueden incluir subcajas adicionales. Cabe señalar que el formato ISOBMFF 1100 contiene un gran número de cajas utilizables. Por consiguiente, las cajas mostradas en la figura 11 son ejemplares y se incluyen para ilustrar ciertos ejemplos. Los ejemplos descritos en la presente memoria también pueden emplear otras cajas y/o configuraciones del formato ISOBMFF 1100.
Tal y como se ha indicado anteriormente, cada pista de una película puede incluir datos de vídeo, datos de audio, datos de subtítulos u otros datos de presentación de medios. Una pista se puede escindir en una pluralidad de segmentos de medios, también llamados fragmentos de pista. Un segmento de medios es una secuencia de medios de una duración predeterminada, tal como un videoclip de tres segundos. La codificación de la pista como una serie de segmentos de medios permite que un decodificador obtenga datos de distintas representaciones, por ejemplo, basándose en una entrada de usuario y/o basándose en unas demandas de red cambiantes. En la codificación dependiente del área de visualización basada en RV, los segmentos de medios permiten que el decodificador obtenga distintas partes espaciales de un vídeo de RV a distintas resoluciones basándose en la dirección en el que un usuario gira un área de visualización de un dispositivo de representación de RV. La información que describe las pistas se incluye en la caja moov 1120 y las subcajas correspondientes. Las cajas que contienen datos relacionados con una o más pistas completas, tal y como están almacenadas en la caja moov 1120, pueden denominarse cajas a nivel de pista. En las cajas moof 1130 y las subcajas correspondientes se almacena información que describe los segmentos de medios de las pistas.
La caja mdat 1140 contiene entonces las muestras 1141 de medios que forman las pistas y los segmentos de pista a los que hacen referencia la caja moov 1120 y la caja moof 1130. Por lo tanto, las muestras 1141 de medios se pueden organizar en fragmentos de pista basados en la temporización, el tipo (p. ej., audio, subtítulo, vídeo, etc.), la representación (p. ej., la resolución) y, en el caso de la codificación dependiente del área de visualización, la posición espacial. Así, las muestras 1141 de medios pueden incluir los flujos de bits de subimágenes codificados a partir de las señales 701 y 703 de vídeo de subimágenes a diversas resoluciones. Estas muestras 1141 de medios pueden reenviarse a un decodificador para representarse y visualizarse basándose en una solicitud de dispositivo de usuario (p. ej., un decodificador).
El formato ISOBMFF 1100 también puede incluir una o más indicaciones 1150 fusionables a nivel de pista. Una indicación 1150 fusionable a nivel de pista es una indicación de que una pista de subimágenes correspondiente es autorreferenciada y, por tanto, puede combinarse con otras pistas de subimágenes fusionables a través de un algoritmo de fusión ligero que no cambia los resultados de codificación de bloque para las subimágenes correspondientes. La indicación 1150 fusionable a nivel de pista se ha representado como una caja con líneas discontinuas porque la indicación 1150 fusionable a nivel de pista puede colocarse en muchas ubicaciones diferentes. Por ejemplo, la indicación 1150 fusionable a nivel de pista puede incluirse en cualquier caja que contenga datos de pista, tales como la caja moov 1120, la caja mvhd 1121, la caja meta 1122, la caja trak 1123, la caja tkhd 1124, la caja mdia 1125, la caja minf 1126, la caja stbl 1127 o combinaciones de las mismas.
Por consiguiente, se pueden emplear cajas del formato ISOBMFF 1100 para indicar a un decodificador que los flujos de bits de subimágenes codificados en pistas son autorreferenciados (debido a la aplicación de restricciones, tal y como se comentó anteriormente) y, por tanto, se pueden reconstruir según un proceso de fusión ligera sin alterar los resultados de codificación basada en bloques. En un ejemplo, un indicador de la caja tkhd 1124 puede establecerse como una indicación 1150 fusionable a nivel de pista para indicar cuándo es autorreferenciada una pista correspondiente. Por lo tanto, un indicador de este tipo, cuando se establece, indica que una correspondiente pista que incluye un flujo de bits de subimágenes es apta para fusionarse con otras pistas (que también tienen este indicador establecido) para generar un único flujo de bits de vídeo para RV mediante el uso de un proceso de reescritura de flujo de bits ligero que no conlleva cambiar unos resultados de codificación a nivel de bloque. Como ejemplo específico, la caja tkhd 1124 puede contener indicadores en diversas posiciones de bits, donde la posición de bit cero es el bit menos significativo y la posición de bit cinco puede contener la indicación 1150 fusionable a nivel de pista. La semántica de un indicador de este tipo se especifica de la siguiente manera:
track_mergable_with_other_video_tracks: Cuando se establece, indica que la pista es apta para fusionarse con otras pistas que también tienen este indicador establecido para generar un único flujo de bits de vídeo usando un proceso de reescritura de flujo de bits ligero que no conlleva cambiar unos resultados de codificación a nivel de bloque. El valor de indicador es 0x000020. Cuando el indicador no está establecido (p. ej., el indicador y 0x000020 es igual a 0), esto indica que la pista puede o no ser apta para tal fusión.
En el contexto de la codificación HEVC, este indicador puede establecerse para indicar que el flujo de bits de vídeo portado en la pista se ajusta a las restricciones que se especifican en la presente memoria. Además, este indicador puede establecerse para indicar que la pista se ajusta a la siguiente restricción de la siguiente manera:
Cuando el perfil del flujo de bits reconstruido objetivo no es un perfil de gran caudal de codificación HVEC o de gran caudal de pantalla extendida, el valor de entropy_coding_sync_enabled_flag en el conjunto PPS activo será igual a 0.
Cabe señalar que, cuando el indicador no se establece, esto indica que las restricciones pueden o no aplicar.
En otro ejemplo, cualquier caja a nivel de pista (p. ej., como las contenidas en una caja moov 1120) puede incluir el indicador mencionado anteriormente para indicar que una correspondiente pista que incluye un flujo de bits de subimágenes puede fusionarse con otras pistas (que también tienen este indicador establecido) para generar un único flujo de bits de vídeo para RV mediante el uso de un proceso de reescritura de flujo de bits ligero que no conlleva cambiar unos resultados de codificación a nivel de bloque. Por ejemplo, el indicador puede incluirse en la caja 1129 de región de subimágenes.
En otro ejemplo, un campo en la descripción de la caja trgr 1128, que indica un grupo de pistas que asocia pistas de subimágenes que portan subimágenes que se escindieron de la misma imagen fuente original antes de la codificación, puede indicar que una correspondiente pista que incluye un flujo de bits de subimágenes es apta para fusionarse con otras pistas (que también tienen este indicador establecido) para generar un único flujo de bits de vídeo para RV usando un proceso de reescritura de flujo de bits ligero que no conlleva cambiar unos resultados de codificación a nivel de bloque.
La figura 12 es un diagrama de flujo de un método 1200 ejemplar de una señalización a nivel de formato de archivo para indicar que unos flujos de bits de subimágenes, tales como las señales 701 y 703 de vídeo de subimágenes escindidas de una señal de vídeo esférico para su uso como señales de vídeo de RV, son fusionables a través de una función de fusión de múltiples flujos de bits. El método 1200 incluye una indicación fusionable a nivel de pista en el formato ISOBMFF 1100. En este contexto, la señalización a nivel de formato de archivo indica la señalización de la indicación fusionable a nivel de pista en la sintaxis de formato de archivo, tal como el formato ISOBMFF, en vez de señalizar una indicación así el propio flujo de bits. El método 1200 puede ser empleado por un codificador, tal como el codificador 103, el sistema códec 400 y/o el codificador 500, para indicarle a un decodificador, tal como el decodificador 107, el sistema códec 400 y/o el decodificador 600, que los flujos de bits de subimágenes pueden fusionarse. Además, el método 1200 puede emplearse para implementar una codificación dependiente del área de visualización para admitir los métodos 200 y 300. Además, el método 1200 puede emplearse para indicar que se ha(n) restringido la interpredicción unidireccional 800, la interpredicción bidireccional 900 y/o el mecanismo 1000 para que los flujos de bits de subimágenes puedan fusionarse como parte de unos mecanismos de codificación dependientes del área de visualización sin crear artefactos visuales debido a los límites entre señales de vídeo de subimágenes.
En un paso 1201, una señal de vídeo esférico se mapea en una pluralidad de señales de vídeo de subimágenes. Tal y como se indicó anteriormente, la señal de vídeo esférico se confecciona a partir de múltiples señales direccionales de vídeo. Las señales de vídeo de subimágenes resultantes contienen cada una una secuencia de subimágenes que están asociadas con una parte espacial de la señal de vídeo esférico.
En un paso 1203, la pluralidad de señales de vídeo de subimágenes se codifican cada una como una pluralidad de flujos de bits de subimágenes. Los flujos de bits de subimágenes están compuestos de una pluralidad de pistas de subimágenes, por ejemplo, según el formato ISOBMFF 1100. Codificar las señales de vídeo de subimágenes en pistas de subimágenes separadas admite la capacidad del decodificador de obtener pistas que contienen señales de vídeo de subimágenes relevantes a las resoluciones solicitadas. Por lo tanto, codificar las señales de vídeo de subimágenes en pistas separadas admite la capacidad del decodificador de fusionar la pluralidad de señales de vídeo de subimágenes. Por lo tanto, las pistas de subimágenes se componen para ser compatibles con una función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico, donde la función de fusión de múltiples flujos de bits puede fusionar pistas de subimágenes sin alterar los resultados de codificación a nivel de bloque relacionados con las pistas de subimágenes. Por consiguiente, la indicación fusionable a nivel de pista indica que un flujo de bits de vídeo portado en una pista de subimágenes actual puede fusionarse con un flujo de bits de subimágenes portado en las pistas de subimágenes que están en el mismo grupo de pistas. Además, la codificación de las señales de vídeo de subimágenes se realiza según las restricciones analizadas anteriormente. En concreto, los bloques solo pueden hacer referencia a ubicaciones de muestra completa en la misma señal de vídeo de subimágenes y, por tanto, no pueden hacer referencia a ubicaciones de muestra de otras señales de vídeo de subimágenes. Además, los bloques pueden codificarse en ubicaciones de muestra fraccionaria de referencia, pero solo si la muestra en la ubicación de muestra fraccionaria puede recrearse por interpolación basándose únicamente en ubicaciones de muestra que están dentro del mismo flujo de bits de subimágenes. Además, las listas de candidatos solo pueden incluir vectores de movimiento procedentes de los mismos flujos de bits de subimágenes. Además, las pistas que contienen las señales de vídeo de subimágenes pueden restringirse para tener el mismo tiempo de presentación y para garantizar que cada muestra de una imagen esférica común procedente de la señal de vídeo esférico emplea el mismo valor de recuento de orden de imagen. Además, puede impedirse el procesamiento WPP. Las restricciones anteriores, o combinaciones de las mismas, se pueden aplicar durante la codificación para garantizar que cada señal de vídeo de subimágenes sea completamente autorreferenciada y, por tanto, se pueda fusionar en el decodificador sin alterar los resultados de codificación de bloque.
En un paso 1205 se incluye una indicación fusionable a nivel de pista que está dentro de una caja a nivel de pista, tal como la caja moov 1120, para cada una de las pistas de subimágenes para indicar que las pistas correspondientes son completamente autorreferenciadas. La indicación fusionable a nivel de pista indica al decodificador que las pistas de subimágenes que la contienen son compatibles con una función de fusión de múltiples flujos de bits para reconstruirlos en la señal de vídeo esférico (o partes de la misma) sin alterar los resultados de codificación a nivel de bloque al considerar las diferencias de resolución entre las pistas. Las pistas de subimágenes son compatibles con la función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico cuando cada pista de subimágenes es apta para fusionarse con otras pistas de subimágenes a fin de generar un único flujo de bits de vídeo usando un proceso de reescritura de flujo de bits ligero que no conlleve cambiar unos resultados de codificación a nivel de bloque. El proceso de reescritura de flujo de bits ligero permite que cada flujo de bits de subimágenes portado en cada pista de subimágenes se fusione con uno o más otros flujos de la pluralidad de flujos de bits de subimágenes portados en una o más otras subimágenes de la pluralidad de subimágenes para generar el único flujo de bits de vídeo sin que haya un desajuste de decodificación reescribiendo únicamente datos de cabecera de los flujos de bits de subimágenes. Un desajuste de decodificación es un desajuste entre un valor de un píxel cuando se decodifica un flujo de bits de subimágenes en una pista de subimágenes fusionada y un valor del mismo píxel cuando se decodifica el único flujo de bits de vídeo fusionado. La indicación fusionable a nivel de pista puede colocarse en una caja a nivel de pista, por ejemplo, en la caja moov o en subcajas de la misma. En un ejemplo, la indicación fusionable a nivel de pista se codifica en una caja de cabecera de pista que está en una caja de pista para cada pista que contenga uno de los flujos de bits de subimágenes. En otro ejemplo, la indicación fusionable a nivel de pista se codifica en una caja de grupo de pistas que describe unas asociaciones entre las pistas que incluyan los flujos de bits de subimágenes. En otro ejemplo, la indicación fusionable a nivel de pista se codifica en una caja de medios que describe una información de medios de pista para las pistas que incluyan los flujos de bits de subimágenes. Como ejemplo específico, la indicación fusionable a nivel de pista puede incluir un indicador track_mergable_with_other_video_tracks que, cuando se establezca, indique que el flujo de bits de subimágenes portado en una pista de subimágenes correspondiente puede fusionarse con uno o más otros flujos de la pluralidad de flujos de bits de subimágenes portados en una o más otras pistas de la pluralidad de pistas de subimágenes para generar un único flujo de bits de vídeo sin que haya un desajuste de decodificación reescribiendo únicamente datos de cabecera de los flujos de bits, donde un desajuste de decodificación es un desajuste entre un valor de un píxel cuando se decodifica un flujo de bits de subimágenes en una pista de subimágenes fusionada y un valor del mismo píxel cuando se decodifica el único flujo de bits de vídeo fusionado. Por consiguiente, una pista correspondiente es apta para fusionarse con otras pistas para generar un único flujo de bits de vídeo usando un proceso de reescritura de flujo de bits ligero que no conlleve cambiar ningún resultado de codificación a nivel de bloque. En algunos ejemplos, la indicación fusionable a nivel de pista, cuando se establece, indica además que se desactiva una codificación entrópica en el caso de las pistas que incluyen los flujos de bits de subimágenes. Por lo tanto, la indicación fusionable a nivel de pista también puede indicar que no se permite el procesamiento paralelo de forma de onda, por ejemplo, poniendo un entropy_coding_sync_enabled_flag a cero en el conjunto PPS para cada pista que incluya los flujos de bits de subimágenes.
En un paso 1207, un conjunto de la pluralidad de pistas de subimágenes que contienen un conjunto de la pluralidad de flujos de bits de subimágenes, y la(s) indicación(es) fusionable(s) a nivel de pista se transmiten a un decodificador para admitir una decodificación y una visualización como una señal de vídeo de realidad virtual dependiente del área de visualización en un área de visualización de vídeo de realidad virtual. El decodificador puede leer las indicaciones fusionables a nivel de pista para pistas correspondientes para determinar qué pistas son completamente autorreferenciadas. El decodificador puede fusionar entonces los flujos de bits de subimágenes procedentes de pistas indicadas como autorreferenciadas basándose en su posición espacial sin considerar artefactos relacionados con resoluciones variables y/o con la temporización entre los flujos de bits de subimágenes.
Cabe observarse que la codificación dependiente del área de visualización puede implementarse según el formato de medios omnidireccional (OMAF) tal y como está controlado por el grupo de expertos en imágenes en movimiento (MPEG, por sus siglas en inglés). Las restricciones para garantizar que los flujos de bits de subimágenes son autorreferenciados en el método 1200 se pueden implementar incluyendo los siguientes documentos de estándares relacionados con el formato OMAF.
Cuando el tipo de entrada de muestra no transformada es “ hvc2” , la pista incluirá una o más referencias de pista “ scal” . Las pistas referidas serán conformes al perfil de vídeo de formato OMAF independiente del área de visualización y basado en la codificación HEVC o al perfil de vídeo de formato OMAF dependiente del área de visualización y basado en la codificación HEVC, y las siguientes restricciones aplican a cada flujo de bits de subimágenes portado en una pista referida. 1) No se hará referencia para la interpredicción a valores de muestra que estén fuera de la imagen. 2) En el caso de unidades de predicción situadas en el límite con la imagen a la derecha, salvo la última en la esquina inferior derecha de la imagen, lo siguiente aplica cuando CuPredMode[ xPb ] [ yPb ] es igual que MODE_INTER, donde ( xPb, yPb ) especifica la muestra superior izquierda del correspondiente bloque de predicción de luminancia en relación con la muestra superior izquierda de la imagen actual. Con el número de candidatos a la fusión espacial numSpatialMergeCand obtenido de la siguiente manera: numSpatialMergeCand = availableFlagAü availableFlagA1 availableFlagBü availableFlagB1 availableFlagB2 Cuando availableFlagA0, availableFlagA1, availableFlagB0, availableFlagB1 y availableFlagB2 son la salida del proceso de derivación para candidatos a la fusión espacial especificado en la cláusula 8.5.3.2.3 de la norma ISO/IEC 23008-2, aplica lo siguiente: Si numSpatialMergeCand es igual a 0, merge_flag[ xPb ][ yPb ] será igual a 0. De lo contrario (numSpatialMergeCand mayor que 0), merge_idx[ xPb ][ yPb ] estará en el intervalo de 0 a numSpatialMergeCand-1, ambos inclusive. Con el número de candidatos predictores de vector de movimiento espacial numSpatialMergeCand obtenido de la siguiente manera:
Si ( availableFlagLXA )
numSpatialMvpCand = availableFlagLXA
(( mvLXA != mvLXB ) ? availableFlagLXB: 0 )
si no
numSpatialMvpCand = availableFlagLXB
Cuando availableFlagLXA, availableFlagLXB, mvLXA y mvLXB son la salida del proceso de obtención de candidatos predictores de vector de movimiento a partir de particiones de unidad de predicción vecinas especificadas en la cláusula 8.5.3.2.7 de la norma ISO/IEC 23008-2, aplica lo siguiente: Si numSpatialMvpCand es igual a 0, mvp_10_flag[ xPb ][ yPb ] y mvp_11_flag[ xPb ][ yPb ] serán iguales a 1. De lo contrario (numSpatialMergeCand mayor que 0), mvp_10_flag[ xPb ][ yPb ] y mvp_11_flag[ xPb ][ yPb ] estarán en el intervalo de 0 a numSpatialMergeCand -1 , ambos inclusive.
NOTA: la primera restricción restringe de tal manera que los vectores de movimiento apuntan a ubicaciones de muestra completa dentro de la imagen y a ubicaciones de muestra fraccionaria que requieren únicamente ubicaciones de muestra completa dentro de la imagen para la interpolación. Obsérvese que en las restricciones anteriores y en la frase anterior, una subimagen se convierte en una imagen en el contexto de un flujo de bits de subimágenes. La segunda restricción restringe que, cuando el flujo de bits de subimágenes de la pista a la que se hace referencia junto con otros flujos de bits de subimágenes portados en otras pistas referenciadas se reconstruyen en un flujo de bits conforme, a la hora de decodificar la totalidad del flujo de bits reconstruido, en el caso de bloques de la subimagen de este flujo de bits de subimágenes, no hay candidatos a vector de movimiento para la predicción temporal de vectores de movimiento obtenidos de bloques que están fuera de la “ subimagen” . 3) El valor de entropy_coding_sync_enabled_flag en el conjunto PPS activo será igual a 0.
Además, en el caso de las pistas referidas, aplican las siguientes restricciones. 1) Las pistas contendrán el mismo número de muestras de medios. 2) Las muestras con el mismo número de muestras en todas las pistas tendrán el mismo tiempo de presentación. 3) Las imágenes portadas en las muestras con el mismo número de muestras en todas las pistas tendrán el mismo valor del recuento de orden de imagen, por ejemplo, PicOrderCntVal. En algunos ejemplos, también aplica la siguiente restricción. 4) Para cada subimagen, la anchura y la altura serán un múltiplo integral de 64, la anchura será mayor o igual que 256 y la altura será mayor o igual que 64.
En el contexto del formato OMAF, la indicación fusionable a nivel de pista puede denominarse una indicación a nivel de formato de archivo de que existen restricciones en un flujo de bits de subimágenes, de manera que el flujo de bits de subimágenes puede fusionarse sin problemas mediante un algoritmo ligero con otros flujos de bits de subimágenes, restringidos de manera parecida, y formar un flujo de bits conforme a HEVC. La indicación fusionable a nivel de pista puede codificarse como un track_not_mergable_flag según la siguiente función:
aligned(8) class SubPictureRegionBox extends FullBox('sprg',0,0) {
unsigned int(16) object_x;
unsigned int(16) object_y;
unsigned int(16) object_width;
unsigned int(16) object_height;
bit(14) reserved = 0;
unsigned int(1) track_not_alone_flag;
unsigned int(1) track not mergable flag; }
La semántica de los campos del track_not_alone_flag y el track_not_mergable_flag es la siguiente: El track_not_alone_flag se establece igual a un valor de uno para indicar que la pista de subimágenes actual no está destinada a presentarse sola sin al menos otra pista de subimágenes que pertenezca al mismo grupo de pistas del grupo de regiones de subimágenes de tipo agrupación (“ sprg” ). Un valor de cero indica que la pista de subimágenes actual puede o no estar destinada a presentarse sola sin al menos otra pista de subimágenes que pertenezca al mismo grupo de pistas del tipo de agrupación “ sprg” .
El track_not_mergable_flag se establece igual a uno para indicar que el flujo de bits de vídeo portado en la pista de subimágenes actual no puede fusionarse con el flujo de bits de vídeo portado en cualquier otra pista de subimágenes que pertenezca al mismo grupo de pistas de tipo de agrupación “ sprg” , para generar un único flujo de bits de vídeo sin que haya errores de decodificación reescribiendo solo los datos de cabecera de los flujos de bits, donde un desajuste de decodificación se refiere a que el valor de cualquier píxel cuando se decodifica el flujo de bits de vídeo en la pista actual no es idéntico al valor del mismo píxel cuando se decodifica el único flujo de bits de vídeo fusionado. Un ejemplo de tal fusión de flujos de bits es la reconstrucción de un flujo de bits HEVC cuando el tipo de entrada de muestra no transformada de la pista con un identificador track_ID dado es igual a “ hvc2” . El track_not_mergable_flag se establece igual a cero para indicar que el flujo de bits de vídeo portado en la pista de subimágenes actual puede fusionarse con el flujo de bits de vídeo portado en al menos algunas otras pistas de subimágenes que pertenecen al mismo grupo de pistas de tipo de agrupación “ sprg” para generar un único flujo de bits de vídeo así de una manera como la que se ha descrito anteriormente.
Cabe señalar que, si HEVC es el códec de vídeo usado para la codificación de los flujos de bits portados en las pistas de subimágenes, un track_not_mergable_flag igual a cero indica que el flujo de bits HEVC portado en la pista de subimágenes actual solo contiene uno o más conjuntos de mosaicos restringidos en cuanto al movimiento (MCTS, por sus siglas en inglés), que pueden indicarse mediante un mensaje SEI de MCTS temporal, tal y como se especifica en HEVC.
La figura 13 es un diagrama esquemático de un dispositivo 1300 de codificación de vídeo ejemplar. El dispositivo 1300 de codificación de vídeo es apto para implementar los ejemplos/realizaciones divulgados tal y como se describen en la presente memoria. El dispositivo 1300 de codificación de vídeo comprende unos puertos de recepción 1320, unos puertos 1350 de envío y/o unas unidades transceptoras (Tx/Rx) 1310, que incluyen unos transmisores y/o receptores para comunicar datos de envío y/o de recepción por una red. El dispositivo 1300 de codificación de vídeo también incluye un procesador 1330, que incluye una unidad lógica y/o una unidad central de procesamiento (CPU) para procesar los datos, y una memoria 1332 para almacenar los datos. El dispositivo 1300 de codificación de vídeo también puede comprender componentes optoeléctricos (OE), componentes electroópticos (EO) y/o componentes de comunicación inalámbrica acoplados a los puertos 1350 de envío y/o puertos 1320 de recepción para la comunicación de datos a través de redes de comunicaciones ópticas o inalámbricas. El dispositivo 1300 de codificación de vídeo también puede incluir unos dispositivos 1360 de entrada y/o salida (E/S) para comunicar datos a y de un usuario. Los dispositivos 1360 de E/S pueden incluir dispositivos de salida tales como una pantalla para visualizar datos de vídeo, unos altavoces para dar salida a datos de audio, etc. Los dispositivos 1360 de E/S también pueden incluir unos dispositivos de entrada, tales como un teclado, un ratón, una bola de seguimiento, etc., y/o unas correspondientes interfaces para interactuar con tales dispositivos de salida.
El procesador 1330 es implementado mediante hardware y software. El procesador 1330 puede implementarse como uno o más chips de CPU, núcleos (p. ej., como un procesador multinúcleo), matrices de compuertas programables en campo (FPGA), circuitos integrados de aplicación específica (ASIC) y procesadores de señales digitales (DSP). El procesador 1330 está en comunicación con los puertos 1320 de recepción, el Tx/Rx 1310, los puertos 1350 de envío y la memoria 1332. El procesador 1330 comprende un módulo 1314 de codificación. El módulo 1314 de codificación implementa las realizaciones divulgadas descritas anteriormente, tales como los métodos 200, 300, 1200 y/o combinaciones de los mismos. Por ejemplo, el módulo 1314 de codificación puede implementar un codificador, tal como el codificador 103, el sistema códec 400 y/o el codificador 500, para codificar las señales de vídeo de subimágenes, tales como las señales 701 y 703 de vídeo de subimágenes, a través de una codificación dependiente del área de visualización. Como otro ejemplo, el módulo 1314 de codificación puede implementar un decodificador, tal como el decodificador 107, el sistema códec 400 y/o el decodificador 600, para decodificar las señales de vídeo de subimágenes. El módulo 1314 de codificación puede codificar/decodificar tales señales de vídeo de subimágenes en el formato ISOBMFF 1100. Además, el módulo 1314 de codificación puede emplear la interpredicción unidireccional 800, la interpredicción bidireccional 900 y/o el mecanismo 1000 en la codificación dependiente del área de visualización sin crear artefactos visuales debido a los límites de señal de vídeo de subimágenes.
En concreto, el módulo 1314 de codificación puede codificar y/o decodificar señales de vídeo de subimágenes según restricciones para evitar artefactos visuales. Por ejemplo, el módulo 1314 de codificación puede codificar señales de vídeo de subimágenes de modo que bloquee solo ubicaciones de muestra completa de referencia en la misma señal de vídeo de subimágenes y, por tanto, no puede hacer referencia a ubicaciones de muestras de otras señales de vídeo de subimágenes. El módulo 1314 de codificación puede codificar bloques usando ubicaciones de muestra fraccionaria en una señal de vídeo de subimágenes, pero solo si la muestra en la ubicación de muestra fraccionaria puede recrearse por interpolación basada únicamente en ubicaciones de muestra dentro del mismo flujo de bits de subimágenes. Además, el módulo 1314 de codificación puede garantizar que los vectores de movimiento de bloques que están en flujos de bits de subimágenes adyacentes no se incluyan en las listas de candidatos a vector de movimiento. El módulo 1314 de codificación puede aplicar estas restricciones para garantizar que cada flujo de bits de subimágenes puede decodificarse sin hacer referencia a un flujo de bits de subimágenes vecino, y, por tanto, se evitan los desajustes basados en la resolución. El módulo 1314 de codificación también puede desactivar el procesamiento WPP, por ejemplo poniendo un entropy_coding_sync_enabled_flag en cada conjunto PPS a cero. Además, el módulo 1314 de codificación puede evitar desajustes de temporización entre los flujos de bits de subimágenes al garantizar que las pistas que contienen las señales de vídeo de subimágenes tengan el mismo tiempo de presentación, lo que garantiza que las pistas tengan el mismo número de muestras de medios (p. ej., cuadros) y garantiza que cada muestra procedente de una imagen de RV común emplee el mismo valor de recuento de orden de imagen. El módulo 1314 de codificación también puede incluir una indicación fusionable a nivel de pista, tal como track_mergable_with_other_video_tracks, en una caja a nivel de pista, tal como una caja de cabecera de pista que está en una caja de pista, una descripción en una caja de grupo de pistas, una caja de medios, una caja de metadatos, etc. Por lo tanto, el módulo 1314 de codificación hace que el dispositivo 1300 de codificación de vídeo funcione con mejor rendimiento de codificación y/o usando menos recursos de red al emplear la codificación dependiente del área de visualización sin crear artefactos visuales y/o sacrificar la calidad visual de la señal de vídeo de RV mostrada a un usuario a través de un dispositivo de representación. Además, el módulo 1314 de codificación permite que un decodificador funcione con mejor rendimiento al emplear una función de fusión sin alterar los resultados a nivel de bloque relacionados con diferencias de resolución de señal de vídeo/flujo de bits de subimágenes. Así, el módulo 1314 de codificación mejora la funcionalidad del dispositivo 1300 de codificación de vídeo, al tiempo que aborda problemas que son específicos de las técnicas de codificación de vídeo. Además, el módulo 1314 de codificación efectúa una transformación del dispositivo 1300 de codificación de vídeo a un estado diferente. Alternativamente, el módulo 1314 de codificación puede implementarse como instrucciones almacenadas en la memoria 1332 y ejecutadas por el procesador 1330 (p. ej., como un producto de programa informático almacenado en un medio no transitorio).
La memoria 1332 comprende uno o más tipos de memoria, tales como discos, unidades de cinta, unidades de estado sólido, una memoria de solo lectura (ROM), una memoria de acceso aleatorio (RAM), una memoria flash, una memoria ternaria de contenido direccionable (TCAM), una memoria estática de acceso aleatorio (SRAM), etc. La memoria 1332 puede usarse como dispositivo de almacenamiento de datos de desbordamiento para almacenar programas cuando tales programas se seleccionan para su ejecución y para almacenar instrucciones y datos que se leen durante la ejecución de programa.
La figura 14 es un diagrama esquemático de un dispositivo 1400 de codificación de vídeo ejemplar para la señalización a nivel de formato de archivo a fin de indicar que los flujos de bits de subimágenes son fusionables a través de una función de fusión de múltiples flujos de bits. El dispositivo 1400 de codificación de vídeo implementa las realizaciones descritas anteriormente, tales como el módulo 1314 de codificación, los métodos 200, 300, 1200 y/o combinaciones de los mismos. Por ejemplo, el módulo 1314 de codificación del dispositivo 1400 de codificación de vídeo puede implementar un codificador, tal como el codificador 103, el sistema códec 400 y/o el codificador 500, para codificar las señales de vídeo de subimágenes, tales como las señales 701 y 703 de vídeo de subimágenes, a través de una codificación dependiente del área de visualización. El dispositivo 1400 de codificación de vídeo puede codificar tales señales de vídeo de subimágenes en el formato ISOBMFF 1100. Además, el dispositivo 1400 de codificación de vídeo puede emplear la interpredicción unidireccional 800, la interpredicción bidireccional 900 y/o el mecanismo 1000 en la codificación dependiente del área de visualización sin crear artefactos visuales debido a los límites de señal de vídeo de subimágenes.
El dispositivo 1400 de codificación de vídeo incluye un módulo 1401 de mapeo para mapear una señal de vídeo esférico, confeccionada a partir de múltiples señales direccionales de vídeo, en una pluralidad de señales de vídeo de subimágenes que contienen cada una una secuencia de subimágenes. El dispositivo 1400 de codificación de vídeo también incluye un módulo 1403 de codificación de señales de vídeo para codificar la pluralidad de señales de vídeo de subimágenes como una pluralidad de flujos de bits de subimágenes y componer, por parte del procesador, la pluralidad de flujos de bits de subimágenes en una pluralidad de pistas de subimágenes que son compatibles con una función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico o de una parte de la misma. El dispositivo 1400 de codificación de vídeo también incluye un módulo 1405 de indicación fusionable a nivel de pista para codificar una o más indicaciones fusionables a nivel de pista que están dentro de una caja a nivel de pista para cada una de las pistas de subimágenes, indicando las indicaciones fusionables a nivel de pista que un flujo de bits de vídeo portado en una pista de subimágenes actual puede fusionarse con un flujo de bits de subimágenes portado en las pistas de subimágenes en el mismo grupo de pistas. El dispositivo 1400 de codificación de vídeo también incluye un módulo 1407 de transmisión para transmitir un conjunto de la pluralidad de pistas de subimágenes que contiene un conjunto de flujos de bits de subimágenes y las indicaciones fusionables a nivel de pista al decodificador para admitir una decodificación y una visualización de un área de visualización de vídeo de realidad virtual.
La figura 15 es un diagrama esquemático de un método 1500 ejemplar de señalización a nivel de formato de archivo para indicar que los flujos de bits de subimágenes son fusionables a través de una función de fusión de múltiples flujos de bits. En un paso 1501 se codifican imágenes en flujos de bits de subimágenes en pistas: garantizando que no se hace referencia a valores de muestra que están fuera de una subimagen para una interpredicción; restringiendo los vectores de movimiento para que apunten a ubicaciones de muestra completa que están dentro de la subimagen y a ubicaciones de muestra fraccionaria que emplean únicamente ubicaciones de muestra completa que están dentro de la subimagen para una interpolación; y restringiendo la interpredicción para que los candidatos a vector de movimiento para la predicción temporal de vectores de movimiento no se obtengan de bloques que están fuera de la subimagen. En un paso 1503, una indicación fusionable a nivel de pista se codifica para indicar que el flujo de bits de subimágenes portado en una pista de subimágenes actual puede fusionarse con un flujo de bits de subimágenes portado en otra pista que pertenece al mismo grupo de pistas para generar un único flujo de bits de vídeo sin que haya errores de decodificación causados por la reescritura únicamente de datos de cabecera de los flujos de bits de subimágenes. La indicación fusionable a nivel de pista puede incluirse en una caja de región de subimágenes.
Un primer componente se acopla directamente a un segundo componente cuando no hay componentes intermedios, a excepción de una línea, un trazo u otro medio entre el primer componente y el segundo componente. El primer componente se acopla indirectamente al segundo componente cuando hay componentes intermedios distintos de una línea, un trazo u otro medio entre el primer componente y el segundo componente. El término “ acoplado” y sus variantes incluyen tanto los acoplados directamente como los acoplados indirectamente. El uso del término “ aproximadamente” significa un rango que incluye ±10 % del número subsiguiente a menos que se indique lo contrario.
Los presentes ejemplos deben considerarse ilustrativos y no restrictivos, y la intención no se limita a los detalles ofrecidos en la presente memoria. Por ejemplo, los diversos elementos o componentes se pueden combinar o integrar en otro sistema o se pueden omitir o no implementarse determinadas características.
Claims (7)
- REIVINDICACIONESi.Un método implementado en un dispositivo de codificación de vídeo, comprendiendo el método:mapear (1201), por parte de un procesador del dispositivo de codificación de vídeo, una señal de vídeo esférico, confeccionada a partir de múltiples señales de vídeo direccionales, en una pluralidad de señales de vídeo de subimágenes que contienen cada una una secuencia de subimágenes;codificar (1203), por parte del procesador, la pluralidad de señales de vídeo de subimágenes como una pluralidad de flujos de bits de subimágenes y componer, por parte del procesador, la pluralidad de flujos de bits de subimágenes en una pluralidad de pistas de subimágenes para que sean compatibles con una función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico o de una parte de la misma cuando cada pista de subimágenes es apta para fusionarse con otras pistas de subimágenes para generar un único flujo de bits de vídeo usando un proceso de reescritura de flujo de bits ligero que no conlleva cambiar unos resultados de codificación a nivel de bloque; caracterizado porcodificar (1205), por parte del procesador, una o más indicaciones fusionables a nivel de pista que están dentro de una caja a nivel de pista para cada una de las pistas de subimágenes, indicando las indicaciones fusionables a nivel de pista que un flujo de bits de vídeo portado en una pista de subimágenes actual puede fusionarse con un flujo de bits de subimágenes portado en las pistas de subimágenes que están en el mismo grupo de pistas, en donde las indicaciones fusionables a nivel de pista incluyen un indicador track_mergable_with_other_video_tracks que, cuando se establece, indica que el flujo de bits de subimágenes portado en una correspondiente pista de subimágenes puede fusionarse con uno o más otros flujos de la pluralidad de flujos de bits de subimágenes portados en una o más otras pistas de la pluralidad de pistas de subimágenes para generar un único flujo de bits de vídeo sin que haya errores de decodificación al reescribir únicamente datos de cabecera de los flujos de bits; ytransmitir (1207), por parte de un transmisor del dispositivo de codificación de vídeo, un conjunto de la pluralidad de pistas de subimágenes que contiene un conjunto de la pluralidad de flujos de bits de subimágenes y las indicaciones fusionables a nivel de pista al decodificador para admitir una decodificación y una visualización de un área de visualización de vídeo de realidad virtual.
- 2. El método de la reivindicación 1, en donde las indicaciones fusionables a nivel de pista se codifican en una caja de cabecera de pista que está en una caja de pista para cada pista que contiene uno de los flujos de bits de subimágenes.
- 3. El método de la reivindicación 1 o 2, en donde las indicaciones fusionables a nivel de pista se codifican en una caja de grupo de pistas que describe unas asociaciones entre las pistas que incluyen los flujos de bits de subimágenes.
- 4. El método de cualquiera de las reivindicaciones 1-3, en donde las indicaciones fusionables a nivel de pista se codifican en una caja de medios que describe una información de medios de pista.
- 5. El método de cualquiera de las reivindicaciones 1-4, en donde las indicaciones fusionables a nivel de pista, cuando se establecen, indican además que un procesamiento paralelo de frente de onda se desactiva poniendo un entropy_coding_sync_enabled_flag a cero en unos conjuntos de parámetros de imagen (PPS) para las pistas de subimágenes que incluyen los flujos de bits de subimágenes.
- 6. Un medio no transitorio legible por ordenador que comprende un producto de programa informático para ser usado por un dispositivo de codificación de vídeo, comprendiendo el producto de programa informático unas instrucciones ejecutables por ordenador que están almacenadas en el medio no transitorio legible por ordenador, de manera que, cuando son ejecutadas por un procesador, hacen que el dispositivo de codificación de vídeo realice el método de cualquiera de las reivindicaciones 1-5.
- 7. Un dispositivo (1300) de codificación de vídeo que comprende:un procesador (1330) configurado para:mapear una señal de vídeo esférico, confeccionada a partir de múltiples señales de vídeo direccionales, en una pluralidad de señales de vídeo de subimágenes que contienen cada una una secuencia de subimágenes;codificar la pluralidad de señales de vídeo de subimágenes como una pluralidad de flujos de bits de subimágenes y componer, por parte del procesador, la pluralidad de flujos de bits de subimágenes en una pluralidad de pistas de subimágenes para que sean compatibles con una función de fusión de múltiples flujos de bits para una reconstrucción de la señal de vídeo esférico o de una parte de la misma cuando cada pista de subimágenes es apta para fusionarse con otras pistas de subimágenes para generar un único flujo de bits de vídeo usando un proceso de reescritura de flujo de bits ligero que no conlleva cambiar unos resultados de codificación a nivel de bloque; y caracterizado porcodificar una o más indicaciones fusionables a nivel de pista que están dentro de una caja a nivel de pista para cada una de las pistas de subimágenes, indicando las indicaciones fusionables a nivel de pista que un flujo de bits de vídeo portado en una pista de subimágenes actual puede fusionarse con un flujo de bits de subimágenes portado en las pistas de subimágenes que están en el mismo grupo de pistas, en donde las indicaciones fusionables a nivel de pista incluyen un indicador track_mergable_with_other_video_tracks que, cuando se establece, indica que el flujo de bits de subimágenes portado en una correspondiente pista de subimágenes puede fusionarse con uno o más otros flujos de la pluralidad de flujos de bits de subimágenes portados en una o más otras pistas de la pluralidad de pistas de subimágenes para generar un único flujo de bits de vídeo sin que haya errores de decodificación al reescribir únicamente datos de cabecera de los flujos de bits; yun transmisor (1310) acoplado al procesador, estando el transmisor configurado para transmitir un conjunto de la pluralidad de pistas de subimágenes que contiene un conjunto de flujos de bits de subimágenes y las indicaciones fusionables a nivel de pista al decodificador para admitir una decodificación y una visualización de un área de visualización de vídeo de realidad virtual.El dispositivo de codificación de vídeo de la reivindicación 7, en donde las indicaciones fusionables a nivel de pista se codifican en una caja de cabecera de pista en una caja de pista para cada pista que contiene uno de los flujos de bits de subimágenes.El dispositivo de codificación de vídeo de la reivindicación 7 u 8, en donde las indicaciones fusionables a nivel de pista se codifican en una caja de grupo de pista que describe unas asociaciones entre las pistas que incluyen los flujos de bits de subimágenes.El dispositivo de codificación de vídeo de cualquiera de las reivindicaciones 7-9, en donde las indicaciones fusionables a nivel de pista se codifican en una caja de medios que describe una información de medios de pista.El dispositivo de codificación de vídeo de cualquiera de las reivindicaciones 7-10, en donde las indicaciones fusionables a nivel de pista, cuando se establecen, indican que un procesamiento paralelo de frente de onda se desactiva poniendo un entropy_coding_sync_enabled_flag a cero en unos conjuntos de parámetros de imagen (PPS) para las pistas que incluyen los flujos de bits de subimágenes.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862651821P | 2018-04-03 | 2018-04-03 | |
PCT/US2019/024124 WO2019195036A1 (en) | 2018-04-03 | 2019-03-26 | File format signaling of error mitigation in sub-picture bitstream based viewport dependent video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2971545T3 true ES2971545T3 (es) | 2024-06-05 |
Family
ID=66102277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES19716702T Active ES2971545T3 (es) | 2018-04-03 | 2019-03-26 | Señalización de formato de archivo de mitigación de errores en una codificación de vídeo dependiente del área de visualización basada en flujos de bits de subimágenes |
Country Status (5)
Country | Link |
---|---|
US (6) | US11317087B2 (es) |
EP (4) | EP3759924A1 (es) |
CN (6) | CN117692661A (es) |
ES (1) | ES2971545T3 (es) |
WO (3) | WO2019195036A1 (es) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR112021004636A2 (pt) * | 2018-09-13 | 2021-05-25 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | codificador e decodificador de vídeo, mesclador de vídeo e métodos para fornecerem uma representação de vídeo codificado e mesclado |
EP3939318A1 (en) * | 2019-03-11 | 2022-01-19 | VID SCALE, Inc. | Sub-picture bitstream extraction and reposition |
US11343567B1 (en) * | 2019-08-07 | 2022-05-24 | Meta Platforms, Inc. | Systems and methods for providing a quality metric for media content |
GB2590632B (en) * | 2019-12-20 | 2023-07-26 | Canon Kk | Video coding and decoding |
AU2020414207B2 (en) * | 2019-12-23 | 2024-05-02 | Lg Electronics Inc. | Image coding apparatus and method based on sub-picture |
US20230046209A1 (en) * | 2019-12-23 | 2023-02-16 | Lg Electronics Inc. | Filtering-based image coding device and method |
JP7431330B2 (ja) | 2019-12-26 | 2024-02-14 | バイトダンス インコーポレイテッド | ビデオコーディングにおけるプロファイル、層及びレイヤの指示 |
CN114868158A (zh) | 2019-12-26 | 2022-08-05 | 字节跳动有限公司 | 层级视频中的解码图片缓冲区参数的信令通知 |
CN114902677A (zh) | 2019-12-27 | 2022-08-12 | 字节跳动有限公司 | 信令通知视频子图片的语法 |
CN116743997A (zh) | 2019-12-27 | 2023-09-12 | 阿里巴巴(中国)有限公司 | 用信号通知子图像划分信息的方法和装置 |
US11120538B2 (en) * | 2019-12-27 | 2021-09-14 | Zoox, Inc. | Sensor degradation detection and remediation |
CN114930837A (zh) * | 2020-01-04 | 2022-08-19 | 字节跳动有限公司 | 对子图片的帧间预测的限制 |
CN117395441A (zh) | 2020-01-09 | 2024-01-12 | 字节跳动有限公司 | 视频流中的填充数据单元的处理 |
KR102578407B1 (ko) * | 2020-03-31 | 2023-09-13 | 엘지전자 주식회사 | 레이어간 정렬된 서브픽처 정보에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 |
US11895336B2 (en) * | 2021-04-02 | 2024-02-06 | Qualcomm Incorporated | Picture orientation and quality metrics supplemental enhancement information message for video coding |
CN117999788A (zh) * | 2021-09-27 | 2024-05-07 | 字节跳动有限公司 | 用于视频处理的方法、装置和介质 |
US20230224347A1 (en) * | 2022-01-11 | 2023-07-13 | Tencent America LLC | Splitter and merger functions for multidimensional segmented media data |
WO2024072753A1 (en) * | 2022-09-26 | 2024-04-04 | Bytedance Inc. | Enhanced signalling of picture-in-picture in media files |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2362532B (en) * | 2000-05-15 | 2004-05-05 | Nokia Mobile Phones Ltd | Video coding |
JP3923898B2 (ja) * | 2002-01-18 | 2007-06-06 | 株式会社東芝 | 画像符号化方法及び装置 |
KR101018320B1 (ko) * | 2003-02-11 | 2011-03-04 | 엔디에스 리미티드 | 방송망내의 대화형 애플리케이션을 처리하는 장치 및 방법 |
US7184602B2 (en) * | 2003-05-02 | 2007-02-27 | Microsoft Corp. | System and method for low bandwidth video streaming for face-to-face teleconferencing |
CN1571508B (zh) * | 2003-07-19 | 2010-05-12 | 华为技术有限公司 | 一种实现多画面的方法 |
KR20070011092A (ko) | 2005-07-20 | 2007-01-24 | 삼성전자주식회사 | 멀티미디어 컨텐츠 부호화방법 및 장치와, 부호화된멀티미디어 컨텐츠 응용방법 및 시스템 |
WO2009003684A1 (en) * | 2007-07-02 | 2009-01-08 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for storing and reading a file having a media data container and a metadata container |
US8930562B2 (en) * | 2010-07-20 | 2015-01-06 | Qualcomm Incorporated | Arranging sub-track fragments for streaming video data |
US9007463B2 (en) * | 2010-12-22 | 2015-04-14 | Sportsvision, Inc. | Video tracking of baseball players which identifies merged participants based on participant roles |
US9332259B2 (en) * | 2012-01-18 | 2016-05-03 | Qualcomm Incorporated | Indication of use of wavefront parallel processing in video coding |
US20140003504A1 (en) | 2012-07-02 | 2014-01-02 | Nokia Corporation | Apparatus, a Method and a Computer Program for Video Coding and Decoding |
KR20180026803A (ko) * | 2012-09-18 | 2018-03-13 | 브이아이디 스케일, 인크. | 타일 및 타일 그룹을 이용한 관심 영역 비디오 코딩 |
US9161039B2 (en) * | 2012-09-24 | 2015-10-13 | Qualcomm Incorporated | Bitstream properties in video coding |
US9294776B2 (en) * | 2013-03-05 | 2016-03-22 | Qualcomm Incorporated | Parallel processing for video coding |
KR101972284B1 (ko) | 2013-04-08 | 2019-04-24 | 소니 주식회사 | Shvc를 이용한 관심 영역 확장성 |
US9749627B2 (en) * | 2013-04-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Control data for motion-constrained tile set |
RU2669685C2 (ru) * | 2013-07-12 | 2018-10-12 | Сони Корпорейшн | Устройство и способ декодирования изображения |
US20150016503A1 (en) * | 2013-07-15 | 2015-01-15 | Qualcomm Incorporated | Tiles and wavefront processing in multi-layer context |
GB2516424A (en) * | 2013-07-15 | 2015-01-28 | Nokia Corp | A method, an apparatus and a computer program product for video coding and decoding |
EP3162075B1 (en) * | 2014-06-27 | 2020-04-08 | Koninklijke KPN N.V. | Hevc-tiled video streaming |
CA3013111C (en) * | 2016-02-02 | 2022-08-30 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Scene section and region of interest handling in video streaming |
FI20165114A (fi) | 2016-02-17 | 2017-08-18 | Nokia Technologies Oy | Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten |
US10419768B2 (en) * | 2016-03-30 | 2019-09-17 | Qualcomm Incorporated | Tile grouping in HEVC and L-HEVC file formats |
US10565463B2 (en) | 2016-05-24 | 2020-02-18 | Qualcomm Incorporated | Advanced signaling of a most-interested region in an image |
US20180020222A1 (en) * | 2016-07-12 | 2018-01-18 | Mediatek Inc. | Apparatus and Method for Low Latency Video Encoding |
CN109644262A (zh) * | 2016-08-25 | 2019-04-16 | Lg电子株式会社 | 发送全向视频的方法、接收全向视频的方法、发送全向视频的装置和接收全向视频的装置 |
WO2018083378A1 (en) * | 2016-11-01 | 2018-05-11 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
US20180176468A1 (en) * | 2016-12-19 | 2018-06-21 | Qualcomm Incorporated | Preferred rendering of signalled regions-of-interest or viewports in virtual reality video |
GB2594615B (en) * | 2017-03-20 | 2022-11-30 | Canon Kk | Method and apparatus for encoding and transmitting at least a spatial part of a video sequence |
US11532128B2 (en) | 2017-03-23 | 2022-12-20 | Qualcomm Incorporated | Advanced signaling of regions of interest in omnidirectional visual media |
US11062738B2 (en) * | 2017-03-23 | 2021-07-13 | Qualcomm Incorporated | Signalling of video content including sub-picture bitstreams for video coding |
GB2560921B (en) * | 2017-03-27 | 2020-04-08 | Canon Kk | Method and apparatus for encoding media data comprising generated content |
WO2019002662A1 (en) * | 2017-06-26 | 2019-01-03 | Nokia Technologies Oy | APPARATUS, METHOD AND COMPUTER PROGRAM FOR OMNIDIRECTIONAL VIDEO |
GB2567624B (en) * | 2017-10-12 | 2021-05-26 | Canon Kk | Method, device and computer program for transmitting media content |
-
2019
- 2019-03-26 EP EP19716703.4A patent/EP3759924A1/en active Pending
- 2019-03-26 EP EP23199940.0A patent/EP4274234A3/en active Pending
- 2019-03-26 WO PCT/US2019/024124 patent/WO2019195036A1/en unknown
- 2019-03-26 CN CN202311475666.8A patent/CN117692661A/zh active Pending
- 2019-03-26 EP EP19716701.8A patent/EP3759922A1/en active Pending
- 2019-03-26 WO PCT/US2019/024126 patent/WO2019195037A1/en unknown
- 2019-03-26 WO PCT/US2019/024123 patent/WO2019195035A1/en unknown
- 2019-03-26 CN CN202310554633.6A patent/CN116527898A/zh active Pending
- 2019-03-26 EP EP19716702.6A patent/EP3759923B1/en active Active
- 2019-03-26 CN CN202310551810.5A patent/CN116506612A/zh active Pending
- 2019-03-26 CN CN201980018319.8A patent/CN111837397B/zh active Active
- 2019-03-26 CN CN201980021588.XA patent/CN111937396B/zh active Active
- 2019-03-26 CN CN201980018067.9A patent/CN111837396B/zh active Active
- 2019-03-26 ES ES19716702T patent/ES2971545T3/es active Active
-
2020
- 2020-10-01 US US17/061,405 patent/US11317087B2/en active Active
- 2020-10-01 US US17/061,416 patent/US11575886B2/en active Active
- 2020-10-01 US US17/061,421 patent/US11405606B2/en active Active
-
2022
- 2022-04-04 US US17/712,517 patent/US12003701B2/en active Active
- 2022-07-05 US US17/857,907 patent/US11917130B2/en active Active
- 2022-10-03 US US17/959,088 patent/US12075029B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220337813A1 (en) | 2022-10-20 |
US20210021815A1 (en) | 2021-01-21 |
CN111837396A (zh) | 2020-10-27 |
US11317087B2 (en) | 2022-04-26 |
EP3759923B1 (en) | 2023-12-06 |
US20210021849A1 (en) | 2021-01-21 |
EP3759924A1 (en) | 2021-01-06 |
US20230038287A1 (en) | 2023-02-09 |
WO2019195036A1 (en) | 2019-10-10 |
CN111937396B (zh) | 2023-11-17 |
CN116527898A (zh) | 2023-08-01 |
WO2019195035A1 (en) | 2019-10-10 |
US12003701B2 (en) | 2024-06-04 |
US11917130B2 (en) | 2024-02-27 |
CN116506612A (zh) | 2023-07-28 |
US11575886B2 (en) | 2023-02-07 |
EP4274234A2 (en) | 2023-11-08 |
CN111837396B (zh) | 2023-05-09 |
EP3759922A1 (en) | 2021-01-06 |
US20210021814A1 (en) | 2021-01-21 |
EP3759923A1 (en) | 2021-01-06 |
CN111937396A (zh) | 2020-11-13 |
CN111837397B (zh) | 2023-09-22 |
EP4274234A3 (en) | 2024-02-28 |
WO2019195037A1 (en) | 2019-10-10 |
US11405606B2 (en) | 2022-08-02 |
US20220337819A1 (en) | 2022-10-20 |
CN111837397A (zh) | 2020-10-27 |
US12075029B2 (en) | 2024-08-27 |
CN117692661A (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2971545T3 (es) | Señalización de formato de archivo de mitigación de errores en una codificación de vídeo dependiente del área de visualización basada en flujos de bits de subimágenes | |
BR112021004798A2 (pt) | suporte de atributo melhorado em codificação de nuvem de pontos | |
US12120285B2 (en) | Signaling a cancel flag in a video bitstream | |
BR112021012632A2 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
JP2022551690A (ja) | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置およびポイントクラウドデータ受信方法 | |
EP3777220A1 (en) | Immersive media metrics for virtual reality content with multiple viewpoints | |
ES2944451T3 (es) | Señalización de identificaciones de subimagen en codificación de vídeo basada en subimagen | |
BR112021012649A2 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
WO2020068935A1 (en) | Virtual reality viewpoint viewport center point correspondence signaling | |
WO2020068284A1 (en) | Virtual reality (vr) viewpoint grouping | |
WO2019200227A1 (en) | Signaling spatial region correspondence between virtual reality viewpoints |