ES2952079T3 - Dimensionamiento de subimágenes en la codificación de vídeo - Google Patents
Dimensionamiento de subimágenes en la codificación de vídeo Download PDFInfo
- Publication number
- ES2952079T3 ES2952079T3 ES20738971T ES20738971T ES2952079T3 ES 2952079 T3 ES2952079 T3 ES 2952079T3 ES 20738971 T ES20738971 T ES 20738971T ES 20738971 T ES20738971 T ES 20738971T ES 2952079 T3 ES2952079 T3 ES 2952079T3
- Authority
- ES
- Spain
- Prior art keywords
- subimage
- image
- subimages
- sps
- size
- 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
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/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/117—Filters, e.g. for pre-processing or post-processing
-
- 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
-
- 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
-
- 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/174—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 slice, e.g. a line of blocks or a group of 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/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/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/184—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 bits, e.g. of the compressed video stream
-
- 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/188—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 a video data packet, e.g. a network abstraction layer [NAL] unit
-
- 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/1883—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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
-
- 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/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/29—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding involving scalability at the object level, e.g. video object layer [VOL]
-
- 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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
-
- 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)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Color Television Systems (AREA)
- Television Systems (AREA)
- Time-Division Multiplex Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Studio Circuits (AREA)
- Control Of El Displays (AREA)
Abstract
Se divulga un mecanismo de codificación de vídeo. El mecanismo incluye recibir un flujo de bits que comprende una o más subimágenes divididas a partir de una imagen de modo que cada subimagen incluya un ancho de subimagen que sea un múltiplo entero de un tamaño de unidad de árbol de codificación (CTU) cuando cada subimagen incluye un límite derecho que no coincide con un límite derecho de la imagen. El flujo de bits se analiza para obtener una o más subimágenes. La una o más subimágenes se decodifican para crear una secuencia de vídeo. La secuencia de vídeo se reenvía para su visualización. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Dimensionamiento de subimágenes en la codificación de vídeo
Campo técnico de la invención
La presente divulgación está relacionada generalmente con la codificación de vídeo y está específicamente relacionada con la gestión de subimágenes en la codificación de vídeo.
Antecedentes de la invención
La cantidad de datos de vídeo necesarios para representar incluso un vídeo relativamente corto puede ser sustancial, lo que puede resultar en dificultades cuando los datos deben transmitirse o comunicarse a través de una red de comunicaciones con capacidad de ancho de banda limitada. Por lo tanto, los datos de vídeo generalmente se comprimen antes de comunicarse a través de las redes de telecomunicaciones de hoy en día. 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/origen para codificar los datos de vídeo antes de su transmisión o almacenamiento, disminuyendo así la cantidad de datos necesarios para representar imágenes de vídeo digitales. Los datos comprimidos son luego recibidos en el destino por 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.
WIECKOWSKI (FRAUNHOFER) A Y OTROS, "CE1-related: Joint proposal for picture boundary partitioning by Fraunhofer HHI and Huawei", núm. JVET-K0554, (20180715), 11. JVET MEETING; 20180711 - 20180718; LJUBLJANA; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), URL: http://phenix.int-evry.fr/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K0554-v2.zip JVET-J1001_d2_with_C1-2.0.5+Huawei-v2.docx, (20180715), describe el particionado de imágenes en segmentos, un segmento es una secuencia de CTU.
COBAN (QUALCOMM) M Y OTROS, "AHG12: On signalling of tiles", no. JVET-M0530, (20190104), 13. JVET MEETING; 20190109 - 20190118; MARRAKECH; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), URL: http://phenix.intevry.fr/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M0530-v1.zip JVET-M0530.docx, (20190104), propone un conjunto de mosaicos rectangulares jerárquicos y señalización de configuración de mosaicos que puede proporcionar una señalización eficiente para la estructura de mosaicos VVC existente, así como particiones de mosaicos flexibles.
Resumen
La invención se define en las reivindicaciones independientes. Se proporcionan características adicionales de la invención en las reivindicaciones dependientes. En lo adelante, las partes de la descripción y los dibujos que se refieren a las modalidades que no están cubiertas por las reivindicaciones no se presentan como modalidades de la invención, sino como ejemplos útiles para comprender la invención.
En una modalidad, la divulgación incluye un método implementado en un decodificador, comprendiendo el método: recibir, mediante un receptor del decodificador, un flujo de bits que comprende una o más subimágenes particionadas de una imagen de modo que una primera subimagen comprende un ancho de subimagen que incluye una unidad de árbol de codificación (CTU) incompleta cuando la primera subimagen incluye un límite derecho que coincide con el límite derecho de la imagen; analizar, mediante un procesador del decodificador, el flujo de bits para obtener una o más subimágenes; decodificar, mediante el procesador, una o más subimágenes para crear una secuencia de vídeo; y reenviar, por parte del procesador, la secuencia de vídeo para su visualización. Algunos sistemas de vídeo pueden limitar las subimágenes para incluir alturas y anchos que son múltiplos del tamaño de CTU. Sin embargo, las imágenes pueden incluir alturas y anchos que no sean múltiplos del tamaño de CTU. En consecuencia, las limitaciones de tamaño de subimagen impiden que las subimágenes funcionen correctamente con muchos diseños de imágenes. En los ejemplos descritos, los anchos de subimagen y las alturas de subimagen están limitadas a ser múltiplos del tamaño de CTU. Sin embargo, estas limitaciones se eliminan cuando se coloca una subimagen en el límite derecho de la imagen o en el límite inferior de la imagen, respectivamente. Al permitir que las subimágenes inferior y derecha incluyan alturas y anchos, respectivamente, que no sean múltiplos del tamaño de CTU, las subimágenes pueden usarse con cualquier imagen sin causar errores de decodificación. Esto da como resultado un aumento de la funcionalidad del codificador y decodificador. Además, la mayor funcionalidad permite que un codificador codifique imágenes de manera más eficiente, lo que reduce el uso de recursos de red, recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que una segunda subimagen comprende una altura de subimagen que incluye un número entero de c Tu completas cuando la segunda subimagen incluye un límite inferior que no coincide con un límite inferior de la imagen.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que una tercera subimagen comprende un ancho de subimagen que incluye un número entero de CTU completas cuando la tercera subimagen incluye un límite derecho que no coincide con un límite derecho de la imagen.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que una cuarta subimagen comprende una altura de subimagen que incluye una CTU incompleta cuando la cuarta subimagen incluye un límite inferior que coincide con el límite inferior de la imagen.
En una modalidad, la divulgación incluye un método implementado en un decodificador, comprendiendo el método: recibir, mediante un receptor del decodificador, un flujo de bits que comprende una o más subimágenes particionadas de una imagen de modo que cada subimagen incluye un ancho de subimagen que es un múltiplo entero de un tamaño de unidad de árbol de codificación (CTU) cuando cada subimagen incluye un límite derecho que no coincide con un límite derecho de la imagen; analizar, mediante un procesador del decodificador, el flujo de bits para obtener una o más subimágenes; decodificar, mediante el procesador, una o más subimágenes para crear una secuencia de vídeo; y reenviar, por parte del procesador, la secuencia de vídeo para su visualización. Algunos sistemas de vídeo pueden limitar las subimágenes para incluir alturas y anchos que son múltiplos del tamaño de CTU. Sin embargo, las imágenes pueden incluir alturas y anchos que no sean múltiplos del tamaño de CTU. En consecuencia, las limitaciones de tamaño de subimagen impiden que las subimágenes funcionen correctamente con muchos diseños de imágenes. En los ejemplos descritos, los anchos de subimagen y las alturas de subimagen están limitadas a ser múltiplos del tamaño de CTU. Sin embargo, estas limitaciones se eliminan cuando se coloca una subimagen en el límite derecho de la imagen o en el límite inferior de la imagen, respectivamente. Al permitir que las subimágenes inferior y derecha incluyan alturas y anchos, respectivamente, que no sean múltiplos del tamaño de CTU, las subimágenes pueden usarse con cualquier imagen sin causar errores de decodificación. Esto da como resultado un aumento de la funcionalidad del codificador y decodificador. Además, la mayor funcionalidad permite que un codificador codifique imágenes de manera más eficiente, lo que reduce el uso de recursos de red, recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que cada subimagen incluye una altura de subimagen que es un múltiplo entero del tamaño de c Tu cuando cada subimagen incluye una parte límite inferior que no coincide con un límite inferior de la imagen.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que al menos una de las subimágenes incluye un ancho de subimagen que no es un múltiplo entero del tamaño de CTU cuando cada subimagen incluye un límite derecho que coincide con el límite derecho de la imagen.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que al menos una de las subimágenes incluye una altura de subimagen que no es un múltiplo entero del tamaño de CTU cuando cada subimagen incluye un límite inferior que coincide con el límite inferior de la imagen.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que la imagen incluye un ancho de imagen que no es un múltiplo entero del tamaño de CTU.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que la imagen incluye una altura de imagen que no es un múltiplo entero del tamaño de CTU.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que el tamaño de la CTU se mide en unidades de muestras de luma.
En una modalidad, la divulgación incluye un método implementado en un codificador, comprendiendo el método: particionar, mediante un procesador del codificador, una imagen en una pluralidad de subimágenes de modo que cada subimagen incluye un ancho de subimagen que es un múltiplo entero de un tamaño de CTU cuando cada subimagen incluye un límite derecho que no coincide con un límite derecho de la imagen; codificar, mediante el procesador, una o más de las subimágenes en un flujo de bits; y almacenar, en una memoria del codificador, el flujo de bits para la comunicación hacia un decodificador. Algunos sistemas de vídeo pueden limitar las subimágenes para incluir alturas y anchos que son múltiplos del tamaño de CTU. Sin embargo, las imágenes pueden incluir alturas y anchos que no sean múltiplos del tamaño de CTU. En consecuencia, las limitaciones de tamaño de subimagen impiden que las subimágenes funcionen correctamente con muchos diseños de imágenes. En los ejemplos descritos, los anchos de subimagen y las alturas de subimagen están limitadas a ser múltiplos del tamaño de CTU. Sin embargo, estas limitaciones se eliminan cuando se coloca una subimagen en el límite derecho de la imagen o en el límite inferior de la imagen, respectivamente. Al permitir que las subimágenes inferior y derecha incluyan alturas y anchos, respectivamente, que no sean múltiplos del tamaño de CTU, las subimágenes pueden usarse con cualquier imagen sin causar errores de decodificación. Esto da como resultado un aumento de la funcionalidad del codificador y
decodificador. Además, la mayor funcionalidad permite que un codificador codifique imágenes de manera más eficiente, lo que reduce el uso de recursos de red, recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que cada subimagen incluye una altura de subimagen que es un múltiplo entero del tamaño de CTU cuando cada subimagen incluye una parte límite inferior que no coincide con un límite inferior de la imagen.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que al menos una de las subimágenes incluye un ancho de subimagen que no es un múltiplo entero del tamaño de CTU cuando cada subimagen incluye un límite derecho que coincide con el límite derecho de la imagen.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que al menos una de las subimágenes incluye una altura de subimagen que no es un múltiplo entero del tamaño de CTU cuando cada subimagen incluye un límite inferior que coincide con el límite inferior de la imagen.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que la imagen incluye un ancho de imagen que no es un múltiplo entero del tamaño de CTU.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que la imagen incluye una altura de imagen que no es un múltiplo entero del tamaño de CTU.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que el tamaño de la CTU se mide en unidades de muestras de luma.
En una modalidad, la divulgación incluye un dispositivo de codificación de vídeo que comprende: un procesador, una memoria, un receptor acoplado al procesador y un transmisor acoplado al procesador, el procesador, la memoria, el receptor y el transmisor configurados para realizar el método de cualquiera de los aspectos anteriores.
En una modalidad, la divulgación incluye un medio legible por ordenador no transitorio que comprende un producto de programa de informático para su uso por un dispositivo de codificación de vídeo, el producto de programa de informático comprende instrucciones ejecutables por ordenador almacenadas en el medio legible por ordenador no transitorio de tal manera que cuando se ejecuta por un procesador hace que el dispositivo de codificación de vídeo realice el método de cualquiera de los aspectos anteriores.
En una modalidad, la divulgación incluye un decodificador que comprende: medios de recepción para recibir un flujo de bits que comprende una o más subimágenes particionadas de una imagen de modo que cada subimagen incluye un ancho de subimagen que es un múltiplo entero de un tamaño de CTU cuando cada subimagen incluye un límite derecho que no coincide con un borde derecho de la imagen; medios de análisis para analizar el flujo de bits para obtener una o más subimágenes; medios de decodificación para decodificar una o más subimágenes para crear una secuencia de vídeo; y medios de reenvío para reenviar la secuencia de vídeo para su visualización.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que el decodificador está configurado además para realizar el método de cualquiera de los aspectos anteriores.
En una modalidad, la divulgación incluye un codificador que comprende: medios de particionado para particionar una imagen en una pluralidad de subimágenes de modo que cada subimagen incluye un ancho de subimagen que es un múltiplo entero de un tamaño de CTU cuando cada subimagen incluye un límite derecho que no coincide con un límite derecho de la imagen; medios de codificación para codificar una o más de las subimágenes en un flujo de bits; y medios de almacenamiento para almacenar el flujo de bits para la comunicación hacia un decodificador.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en el que el codificador está configurado además para realizar el método de cualquiera de los aspectos anteriores.
Para mayor claridad, cualquiera de las modalidades anteriores puede combinarse con una o más de las otras modalidades anteriores para crear una nueva realización dentro del alcance de la presente divulgación.
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 divulgación, se hace ahora referencia a la siguiente breve descripción, tomada en relación con los dibujos adjuntos y la descripción detallada, en donde los números de referencia similares representan partes similares.
La Figura 1 es un diagrama de flujo de un método de ejemplo de codificación de señal de vídeo.
La Figura 2 es un diagrama esquemático de un ejemplo de sistema de codificación y decodificación (códec) para codificación de vídeo.
La Figura 3 es un diagrama esquemático que ilustra un codificador de vídeo de ejemplo.
La Figura 4 es un diagrama esquemático que ilustra un decodificador de vídeo de ejemplo.
La Figura 5 es un diagrama esquemático que ilustra un flujo de bits y un subflujo de bits de ejemplo extraídos del flujo de bits.
La Figura 6 es un diagrama esquemático que ilustra un ejemplo de imagen particionada en subimágenes.
La Figura 7 es un diagrama esquemático que ilustra un mecanismo de ejemplo para relacionar segmentos con un diseño de subimagen.
La Figura 8 es un diagrama esquemático que ilustra otra imagen de ejemplo particionada en subimágenes.
La Figura 9 es un diagrama esquemático de un dispositivo de codificación de vídeo de ejemplo.
La Figura 10 es un diagrama de flujo de un método de ejemplo de codificación de un flujo de bits de subimágenes con limitaciones de tamaño adaptativas.
La Figura 11 es un diagrama de flujo de un método de ejemplo de decodificación de un flujo de bits de subimágenes con limitaciones de tamaño adaptativas.
La Figura 12 es un diagrama esquemático de un sistema de ejemplo para señalizar un flujo de bits de subimágenes con limitaciones de tamaño adaptables.
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 descritos pueden implementarse usando cualquier número de técnicas, ya sean conocidas actualmente o existentes. La divulgación no debe limitarse de ninguna manera a las implementaciones ilustrativas, dibujos y técnicas ilustradas a continuación, incluidos los diseños e implementaciones ejemplares ilustrados y descritos en la presente descripción, pero puede modificarse dentro del alcance de las reivindicaciones adjuntas junto con su alcance completo de equivalentes.
Aquí se emplean varios acrónimos, como bloque de árbol de codificación (CTB), unidad de árbol de codificación (CTU), unidad de codificación (CU), secuencia de vídeo codificado (CVS), equipo conjunto de expertos en vídeo (JVET), conjunto de mosaicos con restricción de movimiento (MCTS), unidad de transferencia máxima (MTU), capa de abstracción de red (NAL), recuento/conteo de orden de imágenes (POC), carga útil de secuencia de bytes sin procesar (RBSP), conjunto de parámetros de secuencia (SPS), codificación de vídeo versátil (VVC) y borrador de trabajo (WD).
Se pueden emplear muchas técnicas de compresión de vídeo para reducir el tamaño de los archivos de vídeo con una pérdida mínima de datos. Por ejemplo, las técnicas de compresión de vídeo pueden incluir la realización de una predicción espacial (por ejemplo, intraimagen) y/o temporal (por ejemplo, inter-imagen) para reducir o eliminar la redundancia de datos en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un segmento de vídeo (por ejemplo, una imagen de vídeo o una porción de una imagen de vídeo) puede dividirse en bloques de vídeo, que también pueden denominarse bloques de árbol, bloques de árbol de codificación (CTB), unidades de árbol de codificación (CTU), unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo de una porción intracodificada (I) de una imagen se codifican utilizando la predicción espacial con respecto a las muestras de referencia de los bloques vecinos de la misma imagen. Los bloques de vídeo en un segmento de predicción unidireccional (P) o bidireccional (B) intercodificado de una imagen pueden codificarse empleando la predicción espacial con respecto a las muestras de referencia de los bloques vecinos de la misma imagen o la predicción temporal con respecto a las muestras de referencia de otras imágenes de referencia. Las imágenes pueden denominarse tramas y/o imágenes, y las imágenes de referencia pueden denominarse tramas de referencia y/o imágenes de referencia. La predicción espacial o temporal da como resultado un bloque predictivo que representa un bloque de imagen. Los datos residuales representan las diferencias de píxeles entre el bloque de imagen original y el bloque predictivo. En consecuencia, un bloque intercodificado se codifica según un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica según un modo de intracodificación y los datos residuales. Para una compresión adicional, los datos residuales se pueden transformar del dominio de píxeles a un dominio de transformación. Estos dan como resultado coeficientes de transformación residuales, que pueden cuantificarse. Los coeficientes de transformación cuantificados pueden disponerse inicialmente en un arreglo bidimensional. Los coeficientes de transformación cuantificados se pueden escanear para producir un vector unidimensional de coeficientes de transformación. Se puede aplicar codificación por entropía para lograr una compresión aún mayor. Dichas técnicas de compresión de vídeo se describen con mayor detalle a continuación.
Para garantizar que un vídeo codificado se pueda decodificar con precisión, el vídeo se codifica y decodifica de acuerdo con los estándares de codificación de vídeo correspondientes. Los estándares de codificación de vídeo incluyen el Sector de Normalización de la Unión Internacional de Telecomunicaciones (UIT) (UIT-T) H.261, Grupo de Expertos en Cinematografía (MPEG) -1 Parte 2 de la Organización Internacional de Normalización / Comisión Electrotécnica Internacional (ISO / IEC), UIT-T H.262 o ISO / IEC MPEG-2 Parte 2, ITU-T H.263, ISO / IEC MPEG-4 Parte 2, Codificación de vídeo avanzada (AVC), también conocida como ITU-T H.264 o ISO / IEC MPEG -4 Parte 10 y Codificación de vídeo de alta eficiencia (HEVC), también conocida como ITU-T H.265 o MPEG-H Parte 2. AVC incluye
extensiones como Codificación de vídeo escalable (SVC), Codificación de vídeo de vista múltiple (MVC) y Codificación de vídeo de vista múltiple más profundidad (MVC+D), y AVC tridimensional (3D) (3D-AVC). HEVC incluye extensiones como HEVC escalable (SHVC), HEVC de vista múltiple (MV-HEVC) y HEVC 3D (3D-HEVC). El equipo conjunto de expertos en vídeo (JVET) de ITU-T e ISO / IEC ha comenzado a desarrollar un estándar de codificación de vídeo denominado Codificación de vídeo versátil (WC). VVC se incluye en un borrador de trabajo (WD), que incluye JVET-L1001-v9.
Para codificar una imagen de vídeo, primero se particiona la imagen y las particiones se codifican en un flujo de bits. Se encuentran disponibles varios esquemas de particionado de imágenes. Por ejemplo, una imagen se puede dividir en segmentos/cortes regulares, segmentos dependientes, mosaicos y/o de acuerdo con Procesamiento paralelo del frente de onda (WPP). En aras de la simplicidad, HEVC restringe los codificadores de modo que solo se puedan usar segmentos regulares, segmentos dependientes, mosaicos, WPP y combinaciones de los mismos al particionar un segmento en grupos de CTB para la codificación de vídeo. Dicha partición se puede aplicar para admitir la coincidencia de tamaño de la Unidad de transferencia máxima (MTU), el procesamiento en paralelo y el retardo reducido de un extremo a otro. MTU denota la cantidad máxima de datos que se pueden transmitir en un solo paquete. Si la carga útil de un paquete excede la MTU, esa carga útil se divide en dos paquetes a través de un proceso llamado fragmentación.
Un segmento regular, también denominado simplemente segmento, es una porción particionada de una imagen que se puede reconstruir independientemente de otros segmentos regulares dentro de la misma imagen, a pesar de algunas interdependencias debidas a las operaciones de filtrado de bucle. Cada segmento regular se encapsula en su propia unidad de capa de abstracción de red (NAL) para su transmisión. Además, la predicción en imagen (predicción intramuestra, predicción de información de movimiento, predicción del modo de codificación) y la dependencia de la codificación de entropía a través de los límites de los segmentos pueden desactivarse para soportar la reconstrucción independiente. Tal reconstrucción independiente apoya la paralelización. Por ejemplo, la paralelización basada en segmentos regulares emplea una comunicación mínima entre procesadores o entre núcleos. Sin embargo, como cada sector regular es independiente, cada sector se asocia con un encabezado de sector separado. El uso de segmentos regulares puede incurrir en una sobrecarga de codificación sustancial debido al costo de bits del encabezado de segmento para cada segmento y debido a la falta de predicción a través de los límites del segmento. Además, se pueden emplear segmentos regulares para soportar la coincidencia con los requisitos de tamaño de MTU. Específicamente, como un segmento regular se encapsula en una unidad NAL separada y se puede codificar de forma independiente, cada segmento regular debe ser más pequeño que la MTU en los esquemas MTU para evitar dividir el segmento en múltiples paquetes. Como tal, el objetivo de la paralelización y el objetivo de la coincidencia del tamaño de MTU pueden plantear demandas contradictorias para un diseño de segmentos en una imagen.
Los segmentos dependientes son similares a los segmentos regulares, pero tienen encabezados de segmentos más cortos y permiten la partición de los límites del bloque de árbol de la imagen sin romper la predicción en imagen. En consecuencia, los segmentos dependientes permiten que un segmentos regular se fragmente en múltiples unidades NAL, lo que proporciona un retardo de extremo a extremo reducido al permitir que se envíe una parte de un segmentos regular antes de que se complete la codificación de todo el segmentos regular.
Un mosaico es una parte particionada de una imagen creada por límites horizontales y verticales que crean columnas y filas de mosaicos. Los mosaicos se pueden codificar en orden de exploración de trama (de derecha a izquierda y de arriba a abajo). El orden de exploración de los CTB es local dentro de un mosaico. En consecuencia, los CTB en un primer mosaico se codifican en orden de exploración de trama, antes de pasar a los CTB en el siguiente mosaico. De manera similar a los segmentos regulares, los mosaicos rompen las dependencias de predicción en imagen, así como las dependencias de decodificación por entropía. Sin embargo, los mosaicos no se pueden incluir en unidades NAL individuales y, por lo tanto, los mosaicos no se pueden usar para la coincidencia de tamaño de MTU. Cada mosaico puede ser procesado por un procesador / núcleo, y la comunicación entre procesadores / entre núcleos empleada para la predicción en imagen entre unidades de procesamiento que decodifican mosaicos vecinos puede limitarse a transmitir un encabezado de segmento compartido (cuando los mosaicos adyacentes están en el mismo segmentos), y realizar el intercambio relacionado con el filtrado de bucle de muestras y metadatos reconstruidos. Cuando se incluye más de un mosaico en un segmento, el desplazamiento de byte de punto de entrada para cada mosaico que no sea el primer desplazamiento de punto de entrada en el segmento se puede señalar en el encabezado del segmento. Para cada segmento y mosaico, se debe cumplir al menos una de las siguientes condiciones: 1) todos los bloques de árboles codificados en un segmento pertenecen al mismo mosaico; y 2) todos los bloques de árboles codificados en un mosaico pertenecen al mismo segmento.
En WPP, la imagen se particiona en filas individuales de CTB. Los mecanismos de decodificación y predicción por entropía pueden utilizar datos de CTB en otras filas. El procesamiento en paralelo es posible mediante la decodificación en paralelo de filas de CTB. Por ejemplo, una fila actual se puede decodificar en paralelo con una fila anterior. Sin embargo, la decodificación de la fila actual se retrasa del proceso de decodificación de las filas precedentes por dos CTB. Este retraso asegura que los datos relacionados con el CTB superior/arriba y el CTB superior derecho/arriba y a la derecha del CTB actual en la fila actual estén disponibles antes de que se codifique el CTB actual. Este enfoque aparece como un frente de onda cuando se representa gráficamente. Este inicio escalonado permite la paralelización con hasta tantos procesadores / núcleos como la imagen contenga filas de CTB. Debido a que se permite la predicción en imagen entre filas vecinas de bloques de árbol dentro de una imagen, la comunicación entre procesadores / núcleos
para permitir la predicción en imagen puede ser sustancial. La partición WPP considera los tamaños de unidad NAL. Por lo tanto, WPP no admite la coincidencia de tamaño de MTU. Sin embargo, los segmentos regulares se pueden usar junto con WPP, con cierta sobrecarga de codificación, para implementar la coincidencia de tamaño de MTU como se desee.
Los mosaicos también pueden incluir conjuntos de mosaicos restringidos de movimiento. Un conjunto de mosaicos restringidos de movimiento (MCTS) es un conjunto de mosaicos diseñado de tal manera que los vectores de movimiento asociados están restringidos para apuntar a ubicaciones de muestra completa dentro del MCTS y a ubicaciones de muestra fraccionaria que solo requieren ubicaciones de muestra completa dentro del MCTS para interpolación. Además, no se permite el uso de candidatos de vector de movimiento para la predicción de vectores de movimiento temporal derivados de bloques fuera del MCTS. De esta manera, cada MCTS puede decodificarse independientemente sin que existan mosaicos no incluidos en el MCTS. Los mensajes de información de mejora suplementaria (SEI) de MCTS temporales pueden utilizarse para indicar la existencia de MCTS en el flujo de bits y señalizar los MCTS. El mensaje SEI de MCTS proporciona información complementaria que se puede utilizar en la extracción del subflujo de bits de MCTS (especificada como parte de la semántica del mensaje SEI) para generar un flujo de bits conforme para un conjunto de MCTS. La información incluye varios conjuntos de información de extracción, cada uno de los cuales define un número de conjuntos de MCTS y contiene bytes de carga útil de secuencia de bytes sin procesar (RBSP) de los conjuntos de parámetros de vídeo de sustitución (VPS), conjuntos de parámetros de secuencia (SPS) y conjuntos de parámetros de imagen (PPS) para ser utilizado durante el proceso de extracción de subflujo de bits de MCTS. Cuando se extrae un subflujo de bits de acuerdo con el proceso de extracción del subflujo de bits de MCTS, los conjuntos de parámetros (VPS, SPS y PPS) pueden reescribirse o reemplazarse, y los encabezados de segmento pueden actualizarse porque uno o todos los elementos de sintaxis relacionados con la dirección de segmento (que incluye first_slice_segment_in_pic_flag y slice_segment_address) pueden emplear diferentes valores en el subflujo de bits extraído.
Una imagen también puede particionarse en una o más subimágenes. Una subimagen es un conjunto rectangular de grupos/sectores de mosaicos que comienza con un grupo de mosaicos que tiene un tile_group_address igual a cero. Cada subimagen puede referirse a un PPS separado y, por lo tanto, puede tener una partición de mosaico separada. Las subimágenes pueden tratarse como imágenes en el proceso de decodificación. Las subimágenes de referencia para decodificar una subimagen actual se generan extrayendo el área colocada con la subimagen actual de las imágenes de referencia en el búfer/memoria intermedia de imágenes decodificadas. El área extraída se trata como una subimagen decodificada. La interpredicción puede tener lugar entre subimágenes del mismo tamaño y la misma ubicación dentro de la imagen. Un grupo de mosaicos, también conocido como segmento, es una secuencia de mosaicos relacionados en una imagen o una subimagen. Se pueden derivar varios elementos para determinar la ubicación de subimagen en una imagen. Por ejemplo, cada subimagen actual puede colocarse en la siguiente ubicación desocupada en el orden de exploración de trama de una CTU dentro de una imagen que sea lo suficientemente grande para contener la subimagen actual dentro de los límites de la imagen.
Además, la partición de imágenes puede basarse en mosaicos de nivel de imagen y mosaicos de nivel de secuencia. Los mosaicos de nivel de secuencia pueden incluir la funcionalidad de MCTS y pueden implementarse como subimágenes. Por ejemplo, un mosaico de nivel de imagen puede definirse como una región rectangular de bloques de árbol de codificación dentro de una columna de mosaico particular y una fila de mosaico particular en una imagen. Un mosaico de nivel de secuencia se puede definir como un conjunto de regiones rectangulares de bloques de árbol de codificación incluidos en diferentes marcos donde cada región rectangular comprende además uno o más mosaicos de nivel de imagen y el conjunto de regiones rectangulares de bloques de árbol de codificación se pueden decodificar independientemente de cualquier otro conjunto de regiones rectangulares similares. Un conjunto de grupos de mosaicos de nivel de secuencia (STOPS) es un grupo de tales mosaicos de nivel de secuencia. El STOPS se puede señalizar en una unidad NAL de capa de codificación sin vídeo (VCL) con un identificador (ID) asociado en el encabezado de unidad NAL.
El esquema de particionamiento basado en la subimagen anterior puede estar asociado con ciertos problemas. Por ejemplo, cuando las subimágenes están habilitadas, el mosaico dentro de las subimágenes (partición de las subimágenes en mosaicos) se puede utilizar para soportar el procesamiento paralelo. La partición de mosaico de subimágenes para fines de procesamiento en paralelo puede cambiar de una imagen a otra (por ejemplo, para fines de equilibrio de carga de procesamiento en paralelo) y, por lo tanto, puede gestionarse a nivel de imagen (por ejemplo, en el PPS). Sin embargo, la partición de subimágenes (partición de imágenes en subimágenes) puede emplearse para soportar la región de interés (ROI) y el acceso de imágenes basado en subimágenes. En tal caso, la señalización de subimágenes o MCTS en el PPS no es eficaz.
En otro ejemplo, cuando cualquier subimagen de una imagen se codifica como una subimagen restringida de movimiento temporal, todas las subimágenes de la imagen se pueden codificar como subimágenes restringidas de movimiento temporal. Tal partición de imágenes puede ser limitante. Por ejemplo, codificar una subimagen como una subimagen restringida de movimiento temporal puede reducir la eficacia de la codificación a cambio de una funcionalidad adicional. Sin embargo, en la región de las aplicaciones basadas en intereses, normalmente sólo una o algunas de las subimágenes utilizan una funcionalidad basada en subimágenes restringidas de movimiento temporal.
Por lo tanto, las subimágenes restantes sufren de una eficiencia de codificación reducida sin proporcionar ningún beneficio práctico.
En otro ejemplo, los elementos de sintaxis para especificar el tamaño de una subimagen se pueden especificar en unidades de tamaños de CTU de luma. En consecuencia, tanto el ancho como el alto de subimagen deben ser un múltiplo entero de CtbSizeY. Este mecanismo de especificar el ancho y la altura de subimagen puede dar lugar a varios problemas. Por ejemplo, la partición de subimágenes solo se aplica a imágenes con ancho de imagen y/o alto de imagen que son un múltiplo entero de CtbSizeY. Esto hace que la partición de subimágenes no esté disponible para imágenes que contienen dimensiones que no son múltiplos enteros de CTbSizeY. Si la partición de subimagen se aplicó al ancho y/o alto de imagen cuando la dimensión de imagen no es un múltiplo entero de CtbSizeY, la derivación del ancho de subimagen y/o la altura de subimagen en muestras de luma para la subimagen más a la derecha y la subimagen más al fondo sería incorrecta. Tal derivación incorrecta causaría resultados erróneos en algunas herramientas de codificación.
En otro ejemplo, puede no señalizarse la ubicación de una subimagen en una imagen. En cambio, la ubicación se deriva utilizando la siguiente regla. La subimagen actual se posiciona en la siguiente ubicación desocupada en el orden de exploración de trama de CTU dentro de una imagen que es lo suficientemente grande para contener la subimagen dentro de los límites de la imagen. La derivación de las ubicaciones de las subimágenes de esta forma puede provocar errores en algunos casos. Por ejemplo, si una subimagen se pierde durante la transmisión, las ubicaciones de otras subimágenes se derivan incorrectamente y las muestras decodificadas se colocan en ubicaciones erróneas. El mismo problema se aplica cuando las subimágenes llegan en el orden incorrecto.
En otro ejemplo, la decodificación de una subimagen puede requerir la extracción de subimágenes co-ubicadas en imágenes de referencia. Esto puede imponer una complejidad adicional y las cargas resultantes en términos de uso de recursos de memoria y procesador.
En otro ejemplo, cuando una subimagen se designa como una subimagen restringida de movimiento temporal, los filtros de lazo/bucle que atraviesan el límite de la subimagen se desactivan. Esto ocurre independientemente de si los filtros en bucle que atraviesan los límites de los mosaicos están habilitados. Tal restricción puede ser demasiado restrictiva y puede resultar en artefactos visuales para imágenes de vídeo que emplean múltiples subimágenes.
En otro ejemplo, la relación entre los encabezados de grupo de mosaicos SPS, STGPS, PPS y es la siguiente. El STGPS se refiere al SPS, el PPS se refiere al STGPS y los encabezados de grupo de mosaicos/encabezados de segmento se refieren al PPS. Sin embargo, el STGPS y el PPS deben ser ortogonales en lugar del PPS que se refiere al STGPS. La disposición anterior también puede impedir que todos los grupos de mosaicos de la misma imagen se refieran al mismo PPS.
En otro ejemplo, cada STOPS puede contener ID para cuatro lados de una subimagen. Estos ID se utilizan para identificar subimágenes que comparten el mismo borde, de modo que se pueda definir su relación espacial relativa. Sin embargo, esta información puede no ser suficiente para derivar la información de posición y tamaño de un conjunto de grupos de mosaicos de nivel de secuencia en algunos casos. En otros casos, la señalización, la información de posición y tamaño puede ser redundante.
En otro ejemplo, un ID de STGPS se puede señalizar en un encabezado de unidad NAL de una unidad NAL VCL utilizando ocho bits. Esto puede ayudar con la extracción de subimágenes. Tal señalización puede aumentar innecesariamente la longitud del encabezado de la unidad NAL. Otro problema es que, a menos que los conjuntos de grupos de mosaicos a nivel de secuencia estén limitados para evitar superposiciones, un grupo de mosaicos puede asociarse con múltiples conjuntos de grupos de mosaicos a nivel de secuencia.
En el presente documento se describen varios mecanismos para abordar uno o más de los problemas mencionados anteriormente. En un primer ejemplo, la información de diseño de las subimágenes se incluye en un SPS en lugar de en un PPS. La información de diseño de la subimagen incluye la ubicación de subimagen y el tamaño de subimagen. La ubicación de subimagen es un desplazamiento entre la muestra superior izquierda de la subimagen y la muestra superior izquierda de la imagen. El tamaño de subimagen es la altura y el ancho de la subimagen medidos en muestras de luma. Como se señaló anteriormente, algunos sistemas incluyen información de mosaico en el PPS, ya que los mosaicos pueden cambiar de una imagen a otra. Sin embargo, se pueden utilizar subimágenes para soportar aplicaciones de ROI y acceso basado en subimágenes. Estas funciones no cambian en una base por imagen. Además, una secuencia de vídeo puede incluir un solo SPS (o uno por segmento de vídeo) y puede incluir hasta un PPS por imagen. La colocación de información de diseño para subimágenes en el SPS garantiza que el diseño solo se señalice una vez para una secuencia/segmento en lugar de señalizarlo de forma redundante para cada PPS. Por consiguiente, la disposición de la subimagen de señalización en el SPS aumenta la eficacia de la codificación y, por tanto, reduce el uso de recursos de red, recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador. Además, algunos sistemas tienen la información de subimagen derivada por el decodificador. La señalización de la información de subimagen reduce la posibilidad de error en caso de pérdida de paquetes y admite una funcionalidad adicional en términos de extracción de subimágenes. En consecuencia, la disposición de subimagen de señalización en el SPS mejora la funcionalidad de un codificador y/o decodificador.
En un segundo ejemplo, los anchos de subimagen y las alturas de subimagen están restringidas a ser múltiplos del tamaño de la CTU. Sin embargo, estas limitaciones se eliminan cuando se coloca una subimagen en el borde derecho de la imagen o en el borde inferior de la imagen, respectivamente. Como se indicó anteriormente, algunos sistemas de vídeo pueden limitar las subimágenes para incluir alturas y anchos que son múltiplos del tamaño de la CTU. Esto evita que las subimágenes funcionen correctamente con muchos diseños de imagen. Al permitir que las subimágenes inferior y derecha incluyan alturas y anchos, respectivamente, que no sean múltiplos del tamaño de CTU, las subimágenes pueden usarse con cualquier imagen sin causar errores de decodificación. Esto da como resultado un aumento de la funcionalidad del codificador y decodificador. Además, la mayor funcionalidad permite que un codificador codifique imágenes de manera más eficiente, lo que reduce el uso de recursos de red, recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador.
En un tercer ejemplo, las subimágenes están restringidas para cubrir una imagen sin espacios/huecos ni superposiciones. Como se señaló anteriormente, algunos sistemas de codificación de vídeo permiten que las subimágenes incluyan espacios y superposiciones. Esto crea la posibilidad de que los grupos/segmentos de mosaicos se asocien con múltiples subimágenes. Si esto está permitido en el codificador, los decodificadores deben construirse para soportar tal esquema de codificación incluso cuando el esquema de decodificación se usa raramente. Al no permitir los espacios y superposiciones de las subimágenes, la complejidad del decodificador puede reducirse ya que no se requiere que el decodificador tenga en cuenta los posibles espacios y superposiciones al determinar los tamaños y ubicaciones de las subimágenes. Además, no permitir los espacios y superposiciones de subimágenes reduce la complejidad de los procesos de optimización de distorsión de tasa (RDO) en el codificador, ya que el codificador puede omitir considerar los casos de espacios y superposiciones al seleccionar una codificación para una secuencia de vídeo. Por consiguiente, evitar espacios y superposiciones puede reducir el uso de recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador.
En un cuarto ejemplo, se puede señalizar una bandera en el SPS para indicar cuándo una subimagen es una subimagen restringida de movimiento temporal. Como se indicó anteriormente, algunos sistemas pueden configurar colectivamente todas las subimágenes para que sean subimágenes con restricción de movimiento temporal o no permitan por completo el uso de subimágenes con restricción de movimiento temporal. Dichas subimágenes limitadas por el movimiento temporal proporcionan una funcionalidad de extracción independiente a costa de una menor eficiencia de codificación. Sin embargo, en la región de aplicaciones basadas en intereses, la región de interés debe codificarse para una extracción independiente, mientras que las regiones fuera de la región de interés no necesitan dicha funcionalidad. Por lo tanto, las subimágenes restantes sufren de una eficiencia de codificación reducida sin proporcionar ningún beneficio práctico. En consecuencia, la bandera permite una mezcla de subimágenes limitadas por el movimiento temporal que proporcionan funcionalidad de extracción independiente y subimágenes limitadas por el movimiento no para una mayor eficiencia de codificación cuando no se desea una extracción independiente. Por tanto, la bandera permite una mayor funcionalidad y/o una mayor eficiencia de codificación, lo que reduce el uso de recursos de red, recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador.
En un quinto ejemplo, se señaliza un conjunto completo de ID de subimagen en el SPS, y los encabezados de segmento incluyen un ID de subimagen que indica la subimagen que contiene los cortes correspondientes. Como se señaló anteriormente, algunos sistemas señalan las posiciones de las subimágenes en relación con otras subimágenes. Esto causa un problema si las subimágenes se pierden o se extraen por separado. Al designar cada subimagen mediante un ID, las subimágenes se pueden posicionar y dimensionar sin referencia a otras subimágenes. Esto, a su vez, admite la corrección de errores, así como aplicaciones que solo extraen algunas de las subimágenes y evitan la transmisión de otras subimágenes. Se puede enviar una lista completa de todas las identificaciones de subimagen en el SPS junto con la información de tamaño relevante. Cada encabezado de segmento puede contener un ID de subimagen que indica la subimagen que incluye el segmento correspondiente. De esta manera, las subimágenes y los segmentos correspondientes se pueden extraer y posicionar sin referencia a otras subimágenes. Por tanto, los ID de subimagen soportan una mayor funcionalidad y/o una mayor eficiencia de codificación, lo que reduce el uso de recursos de red, recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador.
En un sexto ejemplo, los niveles se señalizan para cada subimagen. En algunos sistemas de codificación de vídeo, los niveles se señalizan mediante imágenes. Un nivel indica los recursos de hardware necesarios para decodificar la imagen. Como se señaló anteriormente, diferentes subimágenes pueden tener una funcionalidad diferente en algunos casos y, por lo tanto, pueden tratarse de manera diferente durante el proceso de codificación. Como tal, un nivel basado en imágenes puede no ser útil para decodificar algunas subimágenes. Por tanto, la presente divulgación incluye niveles para cada subimagen. De esta manera, cada subimagen puede codificarse independientemente de otras subimágenes sin sobrecargar innecesariamente al decodificador estableciendo requisitos de decodificación demasiado altos para las subimágenes codificadas de acuerdo con mecanismos menos complejos. La información de nivel de subimagen señalizada soporta una mayor funcionalidad y/o una mayor eficiencia de codificación, lo que reduce el uso de recursos de red, recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador.
La Figura 1 es un diagrama de flujo de un método operativo de ejemplo 100 para codificar una señal de vídeo. Específicamente, una señal de vídeo se codifica en un codificador. El proceso de codificación comprime la señal de vídeo empleando varios mecanismos para reducir el tamaño del archivo de vídeo. Un tamaño de archivo más pequeño permite que el archivo de vídeo comprimido se transmita hacia un usuario, al tiempo que reduce la sobrecarga de
ancho de banda asociada. El decodificador luego decodifica el archivo de vídeo comprimido para reconstruir la señal de vídeo original para mostrarla a un usuario final. El proceso de decodificación generalmente refleja el proceso de codificación para permitir que el decodificador reconstruya consistentemente la señal de vídeo.
En el paso 101, 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 sin comprimir almacenado en la memoria. Como otro ejemplo, el archivo de vídeo puede ser capturado por un dispositivo de captura de vídeo, como una cámara de vídeo, y codificado para soportar la transmisión 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 tramas de imagen que, cuando se ven en una secuencia, dan la impresión visual de movimiento. Las tramas contienen píxeles que se expresan en términos de luz, denominados en la presente descripción componentes de luma (o muestras de luma), y color, que se denomina componentes de croma (o muestras de color). En algunos ejemplos, las tramas también pueden contener valores de profundidad para admitir la visualización tridimensional.
En el paso 103, el vídeo se particiona en bloques. El particionamiento incluye subdividir los píxeles de cada trama en bloques cuadrados y/o rectangulares para la compresión. Por ejemplo, en codificación de vídeo de alta eficiencia (HEVC) (también conocida como H.265 y MPEG-H Parte 2) la trama se puede dividir primero en unidades de árbol de codificación (CTU), que son bloques de un tamaño predefinido (por ejemplo, sesenta y cuatro píxeles por sesenta y cuatro píxeles). Las CTU contienen muestras de luma y croma. Pueden emplearse árboles de codificación para dividir las CTU en bloques y luego subdividir recursivamente los bloques hasta que se logren configuraciones que admitan una codificación adicional. Por ejemplo, los componentes de luma de una trama pueden subdividirse hasta que los bloques individuales contengan valores de iluminación relativamente homogéneos. Además, los componentes de croma de una trama pueden subdividirse hasta que los bloques individuales contengan valores de color relativamente homogéneos. En consecuencia, los mecanismos de particionado varían según el contenido de las tramas de vídeo.
En el paso 105, se emplean varios mecanismos de compresión para comprimir los bloques de imagen particionados en el paso 103. Por ejemplo, se puede emplear la interpredicción y/o intrapredicción. La interpredicción está diseñada para aprovechar el hecho de que los objetos en una escena común tienden a aparecer en tramas sucesivas. Por consiguiente, un bloque que representa un objeto en una trama de referencia no necesita describirse repetidamente en marcos adyacentes. Específicamente, un objeto, como una mesa, puede permanecer en una posición constante en varias tramas. Por lo tanto, la mesa se describe una vez y las tramas adyacentes pueden hacer referencia a la trama de referencia. Pueden emplearse mecanismos de coincidencia de patrones para hacer coincidir objetos en múltiples tramas. Además, los objetos en movimiento se pueden representar en varias tramas, por ejemplo, debido al movimiento del objeto o al movimiento de la cámara. Como ejemplo particular, un vídeo puede mostrar un automóvil que se mueve por la pantalla en múltiples cuadros. Se pueden emplear vectores de movimiento para describir dicho movimiento. Un vector de movimiento es un vector bidimensional que proporciona un desplazamiento de las coordenadas de un objeto en un marco a las coordenadas del objeto en un marco de referencia. Como tal, la interpredicción puede codificar un bloque de imagen en una trama actual como un conjunto de vectores de movimiento que indican un desplazamiento de un bloque correspondiente en una trama de referencia.
La intrapredicción codifica bloques en una trama común. La intrapredicción aprovecha el hecho de que los componentes de luma y croma tienden a agruparse en una trama. Por ejemplo, un parche de verde en una porción de un árbol tiende a colocarse adyacente a parches de verde similares. La intrapredicción emplea múltiples modos de predicción direccional (por ejemplo, treinta y tres en HEVC), un modo plano y un modo actual directo (DC). Los modos direccionales indican que un bloque actual es similar / igual que las muestras de un bloque vecino en la dirección correspondiente. El modo plano indica que una serie de bloques a lo largo de una fila / columna (por ejemplo, un plano) se puede interpolar en función de los bloques vecinos en los bordes de la fila. El modo plano, en efecto, indica una transición suave de luz / color a través de una fila / columna al emplear una pendiente relativamente constante en los valores cambiantes. El modo DC se emplea para suavizar los límites e indica que un bloque es similar / igual que un valor promedio asociado con muestras de todos los bloques vecinos asociados con las direcciones angulares de los modos de predicción direccional. Por consiguiente, los bloques de intrapredicción pueden representar bloques de imagen como varios valores de modo de predicción relacional en lugar de los valores reales. Además, los bloques de interpredicción pueden representar bloques de imagen como valores de vector de movimiento en lugar de valores reales. En cualquier caso, es posible que los bloques de predicción no representen exactamente los bloques de imágenes en algunos casos. Cualesquiera diferencias se almacenan en bloques residuales. Se pueden aplicar transformaciones a los bloques residuales para comprimir aún más el archivo.
En el paso 107, se pueden aplicar varias técnicas de filtrado. En HEVC, los filtros se aplican de acuerdo con un esquema de filtrado en bucle. La predicción basada en bloques discutida anteriormente puede resultar en la creación de imágenes en bloques en el decodificador. Además, el esquema 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 esquema de filtrado en bucle aplica de forma iterativa filtros de supresión de ruido, filtros de desbloqueo, filtros en bucle adaptativo y filtros de compensación adaptativa de muestra (SAO) a los bloques / tramas. Estos filtros mitigan tales artefactos de bloqueo para que el archivo codificado se pueda reconstruir con precisión. Además, estos filtros mitigan los artefactos en los bloques de referencia reconstruidos, de modo que es menos probable que los artefactos creen artefactos adicionales en los bloques posteriores que se codifican en función de los bloques de referencia reconstruidos.
Una vez que la señal de vídeo ha sido particionada, comprimida y filtrada, los datos resultantes se codifican en un flujo de bits en el paso 109. El flujo de bits incluye los datos discutidos anteriormente, así como cualquier dato de señalización deseado para soportar la reconstrucción adecuada de la señal de vídeo en el decodificador. Por ejemplo, tales datos pueden incluir datos de particionado, datos de predicción, bloques residuales y varios indicadores que proporcionan instrucciones de codificación al decodificador. El flujo de bits puede almacenarse en la memoria para su transmisión hacia un decodificador cuando se solicite. El flujo de bits también se puede difundir y/o multidifundir hacia una pluralidad de decodificadores. La creación del flujo de bits es un proceso iterativo. Por consiguiente, los pasos 101, 103, 105, 107 y 109 pueden ocurrir de forma continua y/o simultánea en muchas tramas y bloques. El orden mostrado en la Figura 1 se presenta para mayor claridad y facilidad de discusión, 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 el paso 111. Específicamente, el decodificador emplea un esquema de decodificación por entropía para convertir el flujo de bits en la sintaxis y los datos de vídeo correspondientes. El decodificador emplea los datos de sintaxis del flujo de bits para determinar las particiones para las tramas en el paso 111. La partición debe coincidir con los resultados de la partición de bloque en el paso 103. Ahora se describe la codificación / decodificación por entropía empleada en el paso 111. El codificador hace muchas elecciones durante el proceso de compresión, como seleccionar esquemas de particionado de bloque entre varias opciones posibles basadas en el posicionamiento espacial de los valores en las imágenes de entrada. La señalización de las opciones exactas puede emplear una gran cantidad de contenedores. Como se usa en la presente descripción, un contenedor es un valor binario que se trata como una variable (por ejemplo, un valor de bit que puede variar según el contexto). La codificación por entropía permite al codificador descartar cualquier opción que claramente no sea viable para un caso particular, dejando un conjunto de opciones permitidas. A cada opción permitida se le asigna una palabra de código. La longitud de las palabras de código se basa en el número de opciones permitidas (por ejemplo, un contenedor para dos opciones, dos contenedores para tres o cuatro opciones, etc.). El codificador luego codifica la palabra de código para la opción seleccionada. Este esquema reduce el tamaño de las palabras de código ya que las palabras de código son tan grandes como se desee para indicar de forma única una selección de un pequeño subconjunto de opciones permitidas en lugar de indicar de forma única la selección de un conjunto potencialmente grande de todas las opciones posibles. El decodificador luego decodifica la selección determinando el conjunto de opciones permitidas de una manera similar al codificador. Al determinar el conjunto de opciones permitidas, el decodificador puede leer la palabra de código y determinar la selección realizada por el codificador.
En el paso 113, el decodificador realiza la decodificación de bloques. Específicamente, el decodificador emplea transformaciones inversas para generar bloques residuales. Luego, el decodificador emplea los bloques residuales y los bloques de predicción correspondientes para reconstruir los bloques de imagen de acuerdo con la partición. Los bloques de predicción pueden incluir tanto bloques de intrapredicción como bloques de interpredicción como se generan en el codificador en el paso 105. A continuación, los bloques de imágenes reconstruidos se colocan en tramas de una señal de vídeo reconstruida de acuerdo con los datos de particionado determinados en el paso 111. La sintaxis para el paso 113 también se puede señalar en el flujo de bits mediante la codificación por entropía como se discutió anteriormente.
En el paso 115, se realiza el filtrado en las tramas de la señal de vídeo reconstruida de una manera similar al paso 107 en el codificador. Por ejemplo, se pueden aplicar filtros de supresión de ruido, filtros de desbloqueo, filtros en bucle adaptativo y filtros SAO a las tramas para eliminar los artefactos de bloque. Una vez que se filtran las tramas, la señal de vídeo se puede enviar a una pantalla en el paso 117 para visualización por un usuario final.
La Figura 2 es un diagrama esquemático de un ejemplo de sistema de codificación y decodificación (códec) 200 para codificación de vídeo. Específicamente, el sistema de códec 200 proporciona funcionalidad para respaldar la implementación del método operativo 100. El sistema de códec 200 está generalizado para representar los componentes empleados tanto en un codificador como en un decodificador. El sistema de códec 200 recibe y particiona una señal de vídeo como se discutió con respecto a los pasos 101 y 103 en el método operativo 100, lo que da como resultado una señal de vídeo 201 particionada. A continuación, el sistema de códec 200 comprime la señal de vídeo particionada 201 en un flujo de bits codificado cuando actúa como un codificador como se describe con respecto a los pasos 105, 107 y 109 en el método 100. Cuando actúa como un decodificador, el sistema de códec 200 genera una señal de vídeo de salida a partir del flujo de bits como se describe con respecto a los pasos 111, 113, 115 y 117 en el método operativo 100. El sistema de códec 200 incluye un componente de control de codificador general 211, un componente de cuantificación y de escala de transformación 213, un componente de estimación intraimagen 215, un componente de predicción intraimagen 217, un componente de compensación de movimiento 219, un componente de estimación de movimiento 221, un componente de transformación inversa y de escala 229, un componente de análisis de control de filtro 227, un componente de filtro en bucle 225, un componente de búfer/memoria intermedia de imágenes decodificadas 223 y un componente de codificación aritmética binaria adaptativa de contexto (CABAC) y de formato de encabezado 231. Dichos componentes se acoplan como se muestra. En la Figura 2, las líneas negras indican el movimiento de los datos a codificar / decodificar, mientras que las líneas discontinuas indican el movimiento de los datos de control que controlan el funcionamiento de otros componentes. Todos los componentes del sistema de códec 200 pueden estar presentes en el codificador. El decodificador puede incluir un subconjunto de los componentes del sistema de códec 200. Por ejemplo, el decodificador puede incluir el componente de predicción intraimagen 217, el componente de compensación de movimiento 219, el componente de transformación inversa y de escala 229, el
componente de filtro en bucle 225 y el componente de búfer de imágenes decodificadas 223. Estos componentes se describen ahora.
La señal de vídeo particionada 201 es una secuencia de vídeo capturada que ha sido particionada en bloques de píxeles por un árbol de codificación. Un árbol de codificación emplea varios modos de división para subdividir un bloque de píxeles en bloques de píxeles más pequeños. Estos bloques pueden luego subdividirse en bloques más pequeños. Los bloques pueden denominarse nodos en el árbol de codificación. Los nodos principales más grandes se dividen en nodos secundarios más pequeños. El número de veces que se subdivide un nodo se denomina profundidad del árbol de codificación / nodo. Los bloques divididos se pueden incluir en unidades de codificación (CU) en algunos casos. Por ejemplo, una CU puede ser una subporción de una CTU que contiene un bloque de luma, un bloque(s) de croma (Cr) de diferencia de rojo y bloque(s) de croma de diferencia de azul (Cb) junto con las instrucciones de sintaxis correspondientes para la CU. Los modos de división pueden incluir un árbol binario (BT), árbol ternario (TT) y un árbol cuaternario (QT) empleados para dividir un nodo en dos, tres o cuatro nodos secundarios, respectivamente, de diferentes formas dependiendo de los modos de división empleados. La señal de vídeo particionada 201 se reenvía al componente de control de codificador general 211, al componente de cuantificación y de escala de transformación 213, al componente de estimación intraimagen 215, al componente de análisis de control de filtro 227 y al componente de estimación de movimiento 221 para su compresión.
El componente de control de codificador general 211 está configurado para tomar decisiones relacionadas con la codificación de las imágenes de la secuencia de vídeo en el flujo de bits de acuerdo con las limitaciones de la aplicación. Por ejemplo, el componente de control de codificador general 211 gestiona la optimización del tamaño de tasa de bits / flujo de bits frente a la calidad de reconstrucción. Dichas decisiones se pueden tomar en función de la disponibilidad de espacio de almacenamiento / ancho de banda y las solicitudes de resolución de imagen. El componente de control de codificador general 211 también gestiona la utilización del búfer a la luz de la velocidad de transmisión para mitigar los problemas de saturación y falta de ejecución del búfer. Para gestionar estos problemas, el componente de control de codificador 211 general gestiona la partición, la predicción y el filtrado de los otros componentes. Por ejemplo, el componente de control de codificador general 211 puede aumentar dinámicamente la complejidad de la compresión para aumentar la resolución y aumentar el uso del ancho de banda o disminuir la complejidad de la compresión para disminuir la resolución y el uso del ancho de banda. Por tanto, el componente de control general de codificador 211 controla los otros componentes del sistema de códec 200 para equilibrar la calidad de reconstrucción de la señal de vídeo con las preocupaciones sobre la tasa de bits. El componente de control de codificador general 211 crea datos de control, que controlan el funcionamiento de los otros componentes. Los datos de control también se envían al componente de CABAC y de formato de encabezado 231 para ser codificados en el flujo de bits para señalizar parámetros para decodificar en el decodificador.
La señal de vídeo particionada 201 también se envía al componente de estimación de movimiento 221 y al componente de compensación de movimiento 219 para la interpredicción. Una trama o segmento de la señal de vídeo particionada 201 puede dividirse en múltiples bloques de vídeo. El componente de estimación de movimiento 221 y el componente de compensación de movimiento 219 realizan una codificación interpredictiva del bloque de vídeo recibido en relación con uno o más bloques en una o más tramas de referencia para proporcionar predicción temporal. El sistema de códec 200 puede realizar múltiples pasadas de codificación, por ejemplo, para seleccionar un modo de codificación apropiado para cada bloque de datos de vídeo.
El componente de estimación de movimiento 221 y el componente de compensación de movimiento 219 pueden estar muy integrados, pero se ilustran por separado con fines conceptuales. La estimación de movimiento, realizada por el componente de estimación de movimiento 221, es el proceso de generar vectores de movimiento, que estiman el movimiento para bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de un objeto codificado con respecto a un bloque predictivo. Un bloque predictivo es un bloque que se encuentra que coincide estrechamente con el bloque a codificar, en términos de diferencia de píxeles. Un bloque predictivo también puede denominarse bloque de referencia. Dicha diferencia de píxeles puede determinarse mediante la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrada (SSD) u otras métricas de diferencia. HEVC emplea varios objetos codificados que incluyen una CTU, bloques de árbol de codificación (CTB) y CU. Por ejemplo, una c Tu se puede dividir en CTB, que luego se pueden dividir en CBs para su inclusión en las CU. Una CU puede codificarse como una unidad de predicción (PU) que contiene datos de predicción y/o una unidad de transformación (TU) que contiene datos residuales transformados para la CU. El componente de estimación de movimiento 221 genera vectores de movimiento, PUs y TUs utilizando un análisis de distorsión de tasa como parte de un proceso de optimización de distorsión de tasa. Por ejemplo, el componente de estimación de movimiento 221 puede determinar múltiples bloques de referencia, múltiples vectores de movimiento, etc. para un bloque / trama actual, y puede seleccionar los bloques de referencia, vectores de movimiento, etc. que tienen las mejores características de distorsión de tasa. Las mejores características de distorsión de tasa equilibran tanto la calidad de la reconstrucción de vídeo (por ejemplo, la cantidad de datos perdidos por compresión) con la eficiencia de codificación (por ejemplo, el tamaño de la codificación final).
En algunos ejemplos, el sistema de códec 200 puede calcular valores para posiciones de píxeles sub-enteros de imágenes de referencia almacenadas en el componente de búfer de imágenes decodificadas 223. Por ejemplo, el sistema de códec de vídeo 200 puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de píxeles fraccionarios de la imagen de referencia. Por lo tanto, el componente de
estimación de movimiento 221 puede realizar una búsqueda de movimiento en relación con las posiciones de píxeles completos y las posiciones de píxeles fraccionarios y generar un vector de movimiento con precisión de píxeles fraccionarios. El componente de estimación de movimiento 221 calcula un vector de movimiento para una PU de un bloque de vídeo en un segmento intercodificado comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. El componente de estimación de movimiento 221 envía el vector de movimiento calculado como datos de movimiento al componente de CABAC y de formato de encabezado 231 para codificación y movimiento al componente de compensación de movimiento 219.
La compensación de movimiento, realizada por el componente de compensación de movimiento 219, puede implicar buscar o generar el bloque predictivo en base al vector de movimiento determinado por el componente de estimación de movimiento 221. De nuevo, el componente de estimación de movimiento 221 y el componente de compensación de movimiento 219 pueden integrarse funcionalmente, en algunos ejemplos. Al recibir el vector de movimiento para la PU del bloque de vídeo actual, el componente de compensación de movimiento 219 puede localizar el bloque predictivo al que apunta el vector de movimiento. A continuación, se forma un bloque de vídeo residual restando los valores de píxeles del bloque predictivo de los valores de píxeles del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxeles. En general, el componente de estimación de movimiento 221 realiza una estimación de movimiento con relación a los componentes de luma, y el componente de compensación de movimiento 219 usa vectores de movimiento calculados en base a los componentes de luma tanto para los componentes de croma como para los componentes de luma. El bloque predictivo y el bloque residual se envían al componente de cuantificación y de escala de transformación 213.
La señal de vídeo particionada 201 también se envía al componente de estimación intraimagen 215 y al componente de predicción intraimagen 217. Al igual que con el componente de estimación de movimiento 221 y el componente de compensación de movimiento 219, el componente de estimación intraimagen 215 y el componente de predicción intraimagen 217 pueden estar muy integrados, pero se ilustran por separado con fines conceptuales. El componente de estimación intraimagen 215 y el componente de predicción intraimagen 217 intrapredicen un bloque actual en relación con los bloques en una trama actual, como alternativa a la interpredicción realizada por el componente de estimación de movimiento 221 y el componente de compensación de movimiento 219 entre tramas, como se describió anteriormente. En particular, el componente de estimación intraimagen 215 determina un modo de intrapredicción a usar para codificar un bloque actual. En algunos ejemplos, el componente de estimación intraimagen 215 selecciona un modo de intrapredicción apropiado para codificar un bloque actual a partir de múltiples modos de intrapredicción probados. Los modos de intrapredicción seleccionados se reenvían luego al componente de CABAC y de formato de encabezado 231 para su codificación.
Por ejemplo, el componente de estimación intraimagen 215 calcula los valores de distorsión de tasa usando un análisis de distorsión de tasa para los diversos modos de intrapredicción probados y selecciona el modo de intrapredicción que tiene las mejores características de distorsión de tasa entre los modos probados. El análisis de distorsión de tasa generalmente determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque no codificado original que fue codificado para producir el bloque codificado, así como una tasa de bits (por ejemplo, una cantidad de bits) utilizada para producir el bloque codificado. El componente de estimación de intraimagen 215 calcula las relaciones a partir de las distorsiones y tasas para los diversos bloques codificados para determinar qué modo de intrapredicción presenta el mejor valor de distorsión de tasa para el bloque. Además, el componente de estimación intraimagen 215 puede configurarse para codificar bloques de profundidad de un mapa de profundidad utilizando un modo de modelado de profundidad (DMM) basado en la optimización de la distorsión de tasa (RDO).
El componente de predicción intraimagen 217 puede generar un bloque residual a partir del bloque predictivo basado en los modos de intrapredicción seleccionados determinados por el componente de estimación intraimagen 215 cuando se implementa en un codificador o leer el bloque residual del flujo de bits cuando se implementa en un decodificador. El bloque residual incluye la diferencia de valores entre el bloque predictivo y el bloque original, representado como una matriz. A continuación, el bloque residual se envía al componente de cuantificación y de escala de transformación 213. El componente de estimación intraimagen 215 y el componente de predicción intraimagen 217 pueden operar tanto en componentes de luma como de croma.
El componente de cuantificación y de escala de transformación 213 está configurado para comprimir más el bloque residual. El componente de cuantificación y de escala de transformación 213 aplica una transformada, tal como una transformada de coseno discreta (DCT), una transformada de seno discreta (DST) o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficiente de transformación residuales. También se podrían utilizar transformadas wavelet, transformadas de enteros, transformaciones de subbandas u otros tipos de transformaciones. La transformación puede convertir la información residual de un dominio de valor de píxel en un dominio de transformación, tal como un dominio de frecuencia. El componente de cuantificación y de escala de transformación 213 también está configurado para escalar la información de transformación residual, por ejemplo, basándose en la frecuencia. Tal escala implica aplicar un factor de escala a la información residual para que la información de frecuencia diferente se cuantifique en diferentes granularidades, lo que puede afectar la calidad visual final del vídeo reconstruido. El componente de cuantificación y de escala de transformación 213 también está configurado para cuantificar los coeficientes de transformación para reducir aún más la tasa de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los
coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación. En algunos ejemplos, el componente de cuantificación y de escala de transformación 213 puede entonces realizar una exploración de la matriz que incluye los coeficientes de transformación cuantificados. Los coeficientes de transformación cuantificados se envían al componente de CABAC y de formato de encabezado 231 para ser codificados en el flujo de bits.
El componente de transformación inversa y de escala 229 aplica una operación inversa del componente de cuantificación y de escala de transformación 213 para soportar la estimación del movimiento. El componente de transformación inversa y de escala 229 aplica escalamiento inverso, transformación y/o cuantificación para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para uso posterior como un bloque de referencia que puede convertirse en un bloque predictivo para otro bloque actual. El componente de estimación de movimiento 221 y/o el componente de compensación de movimiento 219 pueden calcular un bloque de referencia añadiendo el bloque residual de nuevo a un bloque predictivo correspondiente para su uso en la estimación de movimiento de un bloque / cuadro posterior. Filtros se aplican a los bloques de referencia reconstruidos para mitigar los artefactos creados durante el escalado, la cuantificación y la transformación. De lo contrario, tales artefactos podrían causar una predicción inexacta (y crear artefactos adicionales) cuando se predicen bloques posteriores.
El componente de análisis de control de filtro 227 y el componente de filtro en bucle 225 aplican los filtros a los bloques residuales y/o a los bloques de imagen reconstruidos. Por ejemplo, el bloque residual transformado del componente de transformación inversa y de escala 229 puede combinarse con un bloque de predicción correspondiente del componente de predicción intraimagen 217 y/o el componente de compensación de movimiento 219 para reconstruir el bloque de imagen original. A continuación, los filtros se pueden aplicar al bloque de imagen reconstruido. En algunos ejemplos, los filtros se pueden aplicar en cambio a los bloques residuales. Como ocurre con otros componentes de la Figura 2, el componente de análisis de control de filtro 227 y el componente de filtro en bucle 225 están altamente integrados y pueden implementarse juntos, pero se representan por separado con fines conceptuales. Los filtros aplicados a los bloques de referencia reconstruidos se aplican a regiones espaciales particulares e incluyen múltiples parámetros para ajustar cómo se aplican dichos filtros. El componente de análisis de control de filtro 227 analiza los bloques de referencia reconstruidos para determinar dónde deberían aplicarse dichos filtros y establece los parámetros correspondientes. Dichos datos se envían al componente de CABAC y de formato de encabezado 231 como datos de control de filtro para la codificación. El componente de filtro en bucle 225 aplica dichos filtros basándose en los datos de control del filtro. Los filtros pueden incluir un filtro de desbloqueo, un filtro de supresión de ruido, un filtro SAO y un filtro de bucle adaptativo. Dichos filtros se pueden aplicar en el dominio espacial / de píxeles (por ejemplo, en un bloque de píxeles reconstruido) o en el dominio de frecuencia, según el ejemplo.
Cuando funciona como un codificador, el bloque de imagen reconstruido filtrado, el bloque residual y/o el bloque de predicción se almacenan en el componente de búfer de imágenes decodificadas 223 para su uso posterior en la estimación de movimiento como se discutió anteriormente. Cuando funciona como decodificador, el componente de búfer de imágenes decodificadas 223 almacena y reenvía los bloques reconstruidos y filtrados hacia una pantalla como parte de una señal de vídeo de salida. El componente de búfer de imágenes decodificadas 223 puede ser cualquier dispositivo de memoria capaz de almacenar bloques de predicción, bloques residuales y/o bloques de imágenes reconstruidas.
El componente de CABAC y de formato de encabezado 231 recibe los datos de los diversos componentes del sistema de códec 200 y codifica dichos datos en un flujo de bits codificado para su transmisión hacia un decodificador. Específicamente, el componente de CABAC y de formato de encabezado 231 genera varios encabezados para codificar datos de control, tales como datos de control general 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 coeficientes de transformación cuantificados, están todos codificados en el flujo de bits. El flujo de bits final incluye toda la información deseada por el decodificador para reconstruir la señal de vídeo particionada original 201. Dicha información también puede incluir tablas de índice de modo de intrapredicción (también denominadas tablas de mapeo de palabras de código), definiciones de contextos de codificación para varios bloques, indicaciones de los modos de intrapredicción más probables, una indicación de información de partición, etc. Tales datos pueden ser codificados empleando codificación por entropía. Por ejemplo, la información puede codificarse empleando codificación de longitud variable adaptativa al contexto (CAVLC), CABAC, codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), codificación por entropía de particionado de intervalo de probabilidad (PIPE) u otra técnica de codificación por entropía. Después de la codificación por entropía, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, un decodificador de vídeo) o archivarse para su posterior transmisión o recuperación.
La Figura 3 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo 300. Puede emplearse el codificador de vídeo 300 para implementar las funciones de codificación del sistema de códec 200 y/o implementar los pasos 101, 103, 105, 107 y/o 109 del método operativo 100. El codificador 300 particiona una señal de vídeo de entrada, dando como resultado una señal de vídeo particionada 301, que es sustancialmente similar a la señal de vídeo particionada 201. La señal de vídeo particionada 301 es luego comprimida y codificada en un flujo de bits por componentes del codificador 300.
Específicamente, la señal de vídeo dividida 301 se reenvía a un componente de predicción intraimagen 317 para la intrapredicción. El componente de predicción intraimagen 317 puede ser sustancialmente similar al componente de estimación intraimagen 215 y al componente de predicción intraimagen 217. La señal de vídeo particionada 301 también se envía a un componente de compensación de movimiento 321 para la interpredicción basada en bloques de referencia en un componente de búfer de imágenes decodificadas 323. El componente de compensación de movimiento 321 puede ser sustancialmente similar al componente de estimación de movimiento 221 y al componente de compensación de movimiento 219. Los bloques de predicción y los bloques residuales del componente de predicción intraimagen 317 y el componente de compensación de movimiento 321 se envían a un componente de transformación y cuantificación 313 para la transformación y cuantificación de los bloques residuales. El componente de transformación y cuantificación 313 puede ser sustancialmente similar al componente de transformación y cuantificación 213. Los bloques residuales transformados y cuantificados y los bloques de predicción correspondientes (junto con los datos de control asociados) se envían a un componente de codificación por entropía 331 para codificar en un flujo de bits. El componente de codificación por entropía 331 puede ser sustancialmente similar al componente de CABAC y de formato de encabezado 231.
Los bloques residuales transformados y cuantificados y/o los correspondientes bloques de predicción también se envían desde el componente de transformación y cuantificación 313 a un componente de transformación inversa y cuantificación 329 para la reconstrucción en bloques de referencia para su uso por el componente de compensación de movimiento 321. El componente de transformación y cuantificación inversa 329 puede ser sustancialmente similar al componente de transformación inversa y de escala 229. Los filtros en bucle en un componente de filtro en bucle 325 también se aplican a los bloques residuales y/o bloques de referencia reconstruidos, según el ejemplo. El componente de filtro en bucle 329 puede ser sustancialmente similar al componente de análisis de control de filtro 227 y al componente de filtro en bucle 225. El componente de filtro en bucle 325 puede incluir múltiples filtros como se describe con respecto al componente de filtro en bucle 225. A continuación, los bloques filtrados se almacenan en un componente de búfer de imágenes decodificadas 323 para su uso como bloques de referencia por el componente de compensación de movimiento 321. El componente de búfer de imágenes decodificadas 323 puede ser sustancialmente similar al componente de búfer de imágenes decodificadas 223.
La Figura 4 es un diagrama de bloques que ilustra un decodificador de vídeo de ejemplo 400. El decodificador 400 de vídeo se puede emplear para implementar las funciones de decodificación del sistema de códec 200 y/o implementar los pasos 111, 113, 115 y/o 117 del método operativo 100. El decodificador 400 recibe un flujo de bits, por ejemplo, de un codificador 300, y genera una señal de vídeo de salida reconstruida basada en el flujo de bits para su visualización a un usuario final.
El flujo de bits es recibido por un componente de decodificación por entropía 433. El componente de decodificación por entropía 433 está configurado para implementar un esquema de decodificación de entropía, tal como CAVLC, CABAc , SBAC, codificación PIPE u otras técnicas de codificación de entropía. Por ejemplo, el componente de decodificación por entropía 433 puede emplear información de encabezado para proporcionar un contexto para interpretar datos adicionales codificados como palabras de código en el flujo de bits. La información decodificada incluye cualquier información deseada para decodificar la señal de vídeo, tal como datos de control general, datos de control de filtro, información de partición, datos de movimiento, datos de predicción y coeficientes de transformación cuantificados de bloques residuales. Los coeficientes de transformación cuantificados se envían a un componente de transformación y cuantificación inversa 429 para su reconstrucción en bloques residuales. El componente de cuantificación y transformación inversa 429 puede ser similar al componente de cuantificación y transformación inversa 329.
Los bloques residuales reconstruidos y/o los bloques de predicción se envían al componente de predicción intraimagen 417 para su reconstrucción en bloques de imagen basados en operaciones de intrapredicción. El componente de predicción intraimagen 417 puede ser similar al componente de estimación intraimagen 215 y al componente de predicción intraimagen 217. Específicamente, el componente de predicción intraimagen 417 emplea modos de predicción para localizar un bloque de referencia en la trama y aplica un bloque residual al resultado para reconstruir bloques de imágenes intrapredichos. Los bloques de imagen intrapredichos reconstruidos y/o los bloques residuales y los datos de interpredicción correspondientes se envían a un componente de búfer de imágenes decodificadas 423 a través de un componente de filtro en bucle 425, que puede ser sustancialmente similar al componente de búfer de imágenes decodificadas 223 y al componente de filtro de bucle 225, respectivamente. El componente de filtro en bucle 425 filtra los bloques de imágenes reconstruidas, los bloques residuales y/o los bloques de predicción, y dicha información se almacena en el componente de búfer de imágenes decodificadas 423. Los bloques de imágenes reconstruidas del componente de búfer de imágenes decodificadas 423 se envían a un componente de compensación de movimiento 421 para la interpredicción. El componente de compensación de movimiento 421 puede ser sustancialmente similar al componente de estimación de movimiento 221 y/o al componente de compensación de movimiento 219. Específicamente, el componente de compensación de movimiento 421 emplea vectores de movimiento 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 enviarse a través del componente de filtro en bucle 425 al componente de búfer de imágenes decodificadas 423. El componente de búfer de imágenes decodificadas 423 continúa almacenando bloques de imágenes reconstruidas adicionales, que pueden reconstruirse en tramas a través de la información de partición. Estas tramas también se pueden colocar en una secuencia. La secuencia se envía a una pantalla como una señal de vídeo de salida reconstruida.
La Figura 5 es un diagrama esquemático que ilustra un flujo de bits 500 y un subflujo de bits 501 extraídos del flujo de bits 500 de ejemplo. Por ejemplo, el flujo de bits 500 se puede generar mediante un sistema de códec 200 y/o un codificador 300 para decodificar mediante un sistema de códec 200 y/o un decodificador 400. Como otro ejemplo, el flujo de bits 500 puede ser generado por un codificador en el paso 109 del método 100 para ser utilizado por un decodificador en el paso 111.
El flujo de bits 500 incluye un conjunto de parámetros de secuencia (SPS) 510, una pluralidad de conjuntos de parámetros de imagen (PPS) 512, una pluralidad de encabezados de segmento 514, datos de imagen 520, y uno o más mensajes SEI 515. Un SPS 510 contiene datos de secuencia comunes a todas las imágenes de la secuencia de vídeo contenida en el flujo de bits 500. Dichos datos pueden incluir el tamaño de imagen, la profundidad de bits, los parámetros de la herramienta de codificación, las limitaciones de tasa de bits, etc. El PPS 512 contiene parámetros que son específicos de una o más imágenes correspondientes. Por tanto, cada imagen de una secuencia de vídeo puede referirse a un PPS 512. El PPS 512 puede indicar herramientas de codificación disponibles para mosaicos en imágenes correspondientes, parámetros de cuantificación, compensaciones, parámetros de herramientas de codificación específicas de imagen (por ejemplo, controles de filtro), etc. El encabezado de segmento 514 contiene parámetros que son específicos para uno o más segmentos correspondientes 524 en una imagen. Por tanto, cada segmento 524 en una secuencia de vídeo puede referirse a encabezado de segmento 514. El encabezado de segmento 514 puede contener información de tipo de segmento, conteos/recuentos de orden de imagen (POC), listas de imágenes de referencia, pesos/ponderaciones de predicción, puntos de entrada de mosaico, parámetros de desbloqueo, etc. En algunos ejemplos, los segmentos 524 pueden denominarse grupos de mosaicos. En tal caso, el encabezado de segmento 514 puede denominarse encabezado de grupo de mosaicos. Los mensajes SEI 515 son mensajes opcionales que contienen metadatos que no son necesarios para la decodificación de bloques, pero que pueden emplearse para fines relacionados, como indicar el tiempo de salida de la imagen, la configuración de la pantalla, la detección de pérdida, la ocultación de pérdida, etc.
Los datos de imagen 520 contienen datos de vídeo codificados de acuerdo con la interpredicción y/o intrapredicción, así como los correspondientes datos residuales transformados y cuantificados. Dichos datos de imagen 520 se clasifican de acuerdo con una partición utilizada para particionar la imagen antes de la codificación. Por ejemplo, la secuencia de vídeo se divide en imágenes 521. Las imágenes 521 pueden dividirse además en subimágenes 522, que se dividen en segmentos 524. Los segmentos 524 se pueden dividir además en mosaicos y/o CTU. Las CTU se dividen además en bloques de codificación basados en árboles de codificación. A continuación, los bloques de codificación se pueden codificar / decodificar de acuerdo con los mecanismos de predicción. Por ejemplo, una imagen 521 puede contener una o más subimágenes 522. Una subimagen 522 contener uno o más segmentos 524. La imagen 521 se refiere al PPS 512 y los segmentos 524 se refieren al encabezado de segmento 514. Las subimágenes 522 pueden particionarse de forma coherente en una secuencia de vídeo completa (también conocida como segmento) y, por tanto, pueden referirse al SPS 510. Cada segmento 524 puede contener uno o más mosaicos. Cada segmento 524, y por tanto la imagen 521 y la subimagen 522, también pueden contener una pluralidad de CTU.
Cada imagen 521 puede contener un conjunto completo de datos visuales asociados con una secuencia de vídeo para un instante correspondiente en el tiempo. Sin embargo, es posible que determinadas aplicaciones deseen mostrar sólo una parte de una imagen 521 en algunos casos. Por ejemplo, un sistema de realidad virtual (VR) puede mostrar una región de la imagen 521 seleccionada por el usuario, que crea la sensación de estar presente en la escena representada en la imagen 521. La región que un usuario puede desear ver no se conoce cuando el flujo de bits 500 está codificado. Por consiguiente, la imagen 521 puede contener cada región posible que un usuario puede ver potencialmente como subimágenes 522, que pueden decodificarse y visualizarse por separado basándose en la entrada del usuario. Otras aplicaciones pueden mostrar por separado una región de interés. Por ejemplo, un televisor con una imagen en una imagen puede desear mostrar una región particular, y por lo tanto una subimagen 522, de una secuencia de vídeo sobre una imagen 521 de una secuencia de vídeo no relacionada. En otro ejemplo más, los sistemas de teleconferencia pueden mostrar una imagen completa 521 de un usuario que está hablando en ese momento y una subimagen 522 de un usuario que no está hablando en ese momento. Por consiguiente, una subimagen 522 puede contener una región definida de la imagen 521. Una subimagen 522 que está temporalmente restringida de movimiento puede decodificarse por separado del resto de la imagen 521. Específicamente, una subimagen restringida de movimiento temporal se codifica sin referencia a muestras fuera de la subimagen restringida de movimiento temporal y, por tanto, contiene información suficiente para la decodificación completa sin referencia al resto de la imagen 521.
Cada segmento 524 puede ser un rectángulo definido por una CTU en una esquina superior izquierda y una CTU en una esquina inferior derecha. En algunos ejemplos, un segmento 524 incluye una serie de mosaicos y/o CTU en un orden de exploración de trama que procede de izquierda a derecha y de arriba a abajo. En otros ejemplos, un segmento 524 es un segmento rectangular. Un segmento rectangular puede no atravesar todo el ancho de una imagen de acuerdo con un orden de exploración de trama. En su lugar, una segmento rectangular puede contener una región rectangular y/o cuadrada de una imagen 521 y/o una subimagen 522 definida en términos de una CTU y/o filas de mosaicos y una CTU y/o columnas de mosaicos. Un segmento 524 es la unidad más pequeña que un decodificador puede mostrar por separado. Por tanto, los segmentos 524 de una imagen 521 pueden asignarse a diferentes subimágenes 522 para representar por separado las regiones deseadas de una imagen 521.
Un decodificador puede mostrar una o más subimágenes 523 de la imagen 521. Las subimágenes 523 son un subgrupo de subimágenes 522 seleccionado por el usuario o un subgrupo predefinido. Por ejemplo, una imagen 521 se puede dividir en nueve subimágenes 522, pero el decodificador puede mostrar solo una única subimagen 523 del grupo de subimágenes 522. Las subimágenes 523 contienen segmentos 525, que son un subgrupo de segmentos 524 seleccionado o predefinido. Para permitir la visualización separada de las subimágenes 523, puede extraerse un subflujo de bits 501 del flujo de bits 500. La extracción 529 puede ocurrir en el lado del codificador de modo que el decodificador solo reciba el subflujo de bits 501. En otros casos, todo el flujo de bits 500 se transmite al decodificador y el decodificador extrae 529 el subflujo de bits 501 para una decodificación separada. Cabe señalar que el subflujo de bits 501 también puede denominarse generalmente como un flujo de bits en algunos casos. Un subflujo de bits 501 incluye el SPS 510, el PPS 512, las subimágenes 523 seleccionadas, así como los encabezados de segmento 514 y los mensajes SEI 515 que son relevantes para las subimágenes 523 y/o los segmentos 525.
La presente divulgación señala varios datos para soportar una codificación eficaz de las subimágenes 522 para la selección y visualización de las subimágenes 523 en el decodificador. El SPS 510 incluye un tamaño de subimagen 531, una ubicación de subimagen 532 e ID de subimagen 533 relacionados con el conjunto completo de subimágenes 522. El tamaño de subimagen 531 incluye una altura de subimagen en muestras de luma y un ancho de subimagen en muestras de luma para una subimagen correspondiente 522. La ubicación de subimagen 532 incluye una distancia de desplazamiento entre una muestra superior izquierda de una subimagen correspondiente 522 y una muestra superior izquierda de la imagen 521. La ubicación de subimagen 532 y el tamaño de subimagen 531 define un diseño de la subimagen correspondiente 552. El ID de subimagen 533 contiene datos que identifican de forma única una subimagen correspondiente 522. El ID de subimagen 533 puede ser un índice de exploración de trama de la subimagen 522 u otro valor definido. Por tanto, un decodificador puede leer el SPS 510 y determinar el tamaño, la ubicación y el ID de cada subimagen 522. En algunos sistemas de codificación de vídeo, los datos relacionados con las subimágenes 522 pueden incluirse en el PPS 512 porque una subimagen 522 está particionada a partir de una imagen 521. Sin embargo, las particiones utilizadas para crear subimágenes 522 pueden ser utilizadas por aplicaciones, tales como aplicaciones basadas en ROI, aplicaciones de VR/RV, etc., que dependen de particiones de subimagen 522 consistentes sobre una secuencia/segmento de vídeo. Como tal, las particiones de subimagen 522 generalmente no en una base de imagen por imagen. Colocar información de diseño para subimágenes 522 en el SPS 510 asegura que el diseño solo se señalice una vez para una secuencia/segmento en lugar de señalizarse de forma redundante para cada PPS 512 (que puede señalizarse para cada imagen 521 en algunos casos). Además, señalizar información de subimagen 522, en lugar de depender del decodificador para derivar dicha información, reduce la posibilidad de error en caso de pérdida de paquetes y soporta una funcionalidad adicional en términos de extracción de subimágenes 523. Por consiguiente, señalizar el diseño de subimagen 522 en el SPS 510 mejora la funcionalidad de un codificador y/o decodificador.
El SPS 510 también contiene banderas/indicadores 534 de subimágenes restringidas de movimiento relacionados con el conjunto completo de subimágenes 522. Las banderas/indicadores 534 de subimágenes restringidas de movimiento indican si cada subimagen 522 es una subimagen restringida de movimiento temporal. Por tanto, el decodificador puede leer las banderas 534 de subimágenes restringidas de movimiento y determinar cuál de las subimágenes 522 se puede extraer y visualizar por separado sin decodificar otras subimágenes 522. Esto permite que las subimágenes 522 seleccionadas se codifiquen como subimágenes restringidas de movimiento temporal mientras que permite codificar otras subimágenes 522 sin tales limitaciones para una mayor eficiencia de codificación.
Los ID de subimagen 533 también se incluyen en los encabezados de segmento 514. Cada encabezado de segmento 514 contiene datos relevantes para un conjunto correspondiente de segmentos 524. Por consiguiente, el encabezado de segmento 514 contiene solo los ID de subimagen 533 correspondientes a los segmentos 524 asociados con el encabezado de segmento 514. Como tal, un decodificador puede recibir un segmento 524, obtener un ID de subimagen 533 del encabezado de segmento 514 y determinar qué subimagen 522 contiene el segmento 524. El decodificador también puede usar el ID de subimagen 533 del encabezado de segmento 514 para correlacionar con los datos relacionados en el SPS 510. Como tal, el decodificador puede determinar cómo colocar las subimágenes 522/523 y los segmentos 524/525 leyendo el SPS 510 y los encabezados 514 de los segmentos relevantes. Esto permite decodificar las subimágenes 523 y los segmentos 525 incluso si algunas subimágenes 522 se pierden en la transmisión o se omiten intencionalmente para aumentar la eficacia de la codificación.
El mensaje SEI 515 también puede contener un nivel de subimagen 535. El nivel de subimagen 535 indica los recursos de hardware necesarios para decodificar una subimagen correspondiente 522. De esta manera, cada subimagen 522 puede codificarse independientemente de otras subimágenes 522. Esto asegura que se pueda asignar a cada subimagen 522 la cantidad correcta de recursos de hardware en el decodificador. Sin tal nivel de subimagen 535, a cada subimagen 522 se le asignarían suficientes recursos para decodificar la subimagen más compleja 522. Por tanto, el nivel de subimagen 535 evita que el decodificador sobreasigne recursos de hardware si las subimágenes 522 están asociadas con requisitos de recursos de hardware variables.
La Figura 6 es un diagrama esquemático que ilustra un ejemplo de imagen 600 particionada en subimágenes 622. Por ejemplo, una imagen 600 puede codificarse y decodificarse a partir de un flujo de bits 500, por ejemplo, mediante un sistema de códec 200, un codificador 300 y/o un decodificador 400. Además, la imagen 600 puede particionarse y/o incluirse en un subflujo de bits 501 para soportar la codificación y decodificación de acuerdo con el método 100.
La imagen 600 puede ser sustancialmente similar a una imagen 521. Además, la imagen 600 puede particionarse en subimágenes 622, que son sustancialmente similares a las subimágenes 522. Cada una de las subimágenes 622 incluye un tamaño de subimagen 631, que puede incluirse en un flujo de bits 500 como un tamaño de subimagen 531. El tamaño de subimagen 631 incluye un ancho de subimagen 631a y una altura de subimagen 631b. El ancho de subimagen 631a es el ancho de una subimagen correspondiente 622 en unidades de muestras de luma. La altura de subimagen 631b es la altura de una subimagen correspondiente 622 en unidades de muestras de luma. Cada una de las subimágenes 622 incluye un ID de subimagen 633, que puede estar incluido en un flujo de bits 500 como un ID de subimagen 633. El ID de subimagen 633 puede ser cualquier valor que identifique de forma única cada subimagen 622. En el ejemplo mostrado, el ID de subimagen 633 es un índice de subimagen 622. Cada una de las subimágenes 622 incluye una ubicación 632, que puede estar incluida en un flujo de bits 500 como una ubicación de subimagen 532. La ubicación 632 se expresa como un desplazamiento entre la muestra superior izquierda de una subimagen correspondiente 622 y una muestra superior izquierda 642 de la imagen 600.
También como se muestra, algunas subimágenes 622 pueden ser subimágenes restringidas de movimiento temporal 634 y otras subimágenes 622 pueden no serlo. En el ejemplo mostrado, la subimagen 622 con un ID de subimagen 633 de cinco es una subimagen 634 con limitación de movimiento temporal. Esto indica que la subimagen 622 identificada como cinco está codificada sin referencia a ninguna otra subimagen 622 y, por lo tanto, puede extraerse y decodificarse por separado sin considerar los datos de las otras subimágenes 622. Una indicación de qué subimágenes 622 son subimágenes restringidas de movimiento temporal 634 puede ser señalizada en un flujo de bits 500 en banderas de subimágenes restringidas de movimiento 534.
Como se muestra, las subimágenes 622 se pueden restringir para cubrir una imagen 600 sin un espacio o superposición. Un espacio/hueco es una región de una imagen 600 que no está incluida en ninguna subimagen 622. Una superposición es una región de una imagen 600 que se incluye en más de una subimagen 622. En el ejemplo mostrado en la Figura 6, las subimágenes 622 están particionadas a partir la imagen 600 para evitar tanto espacios como superposiciones. Los espacios hacen que las muestras de imagen 600 se queden fuera de las subimágenes 622. Las superposiciones hacen que los segmentos asociados se incluyan en múltiples subimágenes 622. Por lo tanto, los espacios y superposiciones pueden hacer que las muestras se vean afectadas por el tratamiento diferencial cuando las subimágenes 622 se codifican de forma diferente. Si esto está permitido en el codificador, un decodificador debe soportar tal esquema de codificación incluso cuando el esquema de decodificación se usa raramente. Al no permitir los espacios y superposiciones de la subimagen 622, la complejidad del decodificador puede reducirse ya que no se requiere que el decodificador tenga en cuenta los posibles huecos y superposiciones al determinar los tamaños 631 y las ubicaciones 632 de subimagen. Además, no permitir los espacios y superposiciones de la subimagen 622 reduce la complejidad de los procesos RDO en el codificador. Esto se debe a que el codificador puede omitir considerar los casos de espacios y superposición al seleccionar una codificación para una secuencia de vídeo. Por consiguiente, evitar espacios y superposiciones puede reducir el uso de recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador.
La Figura 7 es un diagrama esquemático que ilustra un mecanismo de ejemplo 700 para relacionar los segmentos 724 con un diseño de subimagen 722. Por ejemplo, el mecanismo 700 puede aplicarse a la imagen 600. Además, el mecanismo 700 se puede aplicar basándose en datos en un flujo de bits 500, por ejemplo mediante un sistema de códec 200, un codificador 300 y/o un decodificador 400. Además, el mecanismo 700 se puede emplear para soportar la codificación y decodificación de acuerdo con el método 100.
El mecanismo 700 se puede aplicar a los segmentos 724 en una subimagen 722, tales como los segmentos 524/525 y las subimágenes 522/523, respectivamente. En el ejemplo mostrado, la subimagen 722 incluye un primer segmento 724a, un segunda segmento 724b y un tercer segmento 724c. Los encabezados de segmento para cada uno de los segmentos 724 incluyen un ID de subimagen 733 para la subimagen 722. El decodificador puede hacer coincidir el ID de subimagen 733 del encabezado de segmento con el ID de subimagen 733 en el SPS. El decodificador puede entonces determinar la ubicación 732 y el tamaño de subimagen 722 a partir del SPS basándose en el ID de la subimagen 733. Usando la ubicación 732, la subimagen 722 puede colocarse con relación a la muestra superior izquierda en la esquina superior izquierda 742 de la imagen. El tamaño se puede usar para establecer la altura y el ancho de la subimagen 722 en relación con la ubicación 732. Los segmentos 724 pueden incluirse entonces en la subimagen 722. Por consiguiente, los segmentos 724 se pueden colocar en la subimagen 722 correcta en base al ID de subimagen 733 sin referencia a otras subimágenes. Esto admite la corrección de errores ya que otras subimágenes perdidas no alteran la decodificación de la subimagen 722. Esto también admite aplicaciones que solo extraen una subimagen 722 y evitan transmitir otras subimágenes. Por tanto, los ID de subimagen 733 soportan una mayor funcionalidad y/o una mayor eficiencia de codificación, lo que reduce el uso de recursos de red, recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador.
La Figura 8 es un diagrama esquemático que ilustra otra imagen de ejemplo 800 particionada en subimágenes 822. La imagen 800 puede ser sustancialmente similar a la imagen 600. Además, una imagen 800 puede codificarse y descodificarse a partir de un flujo de bits 500, por ejemplo, mediante un sistema de códec 200, un codificador 300 y/o un decodificador 400. Además, la imagen 800 se puede dividir y/o incluir en un subflujo de bits 501 para soportar la codificación y decodificación de acuerdo con el método 100 y/o el mecanismo 700.
La imagen 800 incluye subimágenes 822, que pueden ser sustancialmente similares a las subimágenes 522, 523, 622 y/o 722. Las subimágenes 822 se dividen en una pluralidad de CTU 825. Un CTU 825 es una unidad de codificación básica en sistemas de codificación de vídeo estandarizados. Una CTU 825 se subdivide mediante un árbol de codificación en bloques de codificación, que se codifican de acuerdo con interpredicción o la intrapredicción. Como se muestra, algunas subimágenes 822a están restringidas para incluir anchos de subimagen y alturas de subimagen que son múltiplos del tamaño de CTU 825. En el ejemplo que se muestra, las subimágenes 822a tienen una altura de seis CTU 825 y un ancho de cinco CTU 825. Esta restricción se elimina para las subimágenes 822b colocadas en el borde derecho 801 de las imágenes y para las subimágenes 822c ubicadas en el borde inferior de las imágenes 802. En el ejemplo que se muestra, las subimágenes 822b tienen un ancho de entre cinco y seis CTU 825. Por tanto, las subimágenes 822b tienen un ancho de cinco CTU completas 825 y una CTU incompleta 825. Sin embargo, las subimágenes 822b que no están colocadas en el borde inferior 802 de las imágenes todavía están limitadas para mantener una altura de la subimagen que es un múltiplo del tamaño de CTU 825. En el ejemplo que se muestra, las subimágenes 822c tienen una altura de entre seis y siete CTU 825. Por tanto, las subimágenes 822c tienen una altura de seis CTU completas 825 y una CTU incompleta 825. Sin embargo, las subimágenes 822c que no están colocadas en el borde derecho 801 de las imágenes todavía están restringidas para mantener un ancho de subimagen que es un múltiplo del tamaño de CTU 825. Debe observarse que el borde derecho de las imágenes 801 y el borde inferior de las imágenes 802 también pueden denominarse como el borde derecho de las imágenes y el borde inferior de las imágenes, respectivamente. También debe tenerse en cuenta que el tamaño de CTU 825 es un valor definido por el usuario. El tamaño de CTU 825 puede tener cualquier valor entre un tamaño mínimo de CTU 825 y un tamaño máximo de CTU 825. Por ejemplo, el tamaño mínimo de CTU 825 puede tener dieciséis muestras de luma de altura y dieciséis muestras de luma de ancho. Además, el tamaño máximo de CTU 825 puede ser de ciento veintiocho muestras de luma de altura y ciento veintiocho muestras de luma de ancho.
Como se señaló anteriormente, algunos sistemas de vídeo pueden limitar las subimágenes 822 para incluir alturas y anchos que sean múltiplos del tamaño de CTU 825. Esto puede evitar que las subimágenes 822 funcionen correctamente con muchas disposiciones de imagen, por ejemplo, con una imagen 800 que contiene un ancho o alto total que no es un múltiplo del tamaño CTU 825. Al permitir que las subimágenes inferiores 822c y las subimágenes derechas 822b incluyan alturas y anchos, respectivamente, que no sean múltiplos del tamaño de CTU 825, las subimágenes 822 pueden usarse con cualquier imagen 800 sin provocar errores de decodificación. Esto da como resultado un aumento de la funcionalidad del codificador y decodificador. Además, la mayor funcionalidad permite que un codificador codifique imágenes de manera más eficiente, lo que reduce el uso de recursos de red, recursos de memoria y/o recursos de procesamiento en el codificador y el decodificador.
Como se describe en el presente documento, la presente divulgación describe diseños para la división de imágenes basada en subimágenes en la codificación de vídeo. Una subimagen es un área rectangular dentro de una imagen que se puede decodificar de forma independiente mediante un proceso de decodificación similar al que se utiliza para una imagen. La presente divulgación se refiere a la señalización de subimágenes en una secuencia de vídeo codificada y/o flujo de bits, así como al proceso de extracción de subimágenes. Las descripciones de las técnicas se basan en v Vc por la JVET de ITU-T e iSo /IEC. Sin embargo, las técnicas también se aplican a otras especificaciones de códecs de vídeo. Las siguientes son modalidades de ejemplo descritas en el presente documento. Tales modalidades se pueden aplicar individualmente o en combinación.
La información relacionada con las subimágenes que pueden estar presentes en la secuencia de vídeo codificada (CVS) puede indicarse en un conjunto de parámetros de nivel de secuencia, como un SPS. Dicha señalización puede incluir la siguiente información. El número de subimágenes que están presentes en cada imagen del CVS puede señalizarse en el SPS. En el contexto del SPS o un CVS, las subimágenes colocadas para todas las unidades de acceso (AUs) pueden denominarse colectivamente como una secuencia de subimágenes. También se puede incluir en el SPS un lazo/bucle para especificar más información que describe las propiedades de cada subimagen. Esta información puede comprender la identificación de la subimagen, la ubicación de subimagen (por ejemplo, la distancia de desplazamiento entre la muestra de luma de la esquina superior izquierda de la subimagen y la muestra de luma de la esquina superior izquierda de la imagen), y el tamaño de subimagen. Además, el SPS puede indicar si cada subimagen es una subimagen restringida de movimiento (que contiene la funcionalidad de un MCTS). La información de perfil, grado y nivel para cada subimagen también puede indicarse o derivarse en el decodificador. Dicha información puede emplearse para determinar información de perfil, grado y nivel para un flujo de bits creado extrayendo subimágenes del flujo de bits original. El perfil y el grado de cada subimagen puede derivarse para que sea el mismo que el perfil y el grado de todo el flujo de bits. El nivel de cada subimagen puede indicarse explícitamente. Tal señalización puede estar presente en el bucle contenido en el SPS. Los parámetros del decodificador de referencia hipotético (HRD) de nivel de secuencia se pueden señalizar en la sección de información de usabilidad de vídeo (VUI) del SPS para cada subimagen (o, de manera equivalente, cada secuencia de subimagen).
Cuando una imagen no está particionada en dos o más subimágenes, las propiedades de la subimagen (por ejemplo, ubicación, tamaño, etc.), excepto el ID de la subimagen, pueden no estar presentes/señalizadas en el flujo de bits. Cuando se extrae una subimagen de imágenes en un CVS, es posible que cada unidad de acceso en el nuevo flujo de bits no contenga subimágenes. En este caso, la imagen de cada AU en el nuevo flujo de bits no se particiona en múltiples subimágenes. Por tanto, no hay necesidad de señalar las propiedades de subimagen, como la ubicación y el tamaño, en el SPS, ya que dicha información puede derivarse de las propiedades de la imagen. Sin embargo, la
identificación de subimagen todavía se puede señalizar, ya que el ID puede ser denominada por unidades/grupos de mosaicos NAL VCL que se incluyen en la subimagen extraída. Esto puede permitir que los ID de las subimágenes permanezcan iguales al extraer la subimagen.
La ubicación de una subimagen en la imagen (desplazamiento xy desplazamiento y) se puede señalizar en unidades de muestras de luma. La ubicación representa la distancia entre la muestra de luma de la esquina superior izquierda de la subimagen y la muestra de luma de la esquina superior izquierda de la imagen. Alternativamente, la ubicación de una subimagen en la imagen se puede señalizar en unidades del tamaño mínimo del bloque de codificación de luma (MinCbSizeY). Alternativamente, la unidad de desplazamientos de ubicación de subimagen puede indicarse explícitamente mediante un elemento de sintaxis en un conjunto de parámetros. La unidad puede ser CtbSizeY, MinCbSizeY, muestra de luma u otros valores.
El tamaño de una subimagen (ancho de subimagen y altura de subimagen) se puede señalizar en unidades de muestras de luma. Alternativamente, el tamaño de una subimagen se puede señalizar en unidades del tamaño mínimo de bloque de codificación de luma (MinCbSizeY). Alternativamente, la unidad de los valores de tamaño de subimagen puede indicarse explícitamente mediante un elemento de sintaxis en un conjunto de parámetros. La unidad puede ser CtbSizeY, MinCbSizeY, muestra de luma u otros valores. Cuando el borde derecho de una subimagen no coincide con el borde derecho de la imagen, es posible que se requiera que el ancho de la subimagen sea un múltiplo entero del tamaño de CTU de luma (CtbSizeY). Asimismo, cuando el borde inferior de una subimagen no coincide con el borde inferior de la imagen, es posible que se requiera que la altura de la subimagen sea un múltiplo entero del tamaño de CTU de luma (CtbSizeY). Si el ancho de una subimagen no es un múltiplo entero del tamaño de CTU de luma, es posible que se requiera que la subimagen esté ubicada en la posición más a la derecha de la imagen. Asimismo, si la altura de una subimagen no es un múltiplo entero del tamaño de CTU de luma, es posible que se requiera que la subimagen esté ubicada en la posición más inferior de la imagen. En algunos casos, el ancho de una subimagen se puede señalar en unidades de tamaño de CTU de luma, pero el ancho de una subimagen no es un múltiplo entero del tamaño de CTU de luma. En este caso, el ancho real en las muestras de luma se puede derivar en función de la ubicación de desplazamiento de la subimagen. El ancho de la subimagen se puede derivar en función del tamaño de CTU de luma y la altura de la imagen se puede derivar en función de las muestras de luma. Asimismo, la altura de una subimagen puede indicarse en unidades de tamaño de CTU de luma, pero la altura de la subimagen no es un múltiplo entero del tamaño de CTU de luma. En tal caso, la altura real en la muestra de luma se puede derivar en función de la ubicación de desplazamiento de la subimagen. La altura de la subimagen se puede derivar en función del tamaño de CTU de luma y la altura de la imagen se puede derivar en función de las muestras de luma.
Para cualquier subimagen, el ID de la subimagen puede ser diferente del índice de subimagen. El índice de subimagen puede ser el índice de la subimagen como se indica en un bucle de subimágenes en el SPS. El ID de subimagen puede ser el índice de la subimagen en el orden de exploración de trama de subimagen en la imagen. Cuando el valor del ID de subimagen de cada subimagen es el mismo que el índice de la subimagen, el ID de la subimagen se puede señalizar o derivar. Cuando el ID de subimagen de cada subimagen es diferente del índice de subimagen, el ID de subimagen se señaliza explícitamente. El número de bits para la señalización de ID de subimagen puede indicarse en el mismo conjunto de parámetros que contiene propiedades de subimagen (por ejemplo, en el SPS). Es posible que algunos valores de ID de subimagen se reserven para determinados fines. Por ejemplo, cuando los encabezados de grupo de mosaicos contienen ID de subimagen para especificar qué subimagen contiene un grupo de mosaicos, el valor cero puede reservarse y no usarse para subimágenes para garantizar que los primeros bits de un encabezado de grupo de mosaicos no sean todos ceros para evitar la inclusión accidental de un código de prevención de emulación. En casos opcionales en los que las subimágenes de una imagen no cubren toda el área de la imagen sin espacios y sin superposición, se puede reservar un valor (por ejemplo, el valor uno) para grupos de mosaicos que no forman parte de ninguna subimagen. Alternativamente, el ID de subimagen del área restante se señaliza explícitamente. El número de bits para señalizar el ID de la subimagen puede limitarse de la siguiente manera. El rango de valores debe ser suficiente para identificar de forma única todas las subimágenes en una imagen, incluidos los valores reservados de la identificación de la subimagen. Por ejemplo, el número mínimo de bits para el ID de subimagen puede ser el valor de Ceil(Log2 (número de subimágenes en un número de imagen del ID de subimagen reservado).
Puede estar restringido que la unión de subimágenes debe cubrir la imagen completa sin espacios y sin superposición. Cuando se aplica esta restricción, para cada subimagen, puede estar presente una bandera para especificar si la subimagen es una subimagen restringida de movimiento, lo que indica que la subimagen se puede extraer. Alternativamente, es posible que la unión de subimágenes no cubra la imagen completa, pero es posible que no se permitan superposiciones.
Los ID de subimagen pueden estar presentes inmediatamente después del encabezado de la unidad NAL para ayudar al proceso de extracción de la subimagen sin requerir que el extractor analice el resto de los bits de la unidad NAL. Para las unidades NAL VCL, el ID de subimagen puede estar presente en los primeros bits de los encabezados del grupo de mosaicos. Para unidades que no son NAL VCL, se puede aplicar lo siguiente. Para SPS, no es necesario que el ID de subimagen esté presente inmediatamente después del encabezado de la unidad NAL. Para PPS, si todos los grupos de mosaicos de la misma imagen están restringidos para hacer referencia al mismo PPS, no es necesario que el ID de la subimagen esté presente inmediatamente después de su encabezado de unidad NAL. Si se permite que los grupos de mosaicos de la misma imagen se refieran a diferentes PPS, el ID de la subimagen puede estar presente en los
primeros bits de PPS (por ejemplo, inmediatamente después del encabezado de la unidad NAL). En este caso, se puede permitir que cualquier grupo de mosaicos de una imagen comparta el mismo PPS. Alternativamente, cuando se permite que los grupos de mosaicos de la misma imagen se refieran a diferentes PPS, y también se permite que diferentes grupos de mosaicos de la misma imagen compartan el mismo PPS, no puede haber ID de subimagen presente en la sintaxis de PPS. Alternativamente, cuando se permite que los grupos de mosaicos de la misma imagen se refieran a diferentes PPS, y también se permite que diferentes grupos de mosaicos de la misma imagen compartan el mismo PPS, una lista de ID de subimagen puede estar presente en la sintaxis de PPS. La lista indica las subimágenes a las que se aplica el PPS. Para otras unidades NAL no VCL, si la unidad no VCL se aplica al nivel de imagen o superior (por ejemplo, delimitador de la unidad de acceso, fin de secuencia, fin de flujo de bits, etc.), es posible que el ID de subimagen no esté presente inmediatamente después del encabezado de unidad NAL. De lo contrario, el ID de subimagen puede estar presente inmediatamente después del encabezado de unidad NAL.
Con la señalización de SPS anterior, la partición de mosaicos dentro de subimágenes individuales se puede señalizar en el PPS. Se puede permitir que los grupos de mosaicos dentro de la misma imagen se refieran a diferentes PPS. En este caso, la agrupación de mosaicos solo puede estar dentro de cada subimagen. El concepto de agrupación de mosaicos consiste en particionar una subimagen en mosaicos.
Alternativamente, se define un conjunto de parámetros para describir la partición de mosaicos dentro de subimágenes individuales. Dicho conjunto de parámetros puede denominarse Conjunto de parámetros de subimagen (SPPS). El SPPS se refiere a SPS. Un elemento de sintaxis que hace referencia al ID de SPS está presente en SPPS. El SPPS puede contener un ID de subimagen. Para fines de extracción de subimagen, el elemento de sintaxis que hace referencia al ID de subimagen es el primer elemento de sintaxis en SPPS. El SPPS contiene una estructura de mosaicos (por ejemplo, varias columnas, varias filas, espaciado de mosaico uniforme, etc.) El SPPS puede contener una bandera para indicar si un filtro de bucle está habilitado o no a través de los límites de la subimagen asociados. Alternativamente, las propiedades de la subimagen para cada subimagen pueden indicarse en el SPPS en lugar de en el SPS. La partición de mosaicos dentro de subimágenes individuales aún se puede señalar en el PPS. Los grupos de mosaicos dentro de la misma imagen pueden hacer referencia a diferentes PPS. Una vez que se activa un SPPS, el SPPS dura una secuencia de AUs consecutivas en orden de decodificación. Sin embargo, el SPPS puede desactivarse/activarse en una AU que no es el inicio de un CVS. En cualquier momento durante el proceso de decodificación de un flujo de bits de una sola capa con múltiples subimágenes en algunas AUs, pueden estar activos múltiples SPPS. Un SPPS puede ser compartido por diferentes subimágenes de una AU. Alternativamente, SPPS y PPS se pueden combinar en un conjunto de parámetros. En tal caso, es posible que no se requiera que todos los grupos de mosaicos de la misma imagen se refieran al mismo PPS. Puede aplicarse una restricción de modo que todos los grupos de mosaicos en la misma subimagen puedan hacer referencia al mismo conjunto de parámetros resultante de la fusión entre SPPS y PPS.
El número de bits utilizados para señalizar el ID de subimagen puede indicarse en un encabezado de unidad NAL. Cuando está presente en un encabezado de unidad NAL, dicha información puede ayudar a los procesos de extracción de subimagen a analizar el valor de ID de subimagen al comienzo de la carga útil de una unidad NAL (por ejemplo, los primeros bits inmediatamente después del encabezado de unidad NAL). Para tal señalización, algunos de los bits reservados (por ejemplo, siete bits reservados) en un encabezado de unidad NAL pueden usarse para evitar aumentar la longitud del encabezado de unidad NAL. El número de bits para tal señalización puede cubrir el valor de sub-picture-ID-bit-len. Por ejemplo, cuatro bits de los siete bits reservados de un encabezado de unidad NAL de WC pueden usarse para este propósito.
Al decodificar una subimagen, la ubicación de cada bloque de árbol de codificación (por ejemplo, xCtb e yCtb) puede ajustarse a una ubicación de muestra de luma real en la imagen en lugar de una ubicación de muestra de luma en la subimagen. De esta manera, se puede evitar la extracción de una subimagen co-ubicada de cada imagen de referencia ya que el bloque de árbol de codificación se decodifica con referencia a la imagen en lugar de a la subimagen. Para ajustar la ubicación de un bloque de árbol de codificación, las variables SubpictureXOffset y SubpictureYOffset se pueden derivar en función de la posición de la subimagen (subpic_x_offset y subpic_y_offset). Los valores de las variables se pueden sumar a los valores de las coordenadas x e y de la ubicación de la muestra de luma, respectivamente, de cada bloque de árbol de codificación en la subimagen.
Un proceso de extracción de subimágenes se puede definir de la siguiente manera. La entrada al proceso es la subimagen de destino que se va a extraer. Esto puede ser en forma de ID de subimagen o ubicación de subimagen. Cuando la entrada es la ubicación de una subimagen, el ID de subimagen asociado se puede resolver analizando la información de la subimagen en el SPS. Para unidades que no son NAL VCL, se aplica lo siguiente. Los elementos de sintaxis en el SPS relacionados con el tamaño y el nivel de la imagen pueden actualizarse con la información de tamaño y nivel de la subimagen. Las siguientes unidades NAL que no son VCL se mantienen sin cambios: PPS, delimitador de unidad de acceso (AUD), fin de secuencia (EOS), fin de flujo de bits (EOB) y cualquier otra unidad NAL no VCL que sea aplicable al nivel de imagen o superior. Las restantes unidades NAL no v Cl con ID de subimagen no igual al ID de subimagen destino/objetivo pueden eliminarse. Las unidades NAL VCL con un ID de subimagen diferente al ID de subimagen del objetivo también pueden eliminarse.
Puede usarse un mensaje SEI de anidamiento de subimagen de nivel de secuencia para anidar mensajes SEI de nivel AU o nivel de subimagen para un conjunto de subimágenes. Esto puede incluir un período de almacenamiento en búfer, temporización de imagen y mensajes SEI no HRD. La sintaxis y semántica de este mensaje SEI de anidamiento de subimagen puede ser la siguiente. Para operaciones de sistemas, como en entornos de formato de medios omnidireccionales (OMAF), el reproductor OMAF puede solicitar y decodificar un conjunto de secuencias de subimágenes que cubren una ventana de visualización. Por lo tanto, el mensaje SEI de nivel de secuencia se usa para transportar información de un conjunto de secuencias de subimagen que cubren colectivamente una región de imagen rectangular. Los sistemas pueden utilizar la información, y la información es indicativa de la capacidad de decodificación requerida, así como de la tasa de bits del conjunto de secuencias de subimagen. La información indica el nivel del flujo de bits que incluye solo el conjunto de secuencias de subimágenes. Esta información también indica la tasa de bits del flujo de bits que contiene solo el conjunto de secuencias de subimágenes. Opcionalmente, puede especificarse un proceso de extracción de subflujo de bits para un conjunto de secuencias de subimagen. El beneficio de hacer esto es que el flujo de bits que incluye solo un conjunto de secuencias de subimagen también puede ser conforme. Una desventaja es que al considerar las diferentes posibilidades de tamaño de la ventana de visualización, puede haber muchos de estos conjuntos además de los ya grandes números posibles de secuencias de subimágenes individuales.
En una modalidad de ejemplo, uno o más de los ejemplos descritos pueden implementarse como sigue. Una subimagen puede definirse como una región rectangular de uno o más grupos de mosaicos dentro de una imagen. Un proceso de división binaria permitido puede definirse como sigue. Las entradas a este proceso son: un modo de división binaria btSplit, un ancho de bloque de codificación cbWidth, una altura de bloque de codificación cbHeight, una ubicación (x0, y0) de la muestra de luma superior izquierda del bloque de codificación considerado en relación con la parte superior izquierda luma muestra de la imagen, una profundidad de árbol de múltiples tipos mttDepth, una profundidad máxima de árbol de múltiples tipos con desplazamiento maxMttDepth, un tamaño máximo de árbol binario maxBtSize y un índice de partición partIdx. El resultado de este proceso es la variable allowBtSplit.
Las variables parallelTtSplit y cbSize se derivan como se especificó anteriormente. La variable allowBtSplit puede derivarse como sigue. Si una o más de las siguientes condiciones son verdaderas, allowBtSplit se establece igual a FALSE: cbSize es menor o igual que MinBtSizeY, cbWidth es mayor que maxBtSize, cbHeight es mayor que maxBtSize y mttDepth es mayor o igual que maxMttDepth. De lo contrario, si se cumplen todas las condiciones siguientes, allowBtSplit se establece igual a FALSE: btSplit es igual a SPLIT_BT_VER y y0 cbHeight es mayor que SubPicBottomBorderInPic. De lo contrario, si se cumplen todas las condiciones siguientes, allowBtSplit se establece igual a FALSE, btSplit es igual a SPLIT_BT_HOR, x0+cbWidth es mayor que SubPicRightBorderInPic y y0+cbHeight es menor o igual que SubPicBottomBorderInPic. De lo contrario, si todas las condiciones siguientes son verdaderas, allowBtSplit se establece igual a FALSE: mttDepth es mayor que cero, partIdx es igual a uno y MttSplitMode[x0] [y0] [mttDepth -1 ] es igual a parallelTtSplit. De lo contrario, si se cumplen todas las condiciones siguientes, allowBtSplit se establece igual a FALSE: btSplit es igual a SPLIT_BT_VER, cbWidth es menor o igual a MaxTbSizeY y cbHeight es mayor que MaxTbSizeY. De lo contrario, si se cumplen todas las condiciones siguientes, allowBtSplit se establece igual a FALSE: btSplit es igual a SPLIT_BT_HOR, cbWidth es mayor que MaxTbSizeY y cbHeight es menor o igual que MaxTbSizeY. De lo contrario, allowBtSplit se establece igual a TruE.
Un proceso de división ternaria permitido puede definirse como sigue. Las entradas para este proceso son: un modo de división ternaria ttSplit, un ancho de bloque de codificación cbWidth, una altura de bloque de codificación cbHeight, una ubicación (x0, y0) de la muestra de luma superior izquierda del bloque de codificación considerado en relación con la luma superior izquierda muestra de la imagen, una profundidad de árbol de múltiples tipos mttDepth, una profundidad máxima de árbol de múltiples tipos con desplazamiento maxMttDepth y un tamaño máximo de árbol binario maxTtSize. El resultado de este proceso es la variable allowTtSplit.
La variable cbSize se deriva como se especificó anteriormente. La variable allowTtSplit puede derivarse como sigue. Si una o más de las siguientes condiciones son verdaderas, allowTtSplit se establece igual a FALSE: cbSize es menor o igual a 2 * MinTtSizeY, cbWidth es mayor que Min (MaxTbSizeY, maxTtSize), cbHeight es mayor que Min (MaxTbSizeY, maxTtSize) , mttDepth es mayor o igual que maxMttDepth, x0+cbWidth es mayor que
SubPicRightBorderInPic y y0+cbHeight es mayor que SubPicBottomBorderInPic. De lo contrario, allowTtSplit se establece igual a TRUE.
La sintaxis y la semántica del conjunto de parámetros de secuencia de RBSP son las siguientes.
Pic_width_in_luma_samples especifica el ancho de cada imagen decodificada en unidades de muestras de luma. pic_width_in_luma_samples no debe ser igual a cero y debe ser un múltiplo entero de MinCbSizeY. Pic_height_in_luma_samples especifica la altura de cada imagen decodificada en unidades de muestras de luma. pic_height_in_luma_samples no debe ser igual a cero y debe ser un múltiplo entero de MinCbSizeY. Num_subpicture_minus1 más 1 especifica el número de subimágenes divididas en imágenes codificadas que pertenecen a la secuencia de vídeo codificada. El subpic_id_len_minus1 más 1 especifica el número de bits utilizados para representar el elemento de sintaxis subpic_id [i] en SPS, spps_subpic_id en SPPS en referencia a SPS y tile_group_subpic_id en encabezados de grupo de mosaicos que se refieren a SPS. El valor de subpic_id_len_minus1 deberá estar comprendido entre Ceil(Log2(num_subpic_minus1 2 ) a ocho, inclusive. El subpic_id [i] especifica el ID de subimagen de la subimagen i-ésima de imágenes que se refieren al SPS. La longitud de subpic_id [i] es subpic_id_len_minus1+1 bits. El valor de subpic_id [i] será mayor que cero. El subpic_level_idc [i] indica un nivel para el cual el CVS resultó de la extracción de las i-ésimas subimágenes que se ajustan a los requisitos de recursos especificados. Los flujos de bits no deben contener valores de subpic_level_idc [i] distintos de los especificados. Otros valores de subpic_level_idc [i] están reservados. Cuando no está presente, se infiere que el valor de subpic_level_idc[ i ] es igual al valor de generaljeveljdc.
El subpic_x_offset [i] especifica el desplazamiento horizontal de la esquina superior izquierda de la subimagen i-ésima en relación con la esquina superior izquierda de la imagen. Cuando no está presente, se infiere que el valor de subpic_x_offset[ i ] es igual a 0. El valor del desplazamiento x de la subimagen se obtiene de la siguiente manera: SubpictureXOffset[i] = subpic_x_offset[i]. El subpic_y_offset[i] especifica el desplazamiento vertical de la esquina superior izquierda de la subimagen i-ésima en relación con la esquina superior izquierda de la imagen. Cuando no está presente, se infiere que el valor de subpic_y_offset[ i ] es igual a cero. El valor del desplazamiento y de la subimagen se deriva de la siguiente manera: SubpictureYOffset [i] = subpic_y_offset[i]. El subpic_width_in_luma_samples [i] especifica el ancho de la i-ésima subimagen decodificada para la que este SPS es el SPS activo. Cuando la suma de SubpictureXOffset [i] y subpic_width_in_luma_samples[i] es menor que pic_width_in_luma_samples, el valor de subpic_width_in_luma_samples[i] será un múltiplo entero de CtbSizeY. Cuando no está presente, se infiere que el valor de subpic_width_in_luma_samples[ i ] es igual al valor de pic_width_in_luma_samples. El subpic_height_in_luma_samples[i] especifica la altura de la i-ésima subimagen decodificada para la que esta SPS es la SPS activa. Cuando la suma de SubpictureYOffset[i] y subpic_height_in_luma_samples[i] es menor que pic_height_in_luma_samples, el valor de subpic_height_in_luma_samples[i] será un múltiplo entero de CtbSizeY. Cuando no está presente, se infiere que el valor de subpic_height_in_luma_samples[ i ] es igual al valor de pic_height_in_luma_samples.
Es un requisito de la conformidad del flujo de bits que la unión de subimágenes cubra toda el área de una imagen sin superposiciones ni espacios. El subpic_motion_constrained_flag[i] igual a uno especifica que la i-ésima subimagen es una subimagen restringida de movimiento temporal. El subpic_motion_constrained_flag[i] igual a cero especifica que la
i-ésima subimagen puede ser o no una subimagen restringida de movimiento temporal. Cuando no está presente, se infiere que el valor de subpic_motion_constrained_flag es igual a cero.
Las variables SubpicWidthInCtbsY, SubpicHeightInCtbsY, SubpicSizeInCtbsY, SubpicWidthInMinCbsY, SubpicHeightInMinCbsY, SubpicSizeInMinCbsY, SubpicSizeInSamplesY, SubpicWidthInSamplesC y SubpicHeightIn se derivan de la siguiente manera:
SubpicWidthInLumaSamples[ I ] = subpic_width_in_luma_samples[ I ]
SubpicHeightInLumaSamples[ I ] = subpic_height_in_luma_samples[ I ]
SubPicRightBorderInPic[ i ] = SubpictureXOffset[ I ] PicWidthInLumaSamples[ I ] SubPicBottomBorderInPic[ I ] = SubpictureYOffset[ I ] PicHeightInLumaSamples[ I ] SubpicWidthInCtbsY[ I ] = Ceil(SubpicWidthInLumaSamples[ I ] - CtbSizeY ) SubpicHeightInCtbsY[ I ] = Ceil(SubpicHeightInLumaSamples[ I ] - CtbSizeY ) SubpicSizeInCtbsY[ I ] = SubpicWidthInCtbsY[ I ] * SubpicHeightInCtbsY[ I ] SubpicWidthInMinCbsY[ I ] = SubpicWidthInLumaSamples[ I ] / MinCbSizeY SubpicHeightInMinCbsY[ I ] = SubpicHeightInLumaSamples[ I ] / MinCbSizeY SubpicSizeInMinCbsY[ I ] = SubpicWidthInMinCbsY[ I ] * SubpicHeightInMinCbsY[ I ] SubpicSizeInSamplesY[ I ] = SubpicWidthInLumaSamples[ I ] * SubpicHeightInLumaSamples[ I ] SubpicWidthInSamplesC[ I ] = SubpicWidthInLumaSamples[ I ] / SubWidthC SubpicHeightInSamplesC[ I ] = SubpicHeightInLumaSamples[ I ] / SubHeightC La sintaxis y la semántica del conjunto de parámetros RBSP son las siguientes.
Spps_subpic_id identifica la subimagen a la que pertenece el SPPS. La longitud de spps_subpic_id es subpic_id_len_minus1 1 bits. Spps_subpic_parameter_set_id identifica el SPPS como referencia mediante otros elementos de sintaxis. El valor de spps_subpic_parameter_set_id deberá estar comprendido entre cero y sesenta y tres, ambos inclusive. Spps_seq_parameter_set_id especifica el valor de sps_seq_parameter_set_id para el SPS activo. El valor de spps_seq_parameter_set_id deberá estar comprendido entre cero y quince, ambos inclusive. El single_tile_in_subpic_flag igual a uno especifica que solo hay un mosaico en cada subimagen que se refiere al SPPS.
El single_tile_in_subpic_flag igual a cero especifica que hay más de un mosaico en cada subimagen que se refiere al SPPS. El num_tile_columns_minus1 más 1 especifica el número de columnas de mosaicos que particionan la subimagen. El num_tile_columns_minus1 deberá estar en el rango de cero a PicWidthInCtbsY[spps_subpic_id ] - 1, inclusive. Cuando no está presente, se infiere que el valor de num_tile_columns_minus1 es igual a cero. El num_tile_rows_minus1 menos 1 especifica el número de filas de mosaicos que particionan la subimagen. El num_tile_rows_minus1 deberá estar en el rango de cero a PicHeightInCtbsY[ spps_subpic_id ] -1, inclusive. Cuando no está presente, se infiere que el valor de num_tile_rows_minus1 es igual a cero. La variable NumTilesInPic se establece igual a (num_tile_columns_minus1 1 ) * (num_tile_rows_minus1 1 ).
Cuando single_tile_in_subpic_flag es igual a cero, NumTilesInPic debe ser mayor que cero. El indicador uniform_tile_spacing_flag igual a uno especifica que los límites de las columnas de mosaicos y, del mismo modo, los límites de las filas de mosaicos se distribuyen uniformemente en la subimagen. El indicador uniform_tile_spacing_flag igual a cero especifica que los límites de las columnas de mosaicos y, del mismo modo, los límites de las filas de mosaicos no se distribuyen uniformemente a través de la subimagen, sino que se señalizan explícitamente utilizando los elementos sintácticos tile_column_width_minus1[ i ] y tile_row_height_minus1[ i ]. Cuando no está presente, se infiere que el valor de uniform_tile_spacing_flag es igual a uno. El valor de tile_column_width_minus1[ i ] más 1 especifica el ancho de la i-ésima columna de mosaicos en unidades de CTB. El valor de tile_row_height_minus1[ i ] más 1 especifica la altura de la i-ésima fila de mosaicos en unidades de CTB.
Las siguientes variables se derivan invocando el proceso de conversión de exploración de trama y mosaico de CTB: la lista ColWidth [i] para i que va de cero a num_tile_columns_minus1, inclusive, especificando el ancho de la i-ésima columna de mosaico en unidades de CTB; la lista RowHeight[j] para j que va de cero a num_tile_rows_minus1, inclusive, especificando la altura de la j-ésima fila de mosaicos en unidades de CTB; la lista ColBd[i] para i que va de cero a num_tile_columns_minus1 1, inclusive, especificando la ubicación del i-ésimo límite de columna de mosaico en unidades de CTB; la lista RowBd [j] para j que va de cero a num_tile_rows_minus1 1, inclusive, especificando la ubicación del j-ésimo límite de fila de mosaicos en unidades de CTB; la lista CtbAddrRsToTs[ctbAddrRs] para ctbAddrRs que va desde cero hasta PicSizeInCtbsY -1, inclusive, especificando la conversión de una dirección de CTB en la exploración de trama de CTB de una imagen a una dirección de CTB en la exploración de mosaicos; la lista CtbAddrTsToRs[ctbAddrTs] para ctbAddrTs que va desde cero hasta PicSizeInCtbsY - 1, inclusive, especificando la conversión de una dirección de CTB en la exploración de mosaicos a una dirección de CTB en la exploración de trama de CTB de una imagen; la lista TileId[ctbAddrTs] para ctbAddrTs que va desde cero hasta PicSizeInCtbsY -1, inclusive, especificando la conversión de una dirección de CTB en la exploración de mosaicos a un ID de mosaico; la lista NumCtusInTile[tileIdx] para tileIdx que va desde cero hasta PicSizeInCtbsY - 1, inclusive, especificando la conversión de un índice de mosaico al número de CTU en el mosaico; la lista FirstCtbAddrTs[tileIdx] para tileIdx que va de cero a NumTilesInPic - 1, inclusive, especificando la conversión de un ID de mosaico a la dirección de CTB en la exploración de mosaico del primer CTB en el mosaico; la lista ColumnWidthInLumaSamples[i] para i que va de cero a num_tile_columns_minus1, inclusive, especificando el ancho de la i-ésima columna de mosaico en unidades de muestras de luma; y la lista RowHeightInLumaSamples[j] para j que va de cero a num_tile_rows_minus1, inclusive, especificando la altura de la j-ésima fila de mosaicos en unidades de muestras de luma. Los valores de ColumnWidthInLumaSamples[i] para i que van de cero a num_tile_columns_minus1, inclusive, y RowHeightInLumaSamples[j] para j que van de cero a num_tile_rows_minus1, inclusive, serán todos mayores que cero.
El loop_filter_across_tiles_enabled_flag igual a uno especifica que las operaciones de filtrado de bucle pueden realizarse a través de los límites de los mosaicos en subimágenes que se refieren al SPPS. El loop_filter_across_tiles_enabled_flag igual a cero especifica que las operaciones de filtrado de bucle no se realizan a través de los límites de los mosaicos en las subimágenes que se refieren al SPPS. Las operaciones de filtrado de bucle incluyen el filtro de desbloqueo, el filtro de desplazamiento adaptativo de muestra y las operaciones de filtro de bucle adaptativo. Cuando no está presente, se infiere que el valor de loop_filter_across_tiles_enabled_flag es igual a uno. El loop_filter_across_subpic_enabled_flag igual a uno especifica que las operaciones de filtrado de bucle pueden realizarse a través de los límites de las subimágenes en las subimágenes que se refieren al SPPS. El loop_filter_across_subpic_enabled_flag igual a cero especifica que las operaciones de filtrado de bucle no se realizan a través de los límites de las subimágenes en las subimágenes que se refieren al SPPS. Las operaciones de filtrado de bucle incluyen el filtro de desbloqueo, el filtro de desplazamiento adaptativo de muestra y las operaciones de filtro de bucle adaptativo. Cuando no está presente, se infiere que el valor de loop_filter_across_subpic_enabled_flag es igual al valor de loop_filter_across_tiles_enabled_flag.
La sintaxis y la semántica general del encabezado del grupo de mosaicos son las siguientes.
El valor del elemento de sintaxis del encabezado del grupo de mosaicos tile_group_pic_parameter_set_id y tile_group_pic_order_cnt_lsb será el mismo en todos los encabezados del grupo de mosaicos de una imagen codificada. El valor del elemento de sintaxis del encabezado del grupo de mosaicos tile_group_subpic_id será el mismo en todos los encabezados del grupo de mosaicos de una subimagen codificada. El Tile_group_subpic_id identifica la subimagen a la que pertenece el grupo de mosaicos. El length of tile_group_subpic_id es subpic_id_len_minus1 1 bits. El tile_group_subpic_parameter_set_id especifica el valor de spps_subpic_parameter_set_id para el SPPS en uso. El valor de tile_group_spps_parameter_set_id estará comprendido entre cero y sesenta y tres, ambos inclusive.
Las siguientes variables se derivan y anulan las respectivas variables derivadas del SPS activo:
PicWidthInLumaSamples = SubpicWidthInLumaSamples[ tile_group_subpic_id]
PicHeightInLumaSamples = PicHeightInLumaSamples[ tile_group_subpic_id]
SubPicRightBorderInPic = SubPicRightBorderInPic[ tile_group_subpic_id]
SubPicBottomBorderInPic = SubPicBottomBorderInPic[ tile_group_subpic_id]
PicWidthInCtbsY = SubPicWidthInCtbsY[ tile_group_subpic_id]
PicHeightInCtbsY = SubPicHeightInCtbsY[ tile_group_subpic_id]
PicSizeInCtbsY = SubPicSizeInCtbsY[ tile_group_subpic_id]
PicWidthInMinCbsY = SubPicWidthInMinCbsY[ tile_group_subpic_id]
PicHeightInMinCbsY = SubPicHeightInMinCbsY[ tile_group_subpic_id]
PicSizeInMinCbsY = SubPicSizeInMinCbsY[ tile_group_subpic_id]
PicSizeInSamplesY = SubPicSizeInSamplesY[ tile_group_subpic_id]
PicWidthInSamplesC = SubPicWidthInSamplesC[ tile_group_subpic_id]
PicHeightInSamplesC = SubPicHeightInSamplesC[ tile_group_subpic_id]
La sintaxis de la unidad del árbol de codificación es como sigue.
La sintaxis de codificación de árbol cuaternario y la semántica son las siguientes.
Qt_split_cu_flag [x0] [y0] especifica si una unidad de codificación se divide en unidades de codificación con un tamaño medio horizontal y vertical. Los índices de arreglo x0, y0 especifican la ubicación (x0, y0) de la muestra de luma superior izquierda del bloque de codificación considerado en relación con la muestra de luma superior izquierda de la imagen. Cuando qt_split_cu_flag [x0] [y0] no está presente, se aplica lo siguiente: Si una o más de las siguientes condiciones son verdaderas, se infiere que el valor de qt_split_cu_flag [x0] [y0] es igual a uno. x0 (1 ≤≤ log2CbSize) es mayor que SubPicRightBorderInPic y (1 ≤≤ log2CbSize) es mayor que MaxBtSizeC si treeType es igual a DUAL_TREE_CHROMA o mayor que MaxBtSizeY en caso contrario. y0 (1 ≤≤ log2CbSize) es mayor que SubPicBottomBorderInPic y (1 ≤≤ log2CbSize) es mayor que MaxBtSizeC si treeType es igual a DUAL_TREE_CHROMA o mayor que MaxBtSizeY en caso contrario.
De lo contrario, si se cumplen todas las condiciones siguientes, se infiere que el valor de qt_split_cu_flag [x0] [y0] es igual a 1: x0 (1 ≤≤ log2CbSize) es mayor que SubPicRightBorderInPic, y0 (1 ≤≤ log2CbSize) es mayor que SubPicBottomBorderInPic, y (1 ≤≤ log2CbSize) es mayor que MinQtSizeC si treeType es igual a DUAL_TREE_CHROMA o mayor que MinQtSizeY en caso contrario. En caso contrario, se infiere que el valor de qt_split_cu_flag[ x0 ][ y0 ] es igual a cero.
La sintaxis y la semántica del árbol de múltiples tipos son las siguientes.
ti ió
El mtt_split_cu_flag igual a cero especifica que una unidad de codificación no se divide. El mtt_split_cu_flag igual a uno especifica que una unidad de codificación se divide en dos unidades de codificación usando una división binaria o en tres unidades de codificación usando una división ternaria como lo indica el elemento de sintaxis mtt_split_cu_binary_flag. La división binaria o ternaria puede ser vertical u horizontal, como lo indica el elemento de sintaxis mtt_split_cu_vertical_flag. Cuando mtt_split_cu_flag no está presente, el valor de mtt_split_cu_flag se infiere de la siguiente manera. Si se cumple una o más de las siguientes condiciones, se infiere que el valor de mtt_split_cu_flag es igual a 1: x0 cbWidth es mayor que SubPicRightBorderInPic y y0 cbHeight es mayor que SubPicBottomBorderInPic. En caso contrario, se infiere que el valor de mtt_split_cu_flag es igual a cero.
El proceso de derivación para la predicción de vectores de movimiento de luma temporal es como sigue. Los resultados de este proceso son: la predicción del vector de movimiento mvLXCol en una precisión de muestra fraccionaria de 1/16 y la bandera de disponibilidad availableFlagLXCol. La variable currCb especifica el bloque de codificación de luma actual en la ubicación de luma (xCb, yCb). Las variables mvLXCol y availableFlagLXCol se derivan de la siguiente manera. Si tile_group_temporal_mvp_enabled_flag es igual a cero, o si la imagen de referencia es la imagen actual, ambos componentes de mvLXCol se establecen en cero y availableFlagLXCol se establece en cero. De lo contrario (tile_group_temporal_mvp_enabled_flag es igual a uno y la imagen de referencia no es la imagen actual), se aplican los siguientes pasos ordenados. El vector de movimiento ubicado en la parte inferior derecha se deriva de la siguiente manera:
xColBr = xCb cbWidth (8-355)
yColBr = yCb cbHeight (8-356)
Si yCb >> CtbLog2SizeY es igual a yColBr >> CtbLog2SizeY, yColBr es menor que SubPicBottomBorderInPic y xColBr es menor que SubPicRightBorderInPic, se aplica lo siguiente. La variable colCb especifica el bloque de codificación de luma que cubre la ubicación modificada dada por ((xColBr >> 3) ≤≤ 3, (yColBr >> 3) ≤≤ 3) dentro de la imagen colocada especificada por ColPic. La ubicación de luma (xColCb, yColCb) se establece igual a la muestra superior izquierda del bloque de codificación de luma co-localizado/colocados especificado por colCb en relación con la muestra de luma superior izquierda de la imagen co-localizada especificada por ColPic. El proceso de derivación para vectores de movimiento co-localizados se invoca con currCb, colCb, (xColCb, yColCb), refIdxLX y sbFlag establecidos en cero como entradas, y la salida se asigna a mvLXCol y availableFlagLXCol. De lo contrario, ambos componentes de mvLXCol se establecen en cero y availableFlagLXCol se establece en cero.
El proceso de derivación para candidatos de fusión de triángulo temporal es la siguiente. Las variables mvLXColC0, mvLXColC1, availableFlagLXColC0 y availableFlagLXColC1 se derivan de la siguiente manera. Si tile_group_temporal_mvp_enabled_flag es igual a cero, ambos componentes de mvLXColC0 y mvLXColC1 se
establecen en cero y availableFlagLXColCO y availableFlagLXColCI se establecen en cero. De lo contrario (tile_group_temporal_mvp_enabled_flag es igual a 1), se aplican los siguientes pasos ordenados. El vector de movimiento ubicado abajo a la derecha mvLXColC0 se deriva de la siguiente manera:
xColBr = xCb cbWidth (8-392)
yColBr = yCb cbHeight (8-393)
Si yCb >> CtbLog2SizeY es igual a yColBr >> CtbLog2SizeY, yColBr es menor que SubPicBottomBorderInPic y xColBr es menor que SubPicRightBorderInPic, se aplica lo siguiente. La variable colCb especifica el bloque de codificación de luma que cubre la ubicación modificada dada por ((xColBr >> 3) ≤≤ 3, (yColBr >> 3) ≤≤ 3) dentro de la imagen colocada especificada por ColPic. La ubicación de luma (xColCb, yColCb) se establece igual a la muestra superior izquierda del bloque de codificación de luma co-localizado/colocados especificado por colCb en relación con la muestra de luma superior izquierda de la imagen co-localizada especificada por ColPic. El proceso de derivación para vectores de movimiento co-localizados se invoca con currCb, colCb, (xColCb, yColCb), refIdxLXC0 y sbFlag establecidos en cero como entradas, y la salida se asigna a mvLXColC0 y availableFlagLXColC0. De lo contrario, ambos componentes de mvLXColC0 se establecen en cero y availableFlagLXColC0 se establece en cero.
El proceso de derivación para candidatos de fusión de vector de movimiento de punto de control afín construido es como sigue. El cuarto vector de movimiento del punto de control (ubicado en la parte inferior derecha) cμMvLXCorner [3], el índice de referencia refIdxLXCorner [3], la bandera de utilización de la lista de predicción predFlagLXCorner [3] y la bandera de disponibilidad availableFlagCorner [3] con X siendo 0 y 1 se derivan de la siguiente manera . Los índices de referencia para el candidato de fusión temporal, refIdxLXCorner [3], con X siendo cero o uno, se establecen en cero. Las variables mvLXCol y availableFlagLXCol, con X siendo cero o uno, se derivan de la siguiente manera. Si tile_group_temporal_mvp_enabled_flag es igual a cero, ambos componentes de mvLXCol se establecen en cero y availableFlagLXCol se establece en cero. De lo contrario (tile_group_temporal_mvp_enabled_flag es igual a uno), se aplica lo siguiente:
xColBr = xCb cbWidth (8-566)
yColBr = yCb cbHeight (8-567)
Si yCb >> CtbLog2SizeY es igual a yColBr >> CtbLog2SizeY, yColBr es menor que SubPicBottomBorderInPic y xColBr es menor que SubPicRightBorderInPic, se aplica lo siguiente. La variable colCb especifica el bloque de codificación de luma que cubre la ubicación modificada dada por ((xColBr >> 3) ≤≤ 3, (yColBr >> 3) ≤≤ 3) dentro de la imagen colocada especificada por ColPic. La ubicación de luma (xColCb, yColCb) se establece igual a la muestra superior izquierda del bloque de codificación de luma co-localizado/colocados especificado por colCb en relación con la muestra de luma superior izquierda de la imagen co-localizada especificada por ColPic. El proceso de derivación para vectores de movimiento co-localizados se invoca con currCb, colCb, (xColCb, yColCb), refIdxLX y sbFlag establecidos en cero como entradas, y la salida se asigna a mvLXCol y availableFlagLXCol. De lo contrario, ambos componentes de mvLXCol se establecen en 0 y availableFlagLXCol se establece en cero. Reemplace todas las apariciones de pic_width_in_luma_samples con PicWidthInLumaSamples. Reemplace todas las apariciones de pic_height_in_luma_samples con PicHeightInLumaSamples.
En un segundo ejemplo de modalidad, la sintaxis y la semántica de RBSP del conjunto de parámetros de secuencia son las siguientes.
El subpic_id_len_minus1 más uno especifica el número de bits usados para representar el elemento de sintaxis subpic_id [i] en SPS, spps_subpic_id en SPPS refiriéndose al SPS, y tile_group_subpic_id en encabezados de grupo de mosaicos referidos al SPS. El valor de subpic_id_len_minus1 deberá estar en el rango de Ceil(Log2(num_subpic_minus1 3 ) a ocho, inclusive. Es un requisito de la conformidad del flujo de bits que no haya superposición entre la subimagen[i] para i de 0 a num_subpic_minus1, inclusive. Cada subimagen puede ser una subimagen restringida de movimiento temporal.
La semántica general de la cabecera del grupo de mosaicos es la siguiente. El Tile_group_subpic_id identifica la subimagen a la que pertenece el grupo de mosaicos. El length of tile_group_subpic_id es subpic_id_len_minus1 1 bits. El tile_group_subpic_id igual a uno indica que el grupo de mosaicos no pertenece a ninguna subimagen.
En un tercer ejemplo de modalidad, la sintaxis de encabezado de unidad NAL y la semántica son las siguientes.
El nuh_subpicture_id_len especifica el número de bits utilizados para representar el elemento de sintaxis que especifica el ID de subimagen. Cuando el valor de nuh_subpicture_id_len es mayor que cero, los primeros nuh_subpicture_id_lenth bits después de nuh_reserved_zero_4bits especifican el ID de la subimagen a la que pertenece la carga útil de la unidad NAL. Cuando nuh_subpicture_id_len es mayor que cero, el valor de nuh_subpicture_id_len será igual al valor de subpic_id_len_minus1 en el SPS activo. El valor de nuh_subpicture_id_len para unidades NAL no VCL está restringido de la siguiente manera. Si nal_unit_type es igual a SPS_NUT o PPS_NUT, nuh_subpicture_id_len será igual a cero. Nuh_reserved_zero_3bits será igual a '000'. Los decodificadores ignorarán (por ejemplo, eliminarán del flujo de bits y descartarán) las unidades NAL con valores de nuh_reserved_zero_3bits no iguales a '000'.
En un cuarto ejemplo de modalidad, la sintaxis de anidamiento de subimágenes es la siguiente.
El all_sub_pictures_flag igual a uno especifica que los mensajes SEI anidados se aplican a todas las subimágenes. all_sub_pictures_flag igual a uno especifica que las subimágenes a las que se aplican los mensajes SEI anidados son señalizadas explícitamente por los elementos de sintaxis subsiguientes. El nesting_num_sub_pictures_minus1 más 1 especifica el número de subimágenes a las que se aplican los mensajes SEI anidados. El nesting_sub_picture_id[i] indica el ID de subimagen de la i-ésima subimagen a la que se aplican los mensajes SEI anidados. El elemento de sintaxis nesting_sub_picture_id[i] está representado por Ceil (Log2 (nesting_num_sub_pictures_minus1 1)) bits. El sub_picture_nesting_zero_bit será igual a cero.
La Figura 9 es un diagrama esquemático de un dispositivo de codificación de vídeo de ejemplo 900. El dispositivo de codificación de vídeo 900 es adecuado para implementar las modalidades/ejemplos descritos en la presente descripción. El dispositivo de codificación de vídeo 900 comprende puertos descendentes 920, puertos ascendentes 950 y/o unidades transceptoras (Tx / Rx) 910, que incluyen transmisores y/o receptores para comunicar datos ascendentes y/o descendentes a través de una red. El dispositivo de codificación de vídeo 900 también incluye un procesador 930 que incluye una unidad lógica y/o unidad central de procesamiento (CPU) para procesar los datos y una memoria 932 para almacenar los datos. El dispositivo de codificación de vídeo 900 también puede comprender componentes eléctricos, ópticos a eléctricos (OE), componentes eléctricos a ópticos (EO) y/o componentes de comunicación inalámbrica acoplados a los puertos ascendentes 950 y/o descendentes 920 para la comunicación de
datos a través de redes de comunicación eléctricas, ópticas o inalámbricas. El dispositivo de codificación de vídeo 900 también puede incluir dispositivos de entrada y/o salida (E/S) 960 para comunicar datos hacia y desde un usuario. Los dispositivos de E/S 960 pueden incluir dispositivos de salida tales como una pantalla para mostrar datos de vídeo, altavoces para emitir datos de audio, etc. Los dispositivos de E/S 960 también pueden incluir dispositivos de entrada, tales como un teclado, ratón, seguibola, etc. y/o interfaces correspondientes para interactuar con dichos dispositivos de salida.
El procesador 930 se implementa mediante hardware y software. El procesador 930 puede implementarse como uno o más chips de CPU, núcleos (por ejemplo, como un procesador de múltiples núcleos), matrices de puertas programables en campo (FPGA), circuitos integrados específicos de aplicación (ASIC) y procesadores de señales digitales (DSP). El procesador 930 está en comunicación con los puertos descendentes 920, Tx/Rx 910, los puertos ascendentes 950 y la memoria 932. El procesador 930 comprende un módulo de codificación 914. El módulo de codificación 914 implementa las modalidades descritas anteriormente, como los métodos 100, 1000, 1100, y/o el mecanismo 700, que pueden emplear un flujo de bits 500, una imagen 600, y/o una imagen 800. El módulo de codificación 914 también puede implementar cualquier otro método/mecanismo descrito en la presente descripción. Además, el módulo de codificación 914 puede implementar un sistema de códec 200, un codificador 300 y/o un decodificador 400. Por ejemplo, el módulo de codificación 914 puede emplearse para señalizar y/u obtener ubicaciones y tamaños de subimagen en un SPS. En otro ejemplo, el módulo de codificación 914 puede restringir los anchos de las subimágenes y las alturas de las subimágenes para que sean múltiplos del tamaño de la CTU, a menos que dichas subimágenes se coloquen en el borde derecho de la imagen o en el borde inferior de la imagen, respectivamente. En otro ejemplo, el módulo de codificación 914 puede restringir las subimágenes para cubrir una imagen sin espacios ni superposiciones. En otro ejemplo, el módulo de codificación 914 puede emplearse para señalizar y/u obtener datos que indiquen que algunas subimágenes son subimágenes restringidas de movimiento temporal y otras subimágenes no. En otro ejemplo, el módulo de codificación 914 puede señalizar un conjunto completo de ID de subimagen en el SPS e incluir un ID de subimagen en cada encabezado de segmento para indicar la subimagen que contiene los segmentos correspondientes. En otro ejemplo, el módulo de codificación 914 puede señalizar niveles para cada subimagen. Como tal, el módulo de codificación 914 hace que el dispositivo de codificación de vídeo 900 proporcione funcionalidad adicional, evite cierto procesamiento para reducir la sobrecarga de procesamiento y/o aumente la eficiencia de codificación al particionar y codificar datos de vídeo. Acordemente, el módulo de codificación 914 mejora la funcionalidad del dispositivo de codificación de vídeo 900 así como también resuelve problemas que son específicos de las artes de codificación de vídeo. Además, el módulo de codificación 914 efectúa una transformación del dispositivo de codificación de vídeo 900 a un estado diferente. Alternativamente, el módulo de codificación 914 puede implementarse como instrucciones almacenadas en la memoria 932 y ejecutadas por el procesador 930 (por ejemplo, como un producto de programa de informático almacenado en un medio no transitorio).
La memoria 932 comprende uno o más tipos de memoria, como discos, unidades de cinta, unidades de estado sólido, memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM), memoria flash, memoria ternaria direccionable por contenido (TCAM), memoria aleatoria estática. memoria de acceso (SRAM), etc. La memoria 932 puede usarse como un dispositivo de almacenamiento de datos de desbordamiento, para almacenar programas cuando dichos programas se seleccionan para su ejecución, y para almacenar instrucciones y datos que se leen durante la ejecución del programa.
La Figura 10 es un diagrama de flujo de un método de ejemplo 1000 de codificación de un flujo de bits, como el flujo de bits 500 y/o el subflujo de bits 501, de subimágenes, como las subimágenes 522, 523, 622, 722 y/o 822, con limitaciones de tamaño adaptativo. El método 1000 puede ser empleado por un codificador, como un sistema de códec 200, un codificador 300, y/o un dispositivo de codificación de vídeo 900 al realizar el método 100.
El método 1000 puede comenzar cuando un codificador recibe una secuencia de vídeo que incluye una pluralidad de imágenes y determina codificar esa secuencia de vídeo en un flujo de bits, por ejemplo en base a la entrada del usuario. La secuencia de vídeo se particiona en fotografías/imágenes/tramas para su posterior división antes de la codificación. En el paso 1001, una imagen se particiona en una pluralidad de subimágenes. Se aplica una restricción de tamaño adaptativo al particionar las subimágenes. Cada una de las subimágenes incluye un ancho de subimagen y una altura de subimagen. Cuando una subimagen actual incluye un borde derecho que no coincide con un borde derecho de la imagen, el ancho de subimagen de la subimagen actual se limita a ser un múltiplo entero de una CTU (por ejemplo, subimágenes 822 distintas de 822b). Por consiguiente, al menos una de las subimágenes (por ejemplo, las subimágenes 822b) puede incluir un ancho de subimagen que no sea un múltiplo entero del tamaño de CTU cuando cada subimagen incluye un borde derecho que coincide con el borde derecho de la imagen. Además, cuando una subimagen actual incluye un borde inferior que no coincide con un borde inferior de la imagen, la altura de subimagen de la subimagen actual se limita a ser un múltiplo entero de CTU (por ejemplo, subimágenes 822 distintas de 822c). En consecuencia, al menos una de las subimágenes (por ejemplo, las subimágenes 822c) puede incluir una altura de subimagen que no es un múltiplo entero del tamaño de CTU cuando cada subimagen incluye un borde inferior que coincide con el borde inferior de la imagen. Esta restricción de tamaño adaptativo permite particionar las subimágenes de una imagen que incluye un ancho de imagen que no es un múltiplo entero del tamaño de CTU y/o una altura de imagen que no es un múltiplo entero del tamaño de CTU. El tamaño de CTU se puede medir en unidades de muestras de luma.
En el paso 1003, dichas una o más de la subimágenes se codifican en un flujo de bits. El flujo de bits se almacena para comunicación hacia un decodificador en el paso 1005. El flujo de bits puede entonces ser transmitido hacia el decodificador como se desee. En algunos ejemplos, se puede extraer un subflujo de bits del flujo de bits codificado. En tal caso, el flujo de bits transmitido es un subflujo de bits. En otros ejemplos, el flujo de bits codificado puede transmitirse para la extracción del subflujo de bits en el decodificador. En otros ejemplos más, el flujo de bits codificado se puede decodificar y visualizar sin extracción de subflujo de bits. En cualquiera de estos ejemplos, la restricción de tamaño adaptativo permite particionar las subimágenes de una imagen con una altura o un ancho que no es un múltiplo del tamaño de CTU y, por tanto, aumenta la funcionalidad del codificador.
La Figura 11 es un diagrama de flujo de un método de ejemplo 1100 para decodificar un flujo de bits, como el flujo de bits 500 y/o el subflujo de bits 501, de subimágenes, como las subimágenes 522, 523, 622, 722 y/o 822, con limitaciones de tamaño adaptativo. El método 1100 puede ser empleado por un decodificador, como un sistema de códec 200, un decodificador 400, y/o un dispositivo de codificación de vídeo 900 al realizar el método 100. Por ejemplo, el método 1100 se puede aplicar para decodificar un flujo de bits creado como resultado del método 1000.
El método 1100 puede comenzar cuando un decodificador comienza a recibir un flujo de bits que contiene subimágenes. El flujo de bits puede incluir una secuencia de vídeo completa o el flujo de bits puede ser un subflujo de bits que contiene un conjunto reducido de subimágenes para extracción por separado. En el paso 1101, se recibe un flujo de bits. El flujo de bits comprende una o más subimágenes particionadas de una imagen de acuerdo con una restricción de tamaño adaptativo. Cada una de las subimágenes incluye un ancho de subimagen y una altura de subimagen. Cuando una subimagen actual incluye un borde derecho que no coincide con un borde derecho de la imagen, el ancho de subimagen de la subimagen actual se limita a ser un múltiplo entero de una CTU (por ejemplo, subimágenes 822 distintas de 822b). Por consiguiente, al menos una de las subimágenes (por ejemplo, las subimágenes 822b) puede incluir un ancho de subimagen que no sea un múltiplo entero del tamaño de CTU cuando cada subimagen incluye un borde derecho que coincide con el borde derecho de la imagen. Además, cuando una subimagen actual incluye un borde inferior que no coincide con un borde inferior de la imagen, la altura de subimagen de la subimagen actual se limita a ser un múltiplo entero de CTU (por ejemplo, subimágenes 822 distintas de 822c). En consecuencia, al menos una de las subimágenes (por ejemplo, las subimágenes 822c) puede incluir una altura de subimagen que no es un múltiplo entero del tamaño de CTU cuando cada subimagen incluye un borde inferior que coincide con el borde inferior de la imagen. Esta restricción de tamaño adaptativo permite particionar las subimágenes de una imagen que incluye un ancho de imagen que no es un múltiplo entero del tamaño de CTU y/o una altura de imagen que no es un múltiplo entero del tamaño de CTU. El tamaño de CTU se puede medir en unidades de muestras de luma.
En el paso 1103, se analiza el flujo de bits para obtener una o más subimágenes. En el paso 1105, dichas una o más subimágenes se decodifican para crear una secuencia de vídeo. La secuencia de vídeo se puede reenviar para su visualización. Por lo tanto, la restricción de tamaño adaptativo permite particionar las subimágenes de una imagen con una altura o un ancho que no es un múltiplo del tamaño de la CTU. Por consiguiente, el decodificador puede emplear una funcionalidad basada en subimagen, tal como extracción y/o visualización de subimágenes independientes, en una imagen con una altura o ancho que no sea un múltiplo del tamaño de CTU. Como tal, la aplicación de la restricción de tamaño adaptativo aumenta la funcionalidad del decodificador.
La Figura 12 es un diagrama esquemático de un sistema de ejemplo 1200 para señalizar un flujo de bits, como el flujo de bits 500 y/o el subflujo de bits 501, de subimágenes, como las subimágenes 522, 523, 622, 722 y/o 822, con limitaciones de tamaño adaptativo. El sistema 1200 puede implementarse mediante un codificador y un decodificador, tal como un sistema de códec 200, un codificador 300, un decodificador 400 y/o un dispositivo de codificación de vídeo 900. Además, el sistema 1200 puede emplearse al implementar el método 100, 1000 y/o 1100.
El sistema 1200 incluye un codificador de vídeo 1202. El codificador de vídeo 1202 comprende un módulo de particionado 1201 para particionar una imagen en una pluralidad de subimágenes de modo que cada subimagen incluye un ancho de subimagen que es un múltiplo entero de un tamaño de CTU cuando cada subimagen incluye un borde derecho que no coincide con un borde derecho de la imagen. El codificador de vídeo 1202 comprende además un módulo de codificación 1203 para codificar una o más de las subimágenes en un flujo de bits. El codificador de vídeo 1202 comprende además un módulo de almacenamiento 1205 para almacenar el flujo de bits para la comunicación hacia un decodificador. El codificador de vídeo 1202 comprende además un módulo de transmisión 1207 para transmitir el flujo de bits que incluye las subimágenes hacia el decodificador. El codificador de vídeo 1202 puede configurarse además para realizar cualquiera de los pasos del método 1000.
El sistema 1200 también incluye un decodificador de vídeo 1210. El decodificador de vídeo 1210 comprende un módulo de recepción 1211 para recibir un flujo de bits que comprende una o más subimágenes particionadas de una imagen de modo que cada subimagen incluye un ancho de subimagen que es un múltiplo entero del tamaño de unidad de árbol de codificación (CTU) cuando cada subimagen incluye un borde derecho que no coincide con un borde derecho de la imagen. El decodificador de vídeo 1210 comprende además un módulo de análisis 1213 para analizar el flujo de bits para obtener una o más subimágenes. El decodificador de vídeo 1210 comprende además un módulo de decodificación 1215 para decodificar una o más subimágenes para crear una secuencia de vídeo. El decodificador de vídeo 1210
comprende además un módulo de reenvío 1217 para reenviar la secuencia de vídeo para su visualización. El decodificador de vídeo 1210 puede configurarse además para realizar cualquiera de los pasos del método 1100.
Un primer componente se acopla directamente a un segundo componente cuando no hay componentes intermedios, excepto por una línea, una traza 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, una traza u otro medio entre el primer componente y el segundo componente. El término "acoplado" y sus variantes incluyen tanto acoplados directamente como acoplados indirectamente. El uso del término "aproximadamente" significa un rango que incluye ± 10 % del número siguiente, a menos que se indique lo contrario.
También debe entenderse que los pasos de los métodos ejemplares expuestos en la presente descripción no se requiere necesariamente que se realicen en el orden descrito, y el orden de los pasos de dichos métodos debe entenderse como meramente ejemplar. Asimismo, se pueden incluir pasos adicionales en tales métodos, y se pueden omitir o combinar ciertos pasos, en métodos consistentes con diversas modalidades de la presente divulgación.
Si bien se han proporcionado varias modalidades en la presente divulgación, se puede entender que los sistemas y métodos descritos se pueden realizar en muchas otras formas específicas sin apartarse del espíritu o alcance de la presente divulgación. Los presentes ejemplos deben considerarse ilustrativos y no restrictivos, y la intención no se limita a los detalles que se dan en el presente documento. Por ejemplo, los distintos elementos o componentes pueden combinarse o integrarse en otro sistema o pueden omitirse ciertas características o no implementarse.
Además, las técnicas, sistemas, subsistemas y métodos descritos e ilustrados en las diversas modalidades como discretos o separados pueden combinarse o integrarse con otros sistemas, componentes, técnicas o métodos sin apartarse del alcance de la presente divulgación. Un experto en la técnica puede comprobar otros ejemplos de cambios, sustituciones y alteraciones y pueden realizarse sin apartarse del alcance descrito en la presente descripción.
Claims (15)
1. Un método implementado en un decodificador, el método caracterizado porque comprende:
recibir, mediante un receptor del decodificador, un flujo de bits que comprende datos de una o más subimágenes particionadas de una imagen de tal manera que una primera subimagen comprende un ancho de subimagen que no es un múltiplo entero de un tamaño de unidad de árbol de codificación, c Tu , cuando la primera la subimagen incluye un límite derecho que coincide con el límite derecho de la imagen; en donde el flujo de bits comprende un conjunto de parámetros de secuencia, SPS, en donde el SPS comprende un conjunto completo de todos los ID de subimagen para la una o más subimágenes, y el SPS comprende además un tamaño de subimagen y una ubicación de subimagen en relación a cada una de las una o más subimágenes;
analizar, mediante el procesador del decodificador, el SPS para obtener el ID de subimagen, el tamaño de subimagen y la ubicación de subimagen para cada una de las una o más subimágenes;
decodificar, mediante el procesador, la una o más subimágenes para crear una secuencia de vídeo a partir del flujo de bits.
2. El método de la reivindicación 1, caracterizado porque una segunda subimagen comprende una altura de subimagen que es un múltiplo entero del tamaño de CTU cuando la segunda subimagen incluye un límite inferior que no coincide con un límite inferior de la imagen.
3. El método de cualquiera de las reivindicaciones 1-2, caracterizado porque una tercera subimagen comprende un ancho de subimagen que es un múltiplo entero del tamaño de CTU cuando la tercera subimagen incluye un límite derecho que no coincide con un límite derecho del imagen.
4. El método de cualquiera de las reivindicaciones 1-3, en donde una cuarta subimagen comprende una altura de subimagen que es un múltiplo entero del tamaño de CTU cuando la cuarta subimagen incluye un límite inferior que coincide con el límite inferior de la imagen.
5. El método de cualquiera de las reivindicaciones 1-4, en donde la imagen incluye un ancho de imagen que no es un múltiplo entero del tamaño de CTU
6. El método de cualquiera de las reivindicaciones 1-5, en donde la imagen incluye una altura de imagen que no es un múltiplo entero del tamaño de CTU.
7. El método de cualquiera de las reivindicaciones 1- 6, en donde el tamaño de CTU se mide en unidades de muestras de luma.
8. Un método implementado en un codificador, el método en donde comprende:
particionar, mediante un procesador del codificador, una imagen en una pluralidad de subimágenes de modo que una primera subimagen comprende un ancho de subimagen que no es un múltiplo entero de un tamaño de unidad de árbol de codificación, CTU, cuando la primera subimagen incluye un límite derecho que coincide con el límite derecho de la imagen; en donde el flujo de bits comprende un conjunto de parámetros de secuencia, SPS; codificar, mediante el procesador, una o más de las subimágenes en un flujo de bits;
codificar, mediante el procesador, un conjunto de parámetros de secuencia, SPS, en el flujo de bits, en donde el SPS comprende una lista de ID de subimagen para cada una de las una o más subimágenes, y el SPS comprende además un tamaño de subimagen y una ubicación de subimagen en relación a cada una de las una o más subimágenes.
9. El método de la reivindicación 8, el método en donde comprende además:
almacenar, en una memoria del codificador, el flujo de bits para la comunicación hacia un decodificador.
10. Un medio legible por ordenador no transitorio que comprende un producto de programa de informático para su uso por un dispositivo de codificación de vídeo, el producto de programa de informático que comprende instrucciones ejecutables por ordenador almacenadas en el medio legible por ordenador no transitorio de tal manera que cuando es ejecutado por un procesador hace que el dispositivo de codificación de vídeo realice el método de cualquiera de las reivindicaciones 1-9.
11. Un decodificador, en donde comprende:
una unidad de recepción, configurada para recibir un flujo de bits que comprende datos de una o más subimágenes particionadas de una imagen de manera que una primera subimagen comprende un ancho de subimagen que no es un múltiplo entero de un tamaño de unidad de árbol de codificación, CTU, cuando la primera subimagen incluye un límite derecho que coincide con un límite derecho de la imagen; en donde el flujo de bits comprende un conjunto de parámetros de secuencia, SPS, en donde el SPS comprende una lista de ID de
subimagen para cada una de las una o más subimágenes, y el SPS comprende además un tamaño de subimagen y una ubicación de subimagen en relación con cada una de las una o más subimágenes;
una unidad de análisis, configurada para analizar el SPS para obtener el ID de subimagen , el tamaño de subimagen y la ubicación de subimagen, para cada una de las una o más subimágenes;
una unidad de generación, configurada para generar una o más subimágenes para crear una secuencia de vídeo a partir del flujo de bits.
12. Un codificador, en donde comprende:
una unidad de particionado, configurada para particionar una imagen en una pluralidad de subimágenes de modo que una primera subimagen comprende un ancho de subimagen que no es un múltiplo entero de un tamaño de unidad de árbol de codificación, CTU, cuando la primera subimagen incluye un límite derecho que coincide con el límite derecho de la imagen; en donde el flujo de bits comprende un conjunto de parámetros de secuencia, SPS; una unidad de codificación, configurada para codificar una o más de las subimágenes en un flujo de bits;
la unidad de codificación, configurada para codificar un conjunto de parámetros de secuencia, SPS, en el flujo de bits, en donde el SPS comprende una lista de ID de subimagen para cada una de las una o más subimágenes, y el SPS comprende además un tamaño de subimagen y una ubicación de subimagen relacionada con cada una de la una o más subimágenes.
13. El codificador de la reivindicación 12, el codificador en donde comprende además:
una unidad de almacenamiento, configurada para almacenar el flujo de bits para la comunicación hacia un decodificador.
14. Un flujo de bits que comprende una o más subimágenes particionadas de una imagen de manera que una primera subimagen comprende un ancho de subimagen que no es un múltiplo entero del tamaño de la unidad de árbol de codificación, CTU, cuando la primera subimagen incluye un límite derecho que coincide con el límite derecho de la imagen; en donde el flujo de bits comprende además un conjunto de parámetros de secuencia, SPS, en donde el SPS comprende además una lista de ID de subimágenes para cada una de la una o más subimágenes, y el SPS comprende además un tamaño de subimagen y una ubicación de subimagen relacionada con cada una de la una o más subimágenes.
15. Un producto de programa de informático que comprende un código de programa para realizar el método de acuerdo con cualquiera de las reivindicaciones 1 a 9 cuando se ejecuta en un ordenador o un procesador.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962790207P | 2019-01-09 | 2019-01-09 | |
| PCT/US2020/012910 WO2020146616A1 (en) | 2019-01-09 | 2020-01-09 | Sub-picture sizing in video coding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2952079T3 true ES2952079T3 (es) | 2023-10-26 |
Family
ID=71520341
Family Applications (9)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES20738971T Active ES2952079T3 (es) | 2019-01-09 | 2020-01-09 | Dimensionamiento de subimágenes en la codificación de vídeo |
| ES23166930T Active ES3030534T3 (en) | 2019-01-09 | 2020-01-09 | A video encoder, a video decoder and corresponding methods |
| ES20738533T Active ES2988146T3 (es) | 2019-01-09 | 2020-01-09 | Señalización de distribución de subimágenes en codificación de vídeo |
| ES23169952T Active ES2993577T3 (en) | 2019-01-09 | 2020-01-09 | A video encoder, a video decoder and corresponding methods |
| ES20738269T Active ES2988213T3 (es) | 2019-01-09 | 2020-01-09 | Señalización de subimágenes restringidas en movimiento temporal en codificado de vídeo |
| ES23165304T Active ES2994192T3 (en) | 2019-01-09 | 2020-01-09 | A video encoder, a video decoder and corresponding methods |
| ES20739138T Active ES2981568T3 (es) | 2019-01-09 | 2020-01-09 | Señalización indicadora de nivel de subimagen en codificación de vídeo |
| ES20738190T Active ES2951004T3 (es) | 2019-01-09 | 2020-01-09 | Restricciones de posición de subimágenes en la codificación de vídeo |
| ES20738357T Active ES2951060T3 (es) | 2019-01-09 | 2020-01-09 | Señalización de identificadores de subimágenes en la codificación de vídeo |
Family Applications After (8)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES23166930T Active ES3030534T3 (en) | 2019-01-09 | 2020-01-09 | A video encoder, a video decoder and corresponding methods |
| ES20738533T Active ES2988146T3 (es) | 2019-01-09 | 2020-01-09 | Señalización de distribución de subimágenes en codificación de vídeo |
| ES23169952T Active ES2993577T3 (en) | 2019-01-09 | 2020-01-09 | A video encoder, a video decoder and corresponding methods |
| ES20738269T Active ES2988213T3 (es) | 2019-01-09 | 2020-01-09 | Señalización de subimágenes restringidas en movimiento temporal en codificado de vídeo |
| ES23165304T Active ES2994192T3 (en) | 2019-01-09 | 2020-01-09 | A video encoder, a video decoder and corresponding methods |
| ES20739138T Active ES2981568T3 (es) | 2019-01-09 | 2020-01-09 | Señalización indicadora de nivel de subimagen en codificación de vídeo |
| ES20738190T Active ES2951004T3 (es) | 2019-01-09 | 2020-01-09 | Restricciones de posición de subimágenes en la codificación de vídeo |
| ES20738357T Active ES2951060T3 (es) | 2019-01-09 | 2020-01-09 | Señalización de identificadores de subimágenes en la codificación de vídeo |
Country Status (22)
| Country | Link |
|---|---|
| US (14) | US12477134B2 (es) |
| EP (14) | EP3909244B1 (es) |
| JP (14) | JP7404373B2 (es) |
| KR (10) | KR102650474B1 (es) |
| CN (11) | CN113287313A (es) |
| AU (2) | AU2020206246B2 (es) |
| BR (2) | BR112021013531A2 (es) |
| CY (3) | CY1126078T1 (es) |
| DK (8) | DK4221215T3 (es) |
| ES (9) | ES2952079T3 (es) |
| FI (6) | FI3909245T3 (es) |
| HR (3) | HRP20230707T1 (es) |
| HU (9) | HUE066684T2 (es) |
| LT (3) | LT3906665T (es) |
| MX (10) | MX2021008346A (es) |
| MY (1) | MY210467A (es) |
| PL (9) | PL3909245T3 (es) |
| PT (9) | PT4221214T (es) |
| RS (3) | RS64330B1 (es) |
| SG (5) | SG11202107546UA (es) |
| SI (3) | SI3906665T1 (es) |
| WO (6) | WO2020146582A1 (es) |
Families Citing this family (51)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020141904A1 (ko) | 2019-01-02 | 2020-07-09 | 주식회사 엑스리스 | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 |
| ES2952079T3 (es) * | 2019-01-09 | 2023-10-26 | Huawei Tech Co Ltd | Dimensionamiento de subimágenes en la codificación de vídeo |
| WO2020164480A1 (en) | 2019-02-11 | 2020-08-20 | Beijing Bytedance Network Technology Co., Ltd. | Condition dependent video block partition |
| KR20210145736A (ko) * | 2019-03-11 | 2021-12-02 | 브이아이디 스케일, 인크. | 서브-픽처 비트스트림 추출 및 재배치 |
| WO2020197236A1 (ko) * | 2019-03-24 | 2020-10-01 | 엘지전자 주식회사 | 서브 픽처 핸들링 구조 기반 영상 또는 비디오 코딩 |
| WO2020233661A1 (en) | 2019-05-21 | 2020-11-26 | Beijing Bytedance Network Technology Co., Ltd. | Syntax signaling in sub-block merge mode |
| WO2020249124A1 (en) | 2019-06-14 | 2020-12-17 | Beijing Bytedance Network Technology Co., Ltd. | Handling video unit boundaries and virtual boundaries based on color format |
| JP7433346B2 (ja) | 2019-06-14 | 2024-02-19 | 北京字節跳動網絡技術有限公司 | ビデオ単位境界および仮想境界の処理 |
| WO2020256495A1 (ko) * | 2019-06-19 | 2020-12-24 | 한국전자통신연구원 | 참조 픽처를 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체 |
| JP7361196B2 (ja) | 2019-07-15 | 2023-10-13 | 北京字節跳動網絡技術有限公司 | 適応ループ・フィルタリングにおける分類 |
| US12375662B2 (en) * | 2019-08-09 | 2025-07-29 | Hyundai Motor Company | Method and apparatus for encoding and decoding video using sub-picture partitioning |
| CN114208166B (zh) | 2019-08-10 | 2024-04-09 | 北京字节跳动网络技术有限公司 | 视频比特流中的子图片相关信令通知 |
| KR20210022510A (ko) | 2019-08-20 | 2021-03-03 | 주식회사 엑스리스 | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 |
| CN120658878A (zh) * | 2019-08-29 | 2025-09-16 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法、解码方法 |
| JP7774951B2 (ja) * | 2019-09-11 | 2025-11-25 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
| EP4018658B1 (en) * | 2019-09-17 | 2023-03-29 | Huawei Technologies Co., Ltd. | Signaling subpicture ids in subpicture based video coding |
| KR102707780B1 (ko) | 2019-09-18 | 2024-09-20 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 코딩에서 적응형 루프 필터의 2-파트 시그널링 |
| KR102718068B1 (ko) | 2019-09-22 | 2024-10-17 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 적응적 루프 필터링에서의 패딩 프로세스 |
| EP4035372A4 (en) * | 2019-09-23 | 2022-11-23 | Telefonaktiebolaget LM Ericsson (publ) | SEGMENT POSITION SIGNALING WITH SUB-PICTURE SLICE POSITION DERIVATION |
| CN117834924A (zh) | 2019-09-27 | 2024-04-05 | 北京字节跳动网络技术有限公司 | 不同视频单元之间的自适应环路滤波 |
| KR102609308B1 (ko) * | 2019-10-02 | 2023-12-05 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스 |
| WO2021068906A1 (en) | 2019-10-10 | 2021-04-15 | Beijing Bytedance Network Technology Co., Ltd. | Padding process at unavailable sample locations in adaptive loop filtering |
| KR102871115B1 (ko) | 2019-10-18 | 2025-10-16 | 두인 비전 컴퍼니 리미티드 | 서브픽처들의 파라미터 세트 시그널링에서의 신택스 제약들 |
| CN117528097A (zh) | 2019-10-29 | 2024-02-06 | 抖音视界(北京)有限公司 | 跨分量自适应环路滤波器 |
| US11509938B2 (en) * | 2019-11-05 | 2022-11-22 | Hfi Innovation Inc. | Method and apparatus of signaling subpicture information in video coding |
| CN114930832B (zh) | 2019-11-30 | 2025-10-28 | 抖音视界(北京)有限公司 | 跨分量自适应滤波和子块编解码 |
| CN115280774B (zh) | 2019-12-02 | 2025-08-19 | 抖音视界有限公司 | 视觉媒体处理的方法、装置及非暂时性计算机可读存储介质 |
| US12143601B2 (en) * | 2019-12-05 | 2024-11-12 | Hfi Innovation Inc. | Specifying layout in video pictures |
| WO2021117644A1 (en) | 2019-12-11 | 2021-06-17 | Sharp Kabushiki Kaisha | Systems and methods for signaling output layer set information in video coding |
| WO2021115362A1 (en) | 2019-12-11 | 2021-06-17 | Beijing Bytedance Network Technology Co., Ltd. | Sample padding for cross-component adaptive loop filtering |
| GB2590632B (en) | 2019-12-20 | 2023-07-26 | Canon Kk | Video coding and decoding |
| JP7431330B2 (ja) | 2019-12-26 | 2024-02-14 | バイトダンス インコーポレイテッド | ビデオコーディングにおけるプロファイル、層及びレイヤの指示 |
| JP7425204B2 (ja) | 2019-12-26 | 2024-01-30 | バイトダンス インコーポレイテッド | ビデオビットストリームにおける仮想参照デコーダパラメータのシグナリングに対する制約 |
| US11778169B2 (en) * | 2019-12-27 | 2023-10-03 | Electronics And Telecommunications Research Institute | Method, apparatus and storage medium for image encoding/decoding using reference picture |
| JP7422881B2 (ja) | 2019-12-27 | 2024-01-26 | バイトダンス インコーポレイテッド | パラメータセットにおけるサブピクチャシグナリング |
| WO2021142364A1 (en) | 2020-01-09 | 2021-07-15 | Bytedance Inc. | Signalling of high level syntax indication |
| CN121691672A (zh) * | 2020-03-19 | 2026-03-17 | 松下电器(美国)知识产权公司 | 图像处理装置、图像处理方法及比特流发送装置 |
| CN115349254A (zh) | 2020-03-23 | 2022-11-15 | 抖音视界有限公司 | 控制编解码视频中不同级别的去块滤波 |
| US12058357B2 (en) * | 2020-03-31 | 2024-08-06 | Tencent America LLC | Method for signaling subpicture partitioning in coded video stream |
| WO2022002007A1 (en) | 2020-06-30 | 2022-01-06 | Beijing Bytedance Network Technology Co., Ltd. | Boundary location for adaptive loop filtering |
| EP3972269A1 (en) | 2020-09-17 | 2022-03-23 | Lemon Inc. | Subpicture entity groups in video coding |
| US11902552B2 (en) | 2020-09-17 | 2024-02-13 | Lemon Inc. | Decoder configuration record in coded video |
| US11871143B2 (en) | 2020-09-17 | 2024-01-09 | Lemon Inc. | Subpicture tracks in coded video |
| US11615537B2 (en) * | 2020-11-02 | 2023-03-28 | Qualcomm Incorporated | Methods and apparatus for motion estimation based on region discontinuity |
| WO2022139459A1 (ko) * | 2020-12-23 | 2022-06-30 | 엘지전자 주식회사 | 서브 픽처 id 정보를 시그널링하는 미디어 파일 생성/수신 방법, 장치 및 미디어 파일을 저장한 컴퓨터 판독 가능한 기록 매체 |
| CN117121481A (zh) | 2021-03-17 | 2023-11-24 | 抖音视界有限公司 | 单独树编解码限制 |
| US11997293B2 (en) | 2021-04-15 | 2024-05-28 | Lemon Inc. | Sub-picture track level indicator |
| US12439042B2 (en) * | 2022-01-05 | 2025-10-07 | Agora Lab, Inc. | Real-time wide-angle video communication system |
| US20250386023A1 (en) * | 2022-06-16 | 2025-12-18 | Lg Electronics Inc. | Image encoding/decoding method and apparatus based on scan order information, and recording medium storing bitstream |
| US20250119567A1 (en) * | 2023-10-05 | 2025-04-10 | Tencent America LLC | Sei message supporting decoder picture-based parallelization |
| KR102856435B1 (ko) * | 2024-04-09 | 2025-09-09 | 서울다이나믹스 주식회사 | 영상 데이터 전송을 위한 목적 기반 차량 및 그 동작 방법 |
Family Cites Families (107)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6393196B1 (en) * | 1996-09-27 | 2002-05-21 | Matsushita Electric Industrial Co., Ltd. | Multimedia stream generating method enabling alternative reproduction of video data, and a multimedia optical disk authoring system |
| GB2382940A (en) * | 2001-11-27 | 2003-06-11 | Nokia Corp | Encoding objects and background blocks |
| US20030112868A1 (en) * | 2001-12-17 | 2003-06-19 | Koninklijke Philips Electronics N.V. | Shape assisted padding for object-based coding |
| JP2004128761A (ja) * | 2002-10-01 | 2004-04-22 | Pioneer Electronic Corp | 情報記録媒体、情報記録装置及び方法、情報再生装置及び方法、情報記録再生装置及び方法、記録又は再生制御用のコンピュータプログラム、並びに制御信号を含むデータ構造 |
| KR100539886B1 (ko) | 2004-09-10 | 2005-12-28 | 삼성전자주식회사 | 디지털 방송 수신 장치 및 그 방법 |
| EP1869891A4 (en) * | 2005-04-13 | 2014-06-11 | CODING, STORAGE AND SIGNALING OF SCALABILITY INFORMATION | |
| US20100135384A1 (en) * | 2006-09-26 | 2010-06-03 | Ambx Uk Limited | Creation and handling of a bitstream comprising video frames and auxiliary data |
| US20140072058A1 (en) * | 2010-03-05 | 2014-03-13 | Thomson Licensing | Coding systems |
| JP2010041494A (ja) * | 2008-08-06 | 2010-02-18 | Sumitomo Electric Ind Ltd | ネットワーク端末 |
| US9602821B2 (en) * | 2008-10-01 | 2017-03-21 | Nvidia Corporation | Slice ordering for video encoding |
| CN104702960B (zh) * | 2009-01-26 | 2018-01-02 | 汤姆森特许公司 | 用于视频解码的装置 |
| KR20110061468A (ko) * | 2009-12-01 | 2011-06-09 | (주)휴맥스 | 고해상도 영상의 부호화/복호화 방법 및 이를 수행하는 장치 |
| US20120179833A1 (en) * | 2010-06-02 | 2012-07-12 | Onmobile Global Limited | Method and apparatus for adapting media |
| US10033997B2 (en) * | 2010-06-23 | 2018-07-24 | Panasonic Intellectual Property Management Co., Ltd. | Image decoding apparatus, image decoding method, integrated circuit, and program |
| US8780973B2 (en) * | 2010-08-13 | 2014-07-15 | Texas Instruments Incorporated | Limiting the maximum size of an encoded video picture using sub-picture based rate control |
| US8718389B2 (en) * | 2011-04-13 | 2014-05-06 | Huawei Technologies Co., Ltd. | Image encoding and decoding methods and related devices |
| US20130016769A1 (en) | 2011-07-17 | 2013-01-17 | Qualcomm Incorporated | Signaling picture size in video coding |
| US9584819B2 (en) * | 2011-10-24 | 2017-02-28 | Qualcomm Incorporated | Grouping of tiles for video coding |
| US20130107973A1 (en) * | 2011-10-28 | 2013-05-02 | Qualcomm Incorporated | Loop filtering control over tile boundaries |
| US20130136180A1 (en) * | 2011-11-29 | 2013-05-30 | Futurewei Technologies, Inc. | Unified Partitioning Structures and Signaling Methods for High Efficiency Video Coding |
| US9819949B2 (en) * | 2011-12-16 | 2017-11-14 | Microsoft Technology Licensing, Llc | Hardware-accelerated decoding of scalable video bitstreams |
| US9288506B2 (en) * | 2012-01-05 | 2016-03-15 | Qualcomm Incorporated | Signaling view synthesis prediction support in 3D video coding |
| US9332259B2 (en) | 2012-01-18 | 2016-05-03 | Qualcomm Incorporated | Indication of use of wavefront parallel processing in video coding |
| US10244246B2 (en) * | 2012-02-02 | 2019-03-26 | Texas Instruments Incorporated | Sub-pictures for pixel rate balancing on multi-core platforms |
| US9756327B2 (en) * | 2012-04-03 | 2017-09-05 | Qualcomm Incorporated | Quantization matrix and deblocking filter adjustments for video coding |
| US9565431B2 (en) * | 2012-04-04 | 2017-02-07 | Qualcomm Incorporated | Low-delay video buffering in video coding |
| JP5888278B2 (ja) * | 2012-04-06 | 2016-03-16 | 株式会社Jvcケンウッド | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム |
| JP6048495B2 (ja) | 2012-04-06 | 2016-12-21 | ソニー株式会社 | 復号装置、復号方法、プログラム、および記録媒体 |
| CA3056122C (en) | 2012-04-13 | 2021-05-04 | Robert SKUPIN | Low delay picture coding |
| IN2014DN07859A (es) * | 2012-04-16 | 2015-04-24 | Ericsson Telefon Ab L M | |
| US20130287093A1 (en) * | 2012-04-25 | 2013-10-31 | Nokia Corporation | Method and apparatus for video coding |
| TWI558182B (zh) * | 2012-06-29 | 2016-11-11 | Ge影像壓縮有限公司 | 視訊資料串流槪念技術 |
| JP6376719B2 (ja) * | 2012-06-29 | 2018-08-22 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
| US20140003504A1 (en) * | 2012-07-02 | 2014-01-02 | Nokia Corporation | Apparatus, a Method and a Computer Program for Video Coding and Decoding |
| US9716892B2 (en) * | 2012-07-02 | 2017-07-25 | Qualcomm Incorporated | Video parameter set including session negotiation information |
| JP6050489B2 (ja) * | 2012-07-06 | 2016-12-21 | サムスン エレクトロニクス カンパニー リミテッド | 多階層ビデオ符号化方法及びその装置、並びに多階層ビデオ復号化方法及びその装置 |
| JP2014027371A (ja) * | 2012-07-24 | 2014-02-06 | Nippon Hoso Kyokai <Nhk> | イントラ予測処理装置及びプログラム |
| US9491457B2 (en) * | 2012-09-28 | 2016-11-08 | Qualcomm Incorporated | Signaling of regions of interest and gradual decoding refresh in video coding |
| US8989508B2 (en) * | 2012-09-28 | 2015-03-24 | Sharp Kabushiki Kaisha | Electronic device for signaling a sub-picture buffer parameter |
| AU2012391251B2 (en) | 2012-09-29 | 2016-04-21 | Huawei Technologies Co., Ltd. | Method, apparatus and system for encoding and decoding video |
| US9357213B2 (en) * | 2012-12-12 | 2016-05-31 | Imagine Communications Corp. | High-density quality-adaptive multi-rate transcoder systems and methods |
| KR102807030B1 (ko) * | 2013-01-04 | 2025-05-14 | 지이 비디오 컴프레션, 엘엘씨 | 효율적인 확장가능한 코딩 개념 |
| DK2986005T3 (da) | 2013-01-04 | 2019-05-20 | Samsung Electronics Co Ltd | Apparat til entropiafkodning af skivesegmenter |
| US20160027246A1 (en) | 2013-03-14 | 2016-01-28 | Gamesys Ltd | Systems and methods for detection of gaming experience management implementations |
| GB2512829B (en) * | 2013-04-05 | 2015-05-27 | Canon Kk | Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme |
| US9749627B2 (en) | 2013-04-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Control data for motion-constrained tile set |
| US9635371B2 (en) * | 2013-05-31 | 2017-04-25 | Qualcomm Incorporated | Determining rounding offset using scaling factor in picture resampling |
| US8923640B1 (en) | 2013-06-07 | 2014-12-30 | Apple Inc. | Coherence groups: region descriptors for low bit rate encoding |
| CN105453569A (zh) | 2013-07-10 | 2016-03-30 | 夏普株式会社 | 缩放列表信号发送和参数集激活 |
| KR102107286B1 (ko) * | 2013-07-15 | 2020-05-06 | 소니 주식회사 | 비트스트림을 처리하기 위한 장치 및 방법 |
| WO2015009693A1 (en) * | 2013-07-15 | 2015-01-22 | Sony Corporation | Layer based hrd buffer management for scalable hevc |
| GB2516824A (en) | 2013-07-23 | 2015-02-11 | Nokia Corp | An apparatus, a method and a computer program for video coding and decoding |
| WO2015052979A1 (ja) * | 2013-10-11 | 2015-04-16 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
| WO2015052943A1 (en) * | 2013-10-13 | 2015-04-16 | Sharp Kabushiki Kaisha | Signaling parameters in vps extension and dpb operation |
| WO2015099506A1 (ko) * | 2013-12-26 | 2015-07-02 | 삼성전자 주식회사 | 서브블록 기반 예측을 수행하는 인터 레이어 비디오 복호화 방법 및 그 장치 및 서브블록 기반 예측을 수행하는 인터 레이어 비디오 부호화 방법 및 그 장치 |
| WO2015101716A1 (en) * | 2014-01-03 | 2015-07-09 | Nokia Technologies Oy | Parameter set coding |
| JP6572222B2 (ja) | 2014-01-07 | 2019-09-04 | キヤノン株式会社 | メディアファイルの生成方法、生成装置、及びプログラム |
| JP6224516B2 (ja) | 2014-05-07 | 2017-11-01 | 日本電信電話株式会社 | エンコード方法およびエンコードプログラム |
| US9699480B2 (en) * | 2014-06-13 | 2017-07-04 | Sharp Laboratories Of America, Inc. | Level limits |
| AU2015278082B2 (en) | 2014-06-20 | 2020-02-20 | Sony Corporation | Image encoding apparatus and method, and image decoding apparatus and method |
| JP2017522839A (ja) * | 2014-06-20 | 2017-08-10 | シャープ株式会社 | 整合パレット符号化 |
| SG11201706531UA (en) * | 2015-02-16 | 2017-09-28 | Hfi Innovation Inc | Method and apparatus for palette predictor initialization for palette coding in video and image compression |
| GB2535990A (en) * | 2015-02-26 | 2016-09-07 | Univ Antwerpen | Computer program and method of determining a personalized head-related transfer function and interaural time difference function |
| EP3128485A1 (en) * | 2015-08-05 | 2017-02-08 | Thomson Licensing | Method and apparatus for hierarchical motion estimation using dfd-based image segmentation |
| WO2017088093A1 (en) | 2015-11-23 | 2017-06-01 | Mediatek Singapore Pte. Ltd. | On the smallest allowed block size in video coding |
| US20170180758A1 (en) | 2015-12-22 | 2017-06-22 | Vallabhajosyula S. Somayazulu | Tiled Wireless Display |
| CN118784880A (zh) * | 2016-02-09 | 2024-10-15 | 弗劳恩霍夫应用研究促进协会 | 解码器、编码器、方法、网络设备以及可读存储介质 |
| EP3249928A1 (en) | 2016-05-23 | 2017-11-29 | Thomson Licensing | Method, apparatus and stream of formatting an immersive video for legacy and immersive rendering devices |
| US10812791B2 (en) * | 2016-09-16 | 2020-10-20 | Qualcomm Incorporated | Offset vector identification of temporal motion vector predictor |
| US10250776B2 (en) * | 2016-10-04 | 2019-04-02 | International Business Machines Corporation | Enhancing graph visualization with supplemental data |
| EP4432664A3 (en) * | 2016-10-04 | 2024-11-20 | B1 Institute of Image Technology, Inc. | Image data encoding/decoding method and apparatus |
| CA3039815C (en) * | 2016-10-12 | 2021-10-19 | Arris Enterprises Llc | Coding schemes for virtual reality (vr) sequences |
| WO2018083378A1 (en) * | 2016-11-01 | 2018-05-11 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
| 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 |
| CN115955560B (zh) * | 2017-03-20 | 2024-10-11 | Ge视频压缩有限责任公司 | 生成视频数据流的装置以及生成视频数据流的方法 |
| US11062738B2 (en) * | 2017-03-23 | 2021-07-13 | Qualcomm Incorporated | Signalling of video content including sub-picture bitstreams for video coding |
| US11297349B2 (en) * | 2017-05-31 | 2022-04-05 | Sharp Kabushiki Kaisha | Video decoding device and video encoding device |
| EP3422724B1 (en) * | 2017-06-26 | 2024-05-01 | Nokia Technologies Oy | An apparatus, a method and a computer program for omnidirectional video |
| US10645385B2 (en) * | 2017-06-28 | 2020-05-05 | Mediatek Inc. | Method and apparatus for performing fixed-size slice encoding with slice boundary prediction |
| CN116248868B (zh) * | 2017-07-03 | 2025-11-25 | 汉阳大学校产学协力团 | 利用包含追加区域的分割单位的影像解码方法以及装置 |
| HUE065470T2 (hu) | 2017-07-04 | 2024-05-28 | Huawei Tech Co Ltd | Fejlesztés határvonal által kikényszerített leválasztáson |
| TWI812414B (zh) * | 2017-07-13 | 2023-08-11 | 美商松下電器(美國)知識產權公司 | 編碼裝置、解碼裝置及記錄媒體 |
| CN117528070A (zh) * | 2017-08-21 | 2024-02-06 | 韩国电子通信研究院 | 编码/解码视频的方法和设备以及存储比特流的记录介质 |
| KR20190080805A (ko) * | 2017-12-28 | 2019-07-08 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
| CN118101936B (zh) | 2018-04-19 | 2025-12-26 | Oppo广东移动通信有限公司 | 用于处理图像的方法及其设备 |
| US11431972B2 (en) * | 2018-05-15 | 2022-08-30 | Sharp Kabushiki Kaisha | Image encoding device, encoded stream extraction device, and image decoding device |
| DK3782369T3 (da) * | 2018-05-30 | 2023-11-13 | Huawei Tech Co Ltd | Multitype-trædybdeudvidelse til håndtering af billedgrænser |
| JP2021153213A (ja) | 2018-06-29 | 2021-09-30 | シャープ株式会社 | 動画像符号化装置および動画像復号装置 |
| EP3817381A4 (en) * | 2018-06-29 | 2022-04-27 | Electronics and Telecommunications Research Institute | Image encoding/decoding method and apparatus for throughput enhancement, and recording medium storing bitstream |
| RU2767601C1 (ru) * | 2018-07-02 | 2022-03-17 | Нокиа Текнолоджиз Ой | Способ и устройство для связанной с тайлом адресации при кодировании видеосигнала |
| WO2020017861A1 (ko) * | 2018-07-16 | 2020-01-23 | 엘지전자 주식회사 | 서브블록 단위의 시간적 움직임 정보 예측을 위한 인터 예측 방법 및 그 장치 |
| WO2020050705A1 (ko) * | 2018-09-07 | 2020-03-12 | 가온미디어 주식회사 | 그룹 단위 양자화 파라미터를 처리하는 영상 복호화 및 부호화 방법 |
| EP3850841A1 (en) * | 2018-09-14 | 2021-07-21 | Vid Scale, Inc. | Methods and apparatus for flexible grid regions |
| US11140408B2 (en) * | 2018-09-17 | 2021-10-05 | Qualcomm Incorporated | Affine motion prediction |
| CN120935352A (zh) * | 2018-09-19 | 2025-11-11 | 韩国电子通信研究院 | 对图像进行编码/解码的方法和设备 |
| CN113170198B (zh) * | 2018-11-22 | 2022-12-09 | 北京字节跳动网络技术有限公司 | 子块时域运动矢量预测 |
| EP3891983A1 (en) * | 2018-12-04 | 2021-10-13 | VID SCALE, Inc. | Tile group partitioning |
| US11102513B2 (en) * | 2018-12-06 | 2021-08-24 | Tencent America LLC | One-level transform split and adaptive sub-block transform |
| US11606555B2 (en) * | 2018-12-20 | 2023-03-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for video coding using uniform segment split in pictures |
| PH12021551481A1 (en) * | 2018-12-28 | 2022-05-02 | B1 Institute Image Technology Inc | Intra prediction-based video encoding/decoding method and device |
| WO2020135482A1 (en) * | 2018-12-29 | 2020-07-02 | Beijing Bytedance Network Technology Co., Ltd. | Construction method for default motion candidate in sub-block based inter prediction |
| EP3906677A4 (en) * | 2019-01-02 | 2022-10-19 | Nokia Technologies Oy | DEVICE, METHOD AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING |
| ES2952079T3 (es) * | 2019-01-09 | 2023-10-26 | Huawei Tech Co Ltd | Dimensionamiento de subimágenes en la codificación de vídeo |
| GB201902829D0 (en) * | 2019-03-01 | 2019-04-17 | Canon Kk | Method and apparatus for encoding and decoding a video bitsream for merging regions of interest |
| GB2584295A (en) * | 2019-05-28 | 2020-12-02 | Canon Kk | Method and apparatus for encoding and decoding a video bitstream for merging regions of interest |
| KR102871115B1 (ko) * | 2019-10-18 | 2025-10-16 | 두인 비전 컴퍼니 리미티드 | 서브픽처들의 파라미터 세트 시그널링에서의 신택스 제약들 |
| KR20220100019A (ko) * | 2019-12-12 | 2022-07-14 | 엘지전자 주식회사 | 루프 필터링을 제어하기 위한 영상 코딩 장치 및 방법 |
-
2020
- 2020-01-09 ES ES20738971T patent/ES2952079T3/es active Active
- 2020-01-09 RS RS20230521A patent/RS64330B1/sr unknown
- 2020-01-09 ES ES23166930T patent/ES3030534T3/es active Active
- 2020-01-09 HU HUE20739138A patent/HUE066684T2/hu unknown
- 2020-01-09 EP EP20738357.1A patent/EP3909244B1/en active Active
- 2020-01-09 ES ES20738533T patent/ES2988146T3/es active Active
- 2020-01-09 EP EP23166930.0A patent/EP4221214B1/en active Active
- 2020-01-09 AU AU2020206246A patent/AU2020206246B2/en active Active
- 2020-01-09 KR KR1020217024917A patent/KR102650474B1/ko active Active
- 2020-01-09 WO PCT/US2020/012862 patent/WO2020146582A1/en not_active Ceased
- 2020-01-09 WO PCT/US2020/012921 patent/WO2020146623A1/en not_active Ceased
- 2020-01-09 EP EP23169952.1A patent/EP4221215B1/en active Active
- 2020-01-09 LT LTEPPCT/US2020/012910T patent/LT3906665T/lt unknown
- 2020-01-09 RS RS20230522A patent/RS64353B1/sr unknown
- 2020-01-09 CN CN202080008695.1A patent/CN113287313A/zh active Pending
- 2020-01-09 JP JP2021540003A patent/JP7404373B2/ja active Active
- 2020-01-09 EP EP20738269.8A patent/EP3909245B1/en active Active
- 2020-01-09 HR HRP20230707TT patent/HRP20230707T1/hr unknown
- 2020-01-09 PT PT231669300T patent/PT4221214T/pt unknown
- 2020-01-09 EP EP20738971.9A patent/EP3906665B1/en active Active
- 2020-01-09 PL PL20738269.8T patent/PL3909245T3/pl unknown
- 2020-01-09 PL PL20738357.1T patent/PL3909244T3/pl unknown
- 2020-01-09 SI SI202030220T patent/SI3906665T1/sl unknown
- 2020-01-09 SG SG11202107546UA patent/SG11202107546UA/en unknown
- 2020-01-09 KR KR1020217025036A patent/KR102648032B1/ko active Active
- 2020-01-09 CN CN202210114288.XA patent/CN114584770B/zh active Active
- 2020-01-09 FI FIEP20738269.8T patent/FI3909245T3/fi active
- 2020-01-09 SI SI202030212T patent/SI3909246T1/sl unknown
- 2020-01-09 CN CN202080008699.XA patent/CN113302933A/zh active Pending
- 2020-01-09 EP EP25150959.2A patent/EP4546772A1/en active Pending
- 2020-01-09 KR KR1020257016403A patent/KR20250073572A/ko active Pending
- 2020-01-09 ES ES23169952T patent/ES2993577T3/es active Active
- 2020-01-09 ES ES20738269T patent/ES2988213T3/es active Active
- 2020-01-09 HU HUE23169952A patent/HUE068136T2/hu unknown
- 2020-01-09 ES ES23165304T patent/ES2994192T3/es active Active
- 2020-01-09 EP EP20738533.7A patent/EP3906684B9/en active Active
- 2020-01-09 CN CN202080008756.4A patent/CN113330451A/zh active Pending
- 2020-01-09 HU HUE20738269A patent/HUE067951T2/hu unknown
- 2020-01-09 EP EP20739138.4A patent/EP3906687B1/en active Active
- 2020-01-09 WO PCT/US2020/012970 patent/WO2020146662A1/en not_active Ceased
- 2020-01-09 MX MX2021008346A patent/MX2021008346A/es unknown
- 2020-01-09 ES ES20739138T patent/ES2981568T3/es active Active
- 2020-01-09 PL PL20739138.4T patent/PL3906687T3/pl unknown
- 2020-01-09 HU HUE20738357A patent/HUE062631T2/hu unknown
- 2020-01-09 FI FIEP20738357.1T patent/FI3909244T3/fi active
- 2020-01-09 PL PL20738971.9T patent/PL3906665T3/pl unknown
- 2020-01-09 HR HRP20230682TT patent/HRP20230682T1/hr unknown
- 2020-01-09 SG SG11202107549XA patent/SG11202107549XA/en unknown
- 2020-01-09 HU HUE23165304A patent/HUE068506T2/hu unknown
- 2020-01-09 EP EP24198365.9A patent/EP4468704A3/en active Pending
- 2020-01-09 HU HUE20738533A patent/HUE067275T2/hu unknown
- 2020-01-09 EP EP24181270.0A patent/EP4518314A1/en active Pending
- 2020-01-09 EP EP20738190.6A patent/EP3909246B1/en active Active
- 2020-01-09 PT PT207383571T patent/PT3909244T/pt unknown
- 2020-01-09 CN CN202211022376.3A patent/CN115550648B/zh active Active
- 2020-01-09 DK DK23169952.1T patent/DK4221215T3/da active
- 2020-01-09 EP EP23165304.9A patent/EP4221213B1/en active Active
- 2020-01-09 LT LTEPPCT/US2020/012921T patent/LT3909246T/lt unknown
- 2020-01-09 JP JP2021539999A patent/JP7516389B2/ja active Active
- 2020-01-09 KR KR1020217024938A patent/KR102811542B1/ko active Active
- 2020-01-09 WO PCT/US2020/012974 patent/WO2020146665A1/en not_active Ceased
- 2020-01-09 MX MX2021008344A patent/MX2021008344A/es unknown
- 2020-01-09 PT PT207385337T patent/PT3906684T/pt unknown
- 2020-01-09 MX MX2021008339A patent/MX2021008339A/es unknown
- 2020-01-09 FI FIEP23166930.0T patent/FI4221214T3/fi active
- 2020-01-09 HR HRP20230702TT patent/HRP20230702T1/hr unknown
- 2020-01-09 RS RS20230572A patent/RS64374B1/sr unknown
- 2020-01-09 JP JP2021540000A patent/JP7223146B2/ja active Active
- 2020-01-09 MY MYPI2021003904A patent/MY210467A/en unknown
- 2020-01-09 SG SG11202107548WA patent/SG11202107548WA/en unknown
- 2020-01-09 ES ES20738190T patent/ES2951004T3/es active Active
- 2020-01-09 MX MX2021008347A patent/MX2021008347A/es unknown
- 2020-01-09 KR KR1020257017407A patent/KR20250078640A/ko active Pending
- 2020-01-09 PL PL20738533.7T patent/PL3906684T3/pl unknown
- 2020-01-09 JP JP2021540004A patent/JP7467480B2/ja active Active
- 2020-01-09 SG SG11202107545TA patent/SG11202107545TA/en unknown
- 2020-01-09 ES ES20738357T patent/ES2951060T3/es active Active
- 2020-01-09 MX MX2021008348A patent/MX2021008348A/es unknown
- 2020-01-09 PT PT207381906T patent/PT3909246T/pt unknown
- 2020-01-09 DK DK23165304.9T patent/DK4221213T3/da active
- 2020-01-09 KR KR1020217025126A patent/KR102814837B1/ko active Active
- 2020-01-09 PL PL20738190.6T patent/PL3909246T3/pl unknown
- 2020-01-09 SG SG11202107543SA patent/SG11202107543SA/en unknown
- 2020-01-09 DK DK20738357.1T patent/DK3909244T3/da active
- 2020-01-09 MX MX2021008345A patent/MX2021008345A/es unknown
- 2020-01-09 HU HUE20738190A patent/HUE062613T2/hu unknown
- 2020-01-09 SI SI202030210T patent/SI3909244T1/sl unknown
- 2020-01-09 PL PL23169952.1T patent/PL4221215T3/pl unknown
- 2020-01-09 WO PCT/US2020/012907 patent/WO2020146614A1/en not_active Ceased
- 2020-01-09 DK DK20738269.8T patent/DK3909245T3/da active
- 2020-01-09 PL PL23166930.0T patent/PL4221214T3/pl unknown
- 2020-01-09 CN CN202511044554.6A patent/CN121151564A/zh active Pending
- 2020-01-09 JP JP2021540005A patent/JP7508462B2/ja active Active
- 2020-01-09 DK DK20738190.6T patent/DK3909246T3/da active
- 2020-01-09 LT LTEPPCT/US2020/012970T patent/LT3909244T/lt unknown
- 2020-01-09 BR BR112021013531-6A patent/BR112021013531A2/pt unknown
- 2020-01-09 PT PT207391384T patent/PT3906687T/pt unknown
- 2020-01-09 HU HUE23166930A patent/HUE070831T2/hu unknown
- 2020-01-09 KR KR1020217024925A patent/KR102661006B1/ko active Active
- 2020-01-09 CN CN202410210946.4A patent/CN118101934A/zh active Pending
- 2020-01-09 CN CN202080008660.8A patent/CN113302930A/zh active Pending
- 2020-01-09 WO PCT/US2020/012910 patent/WO2020146616A1/en not_active Ceased
- 2020-01-09 DK DK23166930.0T patent/DK4221214T3/da active
- 2020-01-09 EP EP24178662.3A patent/EP4478713A1/en active Pending
- 2020-01-09 BR BR112021013499-9A patent/BR112021013499A2/pt unknown
- 2020-01-09 HU HUE20738971A patent/HUE062301T2/hu unknown
- 2020-01-09 PT PT207382698T patent/PT3909245T/pt unknown
- 2020-01-09 FI FIEP20738190.6T patent/FI3909246T3/fi active
- 2020-01-09 CN CN202211021778.1A patent/CN115550647B/zh active Active
- 2020-01-09 PL PL23165304.9T patent/PL4221213T3/pl unknown
- 2020-01-09 PT PT231653049T patent/PT4221213T/pt unknown
- 2020-01-09 DK DK20738971.9T patent/DK3906665T3/da active
- 2020-01-09 FI FIEP20738971.9T patent/FI3906665T3/fi active
- 2020-01-09 PT PT207389719T patent/PT3906665T/pt unknown
- 2020-01-09 KR KR1020257019352A patent/KR20250091318A/ko active Pending
- 2020-01-09 JP JP2021540001A patent/JP7556861B2/ja active Active
- 2020-01-09 KR KR1020247013391A patent/KR20240056798A/ko active Pending
- 2020-01-09 DK DK20738533.7T patent/DK3906684T3/da active
- 2020-01-09 KR KR1020217024921A patent/KR102821293B1/ko active Active
- 2020-01-09 CN CN202080008683.9A patent/CN113508591A/zh active Pending
- 2020-01-09 CN CN202080008738.6A patent/CN113330745A/zh active Pending
- 2020-01-09 EP EP24193014.8A patent/EP4451673A3/en active Pending
- 2020-01-09 PT PT231699521T patent/PT4221215T/pt unknown
- 2020-01-09 FI FIEP20738533.7T patent/FI3906684T3/fi active
-
2021
- 2021-07-08 US US17/370,904 patent/US12477134B2/en active Active
- 2021-07-08 US US17/370,918 patent/US12088835B2/en active Active
- 2021-07-08 MX MX2025000696A patent/MX2025000696A/es unknown
- 2021-07-08 US US17/370,913 patent/US11917173B2/en active Active
- 2021-07-08 US US17/370,879 patent/US11949893B2/en active Active
- 2021-07-08 US US17/370,887 patent/US12316865B2/en active Active
- 2021-07-08 MX MX2024010757A patent/MX2024010757A/es unknown
- 2021-07-08 US US17/370,911 patent/US12250389B2/en active Active
- 2021-07-08 MX MX2024012430A patent/MX2024012430A/es unknown
- 2021-07-08 MX MX2024013006A patent/MX2024013006A/es unknown
-
2023
- 2023-02-03 JP JP2023015475A patent/JP7467706B2/ja active Active
- 2023-05-02 JP JP2023076273A patent/JP7615210B2/ja active Active
- 2023-06-02 US US18/328,040 patent/US12470728B2/en active Active
- 2023-07-06 CY CY20231100318T patent/CY1126078T1/el unknown
- 2023-07-11 CY CY20231100326T patent/CY1126131T1/el unknown
- 2023-07-18 CY CY20231100338T patent/CY1126094T1/el unknown
- 2023-12-12 JP JP2023209280A patent/JP7674456B2/ja active Active
-
2024
- 2024-02-28 US US18/590,822 patent/US12368871B2/en active Active
- 2024-02-28 JP JP2024028639A patent/JP7769025B2/ja active Active
- 2024-03-21 JP JP2024045089A patent/JP2024086733A/ja active Pending
- 2024-04-03 AU AU2024202115A patent/AU2024202115B2/en active Active
- 2024-07-15 US US18/772,961 patent/US12563215B2/en active Active
- 2024-11-18 JP JP2024201024A patent/JP7778895B2/ja active Active
-
2025
- 2025-01-15 US US19/022,785 patent/US20250234023A1/en active Pending
- 2025-04-23 JP JP2025071560A patent/JP7813400B2/ja active Active
- 2025-05-14 US US19/207,958 patent/US20250274596A1/en active Pending
- 2025-07-21 US US19/275,662 patent/US20250350752A1/en active Pending
- 2025-10-14 US US19/358,237 patent/US20260039848A1/en active Pending
- 2025-10-23 US US19/367,347 patent/US20260052264A1/en active Pending
- 2025-10-30 JP JP2025183832A patent/JP2026031558A/ja active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2952079T3 (es) | Dimensionamiento de subimágenes en la codificación de vídeo | |
| ES2980868T3 (es) | Direcciones de segmento basadas en sub-imagen en codificación de vídeo | |
| ES3024137T3 (en) | Tile based addressing in video coding | |
| ES2980262T3 (es) | Mejoras de formación de mosaicos flexibles en codificación de vídeo | |
| ES3021282T3 (en) | Tile group assignment for raster scan and rectangular tile groups in video coding | |
| ES2992052T3 (es) | Señalización de grupos de mosaicos en codificación de video | |
| ES3010349T3 (en) | Indication of one slice per subpicture in subpicture-based video coding | |
| ES2944451T3 (es) | Señalización de identificaciones de subimagen en codificación de vídeo basada en subimagen | |
| BR122024004671B1 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
| BR112021013521B1 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
| BR122024016984A2 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
| BR112021013512B1 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
| BR112021013436B1 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
| BR122024004671A2 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
| BR122024003872B1 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
| BR122024003872A2 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes |













