ES2967911T3 - Codificación de vídeo entrelazado con imágenes principales - Google Patents
Codificación de vídeo entrelazado con imágenes principales Download PDFInfo
- Publication number
- ES2967911T3 ES2967911T3 ES20784389T ES20784389T ES2967911T3 ES 2967911 T3 ES2967911 T3 ES 2967911T3 ES 20784389 T ES20784389 T ES 20784389T ES 20784389 T ES20784389 T ES 20784389T ES 2967911 T3 ES2967911 T3 ES 2967911T3
- Authority
- ES
- Spain
- Prior art keywords
- image
- images
- irap
- flag
- field
- 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
- 238000000034 method Methods 0.000 claims description 85
- 230000008569 process Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 6
- 108091000069 Cystinyl Aminopeptidase Proteins 0.000 claims 42
- 102100020872 Leucyl-cystinyl aminopeptidase Human genes 0.000 claims 42
- 230000007246 mechanism Effects 0.000 abstract description 18
- 230000033001 locomotion Effects 0.000 description 85
- 230000009466 transformation Effects 0.000 description 40
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 31
- 238000013139 quantization Methods 0.000 description 24
- 239000013598 vector Substances 0.000 description 20
- 238000007906 compression Methods 0.000 description 19
- 230000006835 compression Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 18
- 238000005192 partition Methods 0.000 description 12
- 241000023320 Luma <angiosperm> Species 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 10
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 241001482237 Pica Species 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 101150103552 cagE gene Proteins 0.000 description 6
- 238000011017 operating method Methods 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000035807 sensation Effects 0.000 description 3
- 235000019615 sensations Nutrition 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Se divulga un mecanismo de codificación de vídeo. El mecanismo incluye recibir un flujo de bits que comprende una bandera y una pluralidad de imágenes codificadas que incluyen una imagen de punto de acceso intraaleatorio (IRAP) y una o más imágenes no principales asociadas con la imagen IRAP. Cuando la bandera se establece en un primer valor, cualquier imagen principal asociada con la imagen IRAP precede, en orden de decodificación, a todas las imágenes no principales asociadas con la imagen IRAP. Cuando la bandera se fija a un segundo valor, una imagen no principal precede, en orden de decodificación, a una imagen principal inicial asociada con la imagen IRAP. La imagen IRAP, cualquier imagen principal asociada con la imagen IRAP y una o más imágenes no principales asociadas con la imagen IRAP se decodifican en orden de decodificación basándose en la bandera. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Codificación de vídeo entrelazado con imágenes principales
CAMPO TÉCNICO DE LA INVENCIÓN
La presente divulgación está relacionada en general con la codificación de vídeo, y está específicamente relacionada con la codificación de imágenes principales/iniciales en un contexto de codificación de vídeo entrelazado.
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 módem. 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 video. 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.
La solicitud de patente de EE. UU., US 2017/105004 A1, divulga un método para acceso aleatorio y, más específicamente, para técnicas y sistemas para codificar una imagen de acceso aleatorio predictiva en base a una imagen de fondo.
La solicitud de patente de EE. UU., US 2016/234527 A1, divulga una bandera para indicar el tipo de unidad NAL de la imagen SHARP.
Y-K WANG (HUAWE) ET. AL.: “AHG12: Signalling for tile and brick partitioning” 126. Reunión de MPEG; 20190325 20190329; GINEBRA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG111), n.2 m47975 26 de marzo de 2019, (2019-03-26) divulga dos bandera para indicar el tipo de escaneo de origen.
La presenta invención está definida por el juego de reivindicación adjuntas.
Los sistemas de vídeo de codificación de vídeo versátil (VVC) pueden emplear un flujo de bits que incluye imágenes IRAP, imágenes principales e imágenes no principales. Las imágenes no principales también se pueden denominar imágenes finales en algunos ejemplos. Una imagen IRAP es una imagen codificada de intrapredicción que actúa como el inicio de una secuencia de vídeo codificada. Una imagen principal es una imagen que precede a la imagen IRAP en el orden de presentación, pero se codifica después de la imagen IRAP en el orden de codificación. Una imagen no principal/final es una imagen que sigue a la imagen IRAP tanto en el orden de presentación como en el orden de codificación. Algunos sistemas de codificación de vídeo requieren que las imágenes principales sigan inmediatamente a la imagen IRAP en el orden de decodificación y que todas las imágenes no principales sigan las imágenes principales. La codificación de vídeo entrelazado es un mecanismo que aumenta la velocidad de fotograma percibida sin aumentar el ancho de banda de transmisión. En la codificación de vídeo entrelazado, un cuadro de vídeo se divide en dos campos. Las líneas horizontales para un primer campo de un fotograma se capturan por primera vez y se codifican en una primera imagen. Las líneas horizontales para un segundo campo de un fotograma se capturan por segunda vez y se codifican en una segunda imagen inmediatamente adyacente a la primera imagen. De esta manera, el cuadro resultante incluye segmentos de una primera imagen en un primer momento y segmentos de una segunda imagen en un segundo, lo que aumenta la sensación de movimiento. Es posible que los sistemas VVC no estén diseñados para admitir vídeo entrelazado. Por ejemplo, un fotograma entrelazado puede emplear una imagen IRAP y una imagen codificada de intrapredicción adyacente para funcionar. La imagen codificada de intrapredicción se considera que son imágenes no principales/finales. Además, cuando se emplean imágenes principales, las imágenes principales se colocarían después de la imagen codificada de intrapredicción adyacente. Esto viola la restricción WC de que las imágenes principales siguen inmediatamente a la imagen IRAP en el orden de decodificación y que todas las imágenes no principales siguen a las imágenes principales. El presente ejemplo incluye una bandera que puede emplearse para implementar codificación de vídeo entrelazado en un sistema VVC que emplea imágenes principales. Cuando la bandera se establece en un primer valor, como cero, las imágenes principales, si las hay, preceden a todas las imágenes no principales. Sin embargo, el codificador puede establecer la bandera en un segundo valor, como uno, para indicar al decodificador que una única imagen no principal se coloca entre la imagen IRAP y cualquier imagen principal. En un ejemplo, es posible que las imágenes no principales no se coloquen entre las imágenes principales. La bandera se puede incluir en un conjunto de parámetros de secuencia (SPS) y se puede aplicar a una secuencia completa de imágenes. Por consiguiente, el presente ejemplo incluye una bandera que aumenta la funcionalidad de un codificador y/o un descodificador al permitir que las imágenes principales y el vídeo entrelazado se implementen juntos en el mismo flujo de bits. Además, el presente ejemplo aumenta la eficacia de codificación del flujo de bits resultante al permitir que las imágenes principales y el vídeo entrelazado se implementen juntos. Como tal, el presente ejemplo puede reducir el uso de recursos de procesador, recursos de memoria y/o recursos de red en el codificador y/o en el decodificador.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, comprendiendo además determinar, por parte del procesador, que no se colocan imágenes principales entre la imagen principal de inicio y una imagen principal final en el orden de decodificación cuando la bandera se establece en el segundo valor.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en donde el flujo de bits incluye un SPS, y en donde la bandera se obtiene del SPS.
Según la invención reivindicada, la bandera es una bandera de campo secuencial (field_seq_flag).
Según también la invención reivindicada, field_seq_flag se establece en uno cuando indica que una secuencia de vídeo codificada incluye imágenes que representan campos, y en donde field_seq_flag se establece en cero cuando indica que la secuencia de vídeo codificada incluye imágenes que representan fotogramas.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en donde la imagen IRAP incluye un primer campo de un fotograma, y en donde la imagen no principal que precede a la imagen principal de inicio incluye un segundo campo del fotograma.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en donde la decodificación de la imagen IRAP y una o más imágenes no principales incluye entrelazar el primer campo de la imagen IRAP y el segundo campo de la imagen no principal que precede a la imagen principal de inicio para crear un solo fotograma.
En una realización, la divulgación incluye un método implementado en un codificador según la reivindicación 5.
Los sistemas de vídeo WC pueden emplear un flujo de bits que incluye imágenes IRAP, imágenes principales e imágenes no principales. Las imágenes no principales también se pueden denominar imágenes finales en algunos ejemplos. Una imagen IRAP es una imagen codificada de intrapredicción que actúa como el inicio de una secuencia de vídeo codificada. Una imagen principal es una imagen que precede a la imagen IRAP en el orden de presentación, pero se codifica después de la imagen IRAP en el orden de codificación. Una imagen no principal/final es una imagen que sigue a la imagen IRAP tanto en el orden de presentación como en el orden de codificación. Algunos sistemas de codificación de vídeo requieren que las imágenes principales sigan inmediatamente a la imagen IRAP en el orden de decodificación y que todas las imágenes no principales sigan las imágenes principales. La codificación de vídeo entrelazado es un mecanismo que aumenta la velocidad de fotograma percibida sin aumentar el ancho de banda de transmisión. En la codificación de vídeo entrelazado, un cuadro de vídeo se divide en dos campos. Las líneas horizontales para un primer campo de un fotograma se capturan por primera vez y se codifican en una primera imagen. Las líneas horizontales para un segundo campo de un fotograma se capturan por segunda vez y se codifican en una segunda imagen inmediatamente adyacente a la primera imagen. De esta manera, el cuadro resultante incluye segmentos de una primera imagen en un primer momento y segmentos de una segunda imagen en un segundo, lo que aumenta la sensación de movimiento. Es posible que los sistemas VVC no estén diseñados para admitir vídeo entrelazado. Por ejemplo, un fotograma entrelazado puede emplear una imagen IRAP y una imagen codificada de intrapredicción adyacente para funcionar. La imagen codificada de intrapredicción se considera que son imágenes no principales/finales. Además, cuando se emplean imágenes principales, las imágenes principales se colocarían después de la imagen codificada de intrapredicción adyacente. Esto viola la restricción WC de que las imágenes principales siguen inmediatamente a la imagen IRAP en el orden de decodificación y que todas las imágenes no principales siguen a las imágenes principales. El presente ejemplo incluye una bandera que puede emplearse para implementar codificación de vídeo entrelazado en un sistema VVC que emplea imágenes principales. Cuando la bandera se establece en un primer valor, como cero, las imágenes principales, si las hay, preceden a todas las imágenes no principales. Sin embargo, el codificador puede establecer la bandera en un segundo valor, como uno, para indicar al decodificador que una única imagen no principal se coloca entre la imagen IRAP y cualquier imagen principal. En un ejemplo, es posible que las imágenes no principales no se coloquen entre las imágenes principales. La bandera se puede incluir en un SPS y se puede aplicar a una secuencia completa de imágenes. Por consiguiente, el presente ejemplo incluye una bandera que aumenta la funcionalidad de un codificador y/o un descodificador al permitir que las imágenes principales y el vídeo entrelazado se implementen juntos en el mismo flujo de bits. Además, el presente ejemplo aumenta la eficacia de codificación del flujo de bits resultante al permitir que las imágenes principales y el vídeo entrelazado se implementen juntos. Como tal, el presente ejemplo puede reducir el uso de recursos de procesador, recursos de memoria y/o recursos de red en el codificador y/o en el decodificador.
En una realización, la divulgación incluye un medio legible por computadora no transitorio según la reivindicación 9 que comprende un producto de programa de computadora para su uso por un dispositivo de codificación de vídeo, el producto de programa de computadora comprende instrucciones ejecutables por computadora almacenadas en el medio legible por computadora 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 realización, la divulgación incluye un decodificador según la reivindicación 10.
En una realización, la divulgación incluye un codificador según la reivindicación 12.
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 FIG. 1 es un diagrama de flujo de un método de ejemplo de codificación de señal de vídeo.
La FIG. 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 FIG. 3 es un diagrama esquemático que ilustra un codificador de vídeo de ejemplo.
La FIG. 4 es un diagrama esquemático que ilustra un decodificador de vídeo de ejemplo.
La FIG. 5 es un diagrama esquemático que ilustra un ejemplo de secuencia de vídeo codificada con imágenes principales.
Las FIGS. 6A-6C son diagramas esquemáticos que ilustran colectivamente un ejemplo de codificación de vídeo entrelazado.
La FIG. 7 es un diagrama esquemático que ilustra un ejemplo de secuencia de vídeo codificada que emplea tanto codificación de vídeo entrelazado e imágenes principales.
La FIG. 8 es un diagrama esquemático que ilustra un ejemplo de flujo de bits configurado para contener tanto codificación de vídeo entrelazado e imágenes principales.
La FIG. 9 es un diagrama esquemático de un dispositivo de codificación de vídeo de ejemplo.
La FIG. 10 es un diagrama de flujo de un método de ejemplo para codificar una secuencia de vídeo con codificación de vídeo entrelazado e imágenes principales en un flujo de bits.
La FIG. 11 es un diagrama de flujo de un método de ejemplo para decodificar una secuencia de vídeo con codificación de vídeo entrelazado e imágenes principales de un flujo de bits.
La FIG. 12 es un diagrama esquemático de un sistema de ejemplo para codificar una secuencia de vídeo con codificación de vídeo entrelazado e imágenes principales en un flujo de bits.
DESCRIPCIÓN DETALLADA
Debe entenderse desde el principio que, aunque a continuación se proporciona una implementación ilustrativa de una o más realizaciones, 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 este documento, pero puede modificarse dentro del alcance de las reivindicaciones adjuntas.
Los siguientes términos se definen como sigue a menos que se utilicen en un contexto contrario en este documento. Específicamente, las siguientes definiciones están destinadas a proporcionar claridad adicional a la presente divulgación. Sin embargo, los términos pueden describirse de manera diferente en diferentes contextos. Por consiguiente, las siguientes definiciones deben considerarse como un suplemento y no deben considerarse como limitantes de ninguna otra definición de descripciones proporcionadas para dichos términos en este documento.
Un flujo de bits es una secuencia de bits que incluye datos de vídeo que se comprimen para su transmisión entre un codificador y un descodificador. Un codificador es un dispositivo que está configurado para emplear procesos de codificación para comprimir datos de vídeo en un flujo de bits. Un decodificador es un dispositivo que está configurado para emplear procesos de decodificación para reconstruir datos de vídeo a partir de un flujo de bits para su visualización. Una bandera es un bit o grupo de bits codificados en un flujo de bits que señala los mecanismos empleados por un codificador durante la codificación y, por lo tanto, indica los mecanismos que debe emplear un decodificador durante la decodificación para reconstruir con precisión los datos de vídeo del flujo de bits. La intrapredicción es un mecanismo de codificación de una imagen en referencia a sí misma de modo que la imagen se pueda reconstruir sin hacer referencia a otras imágenes. La interpredicción es un mecanismo de codificación de una imagen por referencia a una o más imágenes. Unas imágenes de punto de acceso intraaleatorio (IRAP) es una imagen que se codifica de acuerdo con la intrapredicción y que actúa como punto de partida para una secuencia de vídeo codificada. Una imagen principal es una imagen codificada después de una imagen IRAP asociada en orden de codificación, pero que precede a la imagen IRAP asociada en orden de salida. Una imagen no principal, que también puede denominarse imagen final, es una imagen que sigue a una imagen IRAP tanto en el orden de codificación como en el orden de salida. La codificación de vídeo entrelazado es un mecanismo de codificación de vídeo que codifica un primer campo de datos de vídeo por primera vez en una primera imagen, codifica un segundo campo de datos de vídeo por segunda vez en una segunda imagen y combina el primer campo y el segundo campo en un solo fotograma para la presentación con el fin de dar la impresión de una mayor velocidad de fotogramas. Un fotograma es una imagen completa que está destinada a ser mostrada completa o parcialmente a un usuario en un instante correspondiente en una secuencia de vídeo. Una imagen es un fotograma, excepto en los contextos relacionados con el vídeo entrelazado, en cuyo caso una imagen es un campo de un fotograma. Un conjunto de parámetros es una porción de un flujo de bits que señala datos, como banderas y otros parámetros, para la sección correspondiente de una secuencia de vídeo codificada. Una bandera de campo secuencial (field_seq_flag) es una bandera, que se usa para vídeo entrelazado y que señala cuando una imagen no principal se coloca entre una imagen IRAP y las imágenes principales en orden de codificación.
En este documento se utilizan los siguientes acrónimos: 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), Conteo de orden de imágenes (POC), Carga útil de secuencia de bytes sin procesar (RBSP), Conjunto de parámetros de secuencia (SPS) 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, intra-imagen) 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 (CTBs), unidades de árbol de codificación (CTUs), unidades de codificación (CUs) 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) inter-codificado 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 fotogramas y/o imágenes, y las imágenes de referencia pueden denominarse fotogramas 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 una matriz 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 H<e>V<c>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 (VVC). VVC se incluye en un borrador de trabajo (WD), que incluye JVET-L1001 -v7.
Los sistemas de codificación de vídeo pueden codificar vídeo empleando imágenes IRAP e imágenes no IRAP. Las imágenes IRAP son imágenes codificadas de acuerdo con la intrapredicción que sirven como puntos de acceso aleatorio para una secuencia de vídeo. En la intrapredicción, los bloques de una imagen se codifican por referencia a otros bloques de la misma imagen. Esto contrasta con las imágenes que no son de IRAP que emplean la interpredicción. En la interpredicción, los bloques de una imagen actual se codifican por referencia a otros bloques en una imagen de referencia que es diferente de la imagen actual. Dado que una imagen IRAP se codifica sin referencia a otras imágenes, la imagen IRAP se puede decodificar sin decodificar primero ninguna otra imagen. En consecuencia, un decodificador puede comenzar a decodificar una secuencia de vídeo en cualquier imagen IRAP. Por el contrario, una imagen que no es IRAP se codifica en referencia a otras imágenes y, por lo tanto, un decodificador generalmente no puede comenzar a decodificar una secuencia de vídeo en una imagen que no es IRAP. Las imágenes IRAP también pueden actualizar el búfer de imágenes decodificadas (DPB). Esto se debe a que la imagen IRAP es un punto de partida para una secuencia de vídeo codificada (CVS), y las imágenes en CVS no se refieren a imágenes en CVS anterior. Como tal, las imágenes IRAP también pueden detener los errores de codificación relacionados con la predicción mutua porque dichos errores no se pueden propagar a través de la imagen IRAP. Sin embargo, las imágenes IRAP son significativamente más grandes que las imágenes no IRAP desde el punto de vista del tamaño de los datos. Como tal, una secuencia de vídeo generalmente incluye muchas imágenes que no son IRAP con un número menor de imágenes IRAP intercaladas para equilibrar la eficiencia de la codificación con la funcionalidad. Por ejemplo, una CVS de sesenta fotogramas puede incluir una imagen IRAP y cincuenta y nueve imágenes que no son IRAP. En consecuencia, las imágenes IRAP reducen la eficiencia de compresión en un flujo de bits. Además, la presencia de una imagen IRAP en un flujo de bits provoca un aumento en la tasa de bits. Esta penalización de la eficiencia de la compresión se debe en parte al hecho de que la intrapredicción emplea significativamente más bits para representar una imagen que la interpredicción. Además, las imágenes IRAP pueden actualizar el proceso de decodificación y eliminar las imágenes de referencia del DPB. Esto reduce el número de imágenes de referencia disponibles para la interpredicción cuando se codifican las imágenes que siguen a la imagen IRAP y, por tanto, reduce temporalmente la eficiencia del proceso de interpredicción.
Los sistemas de codificación de vídeo también pueden emplear imágenes principales. Una imagen principal es una imagen que se coloca después de una imagen IRAP en el orden de codificación y antes de la imagen IRAP en el orden de presentación. Pueden emplearse imágenes principales cuando se puede predecir eficazmente una imagen correspondiente a partir de la imagen IRAP incluso aunque la imagen deba presentarse antes que la imagen IRAP. Dicha imagen se coloca después de la imagen IRAP en orden de codificación para permitir que la imagen IRAP se emplee como imagen de referencia para la interpredicción. A continuación, el decodificador puede intercambiar el orden de la imagen principal y la imagen IRAP antes de la presentación para crear un orden de presentación diferente. Las imágenes principales pueden incluir imágenes principales omitidas de acceso aleatorio (RASL) e imágenes principales decodificables de acceso aleatorio (RADL). Una imagen RASL también puede depender de imágenes anteriores a la imagen IRAP y se omite cuando la imagen IRAP se utiliza como punto de acceso aleatorio. Esto se debe a que estas otras imágenes no se decodifican y, por lo tanto, no están disponibles como otras imágenes de referencia cuando la decodificación comienza desde la imagen IRAP. Una imagen RADL se basa únicamente en la imagen IRAP u otras imágenes entre la imagen RADL y la imagen IRAP por referencia. Por lo tanto, las imágenes RADL se decodifican incluso cuando se utiliza el IRAP como un punto de acceso aleatorio. Esto se debe a que se garantiza que cualquier imagen a la que pueda hacer referencia la imagen RADL se decodificará incluso cuando la codificación comience en la imagen IRAP. Los sistemas de codificación de vídeo pueden requerir que las imágenes principales se coloquen inmediatamente después de la imagen IRAP a la que hacen referencia en el orden de decodificación. Las imágenes finales asociadas siguen a las imágenes principales en orden de decodificación.
La codificación de vídeo emplea una amplia gama de mecanismos. Por ejemplo, la codificación entrelazada codifica un fotograma en más de un campo y en más de una imagen. Por ejemplo, un fotograma se puede dividir en un campo par y un campo impar. Un campo par de un fotograma entrelazado contiene muestras de las líneas horizontales numeradas pares del fotograma y un campo impar de un fotograma entrelazado contiene muestras de las líneas horizontales numeradas impares del fotograma. Como ejemplo específico, el campo par puede capturarse por primera vez y almacenarse en una primera imagen. El campo impar puede capturarse por segunda vez y almacenarse en una segunda imagen. La inclusión de los dos campos en el mismo cuadro aumenta la sensación de movimiento. Como tal, la codificación entrelazada crea la impresión de una mayor velocidad de fotogramas sin aumentar el ancho de banda de la secuencia de vídeo. Es posible que la codificación entrelazada no sea compatible de forma nativa con sistemas de codificación estandarizados. Sin embargo, la codificación entrelazada se puede gestionar en algunos sistemas mediante el empleo de elementos de sintaxis en la información de usabilidad de vídeo (VUI) para indicar que un flujo de bits es un tren de bits codificado entrelazado. Dichos elementos de sintaxis pueden incluir un field_seq_flag y un general_frame_only_constraint_flag.
Los sistemas de codificación de vídeo estandarizados que emplean imágenes principales no están configurados para admitir codificación de vídeo entrelazado. Por ejemplo, VVC y HEVC pueden emplear un orden de codificación que requiera que una imagen IRAP vaya seguida de imágenes principales, si las hubiera. A continuación, las imágenes principales van seguidas de imágenes no principales/finales. Tal orden evita que las imágenes no principales se coloquen entre la imagen IRAP y las imágenes principales asociadas. Sin embargo, en un contexto de codificación de vídeo entrelazado, la trama IRAP se divide entre dos campos en dos imágenes. La primera imagen con el primer campo se codifica como una imagen IRAP. La segunda imagen con el segundo campo se codifica como una imagen no principal/final en lugar de una imagen IRAP porque la segunda imagen no se puede utilizar como un punto de acceso aleatorio. Esto se debe a que se necesitan ambas imágenes para comenzar a decodificar y, por lo tanto, no se puede omitir la primera imagen. Las dos imágenes que componen el marco IRAP deben colocarse una al lado de la otra para una codificación eficiente. Sin embargo, colocar la imagen no principal con el segundo campo IRAP adyacente a la imagen IRAP con el primer campo IRAP viola el orden de codificación VVC y HEVC. Esto se debe a que dicho posicionamiento coloca una imagen no principal antes de cualquier imagen principal.
En este documento se describen mecanismos para configurar un sistema de codificación de vídeo que emplea imágenes principales para codificar vídeo entrelazado. Por ejemplo, se puede emplear una bandera para implementar la codificación de vídeo entrelazado en un sistema VVC que emplea imágenes principales. La bandera se puede emplear para señalar a un decodificador cuando puede estar presente una imagen no principal entre la imagen IRAP y cualquier imagen principal. El decodificador puede leer la bandera y ajustar el orden según lo desee para admitir la codificación de vídeo entrelazado. Cuando la bandera se establece en un primer valor, como cero, las imágenes principales, si las hay, preceden a todas las imágenes no principales. Sin embargo, el codificador puede establecer la bandera en un segundo valor, como uno, para indicar al decodificador que una única imagen no principal se coloca entre la imagen IRAP y cualquier imagen principal. En un ejemplo, es posible que las imágenes no principales no se coloquen entre las imágenes principales. Por ejemplo, una bandera de campo secuencial (field_seq_flag) se puede emplear para este propósito. La bandera se puede incluir en un conjunto de parámetros de secuencia (SPS) y se puede aplicar a una secuencia completa de imágenes. Cabe señalar que, en el contexto de vídeo entrelazado, un fotograma puede incluir varias imágenes (por ejemplo, dos). Sin embargo, fuera del contexto de vídeo entrelazado, un fotograma incluye una sola imagen y, por tanto, el término fotograma y el término imagen se pueden utilizar indistintamente. En consecuencia, el uso de los términos fotograma e imagen a continuación no debe considerarse limitativo a menos que se use en el contexto de la codificación entrelazada.
La FIG. 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 fotogramas de imagen que, cuando se ven en una secuencia, dan la impresión visual de movimiento. Los fotogramas contienen píxeles que se expresan en términos de luz, denominados en este documento componentes de luma (o muestras de luma), y color, que se denomina componentes de croma (o muestras de color). En algunos ejemplos, los fotogramas 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 fotograma 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) el fotograma 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 CTUs contienen muestras de luma y croma. Pueden emplearse árboles de codificación para dividir las CTUs 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 un fotograma pueden subdividirse hasta que los bloques individuales contengan valores de iluminación relativamente homogéneos. Además, los componentes de croma de un fotograma pueden subdividirse hasta que los bloques individuales contengan valores de color relativamente homogéneos. En consecuencia, los mecanismos de partición varían según el contenido de los fotogramas 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 fotograma sucesivos. Por consiguiente, un bloque que representa un objeto en un fotograma de referencia no necesita describirse repetidamente en marcos adyacentes. Específicamente, un objeto, como una mesa, puede permanecer en una posición constante en varios fotogramas. Por lo tanto, la mesa se describe una vez y los fotogramas adyacentes pueden hacer referencia al fotograma de referencia. Pueden emplearse mecanismos de coincidencia de patrones para hacer coincidir objetos en múltiples fotograma. Además, los objetos en movimiento se pueden representar en varios fotogramas, 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 un fotograma actual como un conjunto de vectores de movimiento que indican un desplazamiento de un bloque correspondiente en un fotograma de referencia.
La intrapredicción codifica bloques en un fotograma común. La intrapredicción aprovecha el hecho de que los componentes de luma y croma tienden a agruparse en un fotograma. 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 de bucle adaptativo y filtros de compensación adaptativa de muestra (SAO) a los bloques / fotogramas. 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 partición, datos de predicción, bloques residuales y varias banderas/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 muchos fotogramas y bloques. El orden mostrado en la FIG. 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 los fotogramas 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 partición 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 este documento, 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 fotogramas de una señal de vídeo reconstruida de acuerdo con los datos de partición 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 los fotogramas 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 de bucle adaptativo y filtros SAO a los fotogramas para eliminar los artefactos de bloque. Una vez que se filtran los fotogramas, la señal de vídeo se puede enviar a una pantalla en el paso 117 para visualización por un usuario final.
La FIG. 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 FIG. 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 (CUs) 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 triple (TT) y un árbol cuádruple (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. Un fotograma 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 uno o más fotogramas 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 (CTBs) y CU. Por ejemplo, una CTU se puede dividir en CTBs, que luego se pueden dividir en CBs para su inclusión en las CUs. 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 / fotograma 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 un fotograma 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 fotogramas, 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 residual transformada, 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 FIG. 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 partición 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 FIG. 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 FIG. 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 el fotograma 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 fotogramas a través de la información de partición. Estos fotogramas 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 FIG. 5 es un diagrama esquemático que ilustra un ejemplo de CVS 500 con imágenes principales. Por ejemplo, la CVS 500 puede codificarse mediante un codificador, como el sistema de códec 200 y/o el codificador 300, de acuerdo con el método 100. Además, la CVS 500 puede decodificarse mediante un decodificador, como el sistema de códec 200 y/o el decodificador 400. La CVS 500 incluye imágenes codificadas en un orden de decodificación 508. Un orden de decodificación 508 es un orden en el que las imágenes se colocan en un flujo de bits. Las imágenes de la CVS 500 se emiten luego en un orden de presentación 510. Un orden de presentación 510 es un orden en el que un decodificador debe mostrar las imágenes para hacer que el vídeo resultante se muestre correctamente. Por ejemplo, las imágenes de la CVS 500 se pueden colocar generalmente en el orden de presentación 510. Sin embargo, ciertas imágenes se pueden mover a diferentes ubicaciones para aumentar la eficiencia de la codificación, por ejemplo, colocando imágenes similares en una proximidad más cercana para apoyar la interpredicción. Mover tales imágenes de esta manera da como resultado el orden de decodificación 508. En el ejemplo mostrado, las imágenes están indexadas en el orden de decodificación 508 de cero a cuatro. En el orden de presentación 510, las imágenes en el índice dos y el índice tres se han movido delante de la imagen en el índice cero.
La CVS 500 incluye una imagen IRAP 502. Una imagen IRAP 502 es una imagen codificada de acuerdo con la predicción interna que sirve como un punto de acceso aleatorio para CVS 500. Específicamente, los bloques de la imagen IRAP 502 se codifican por referencia a otros bloques de la imagen IRAP 502. Dado que la imagen IRAP 502 se codifica sin referencia a otras imágenes, la imagen IRAP 502 puede decodificarse sin decodificar primero ninguna otra imagen. En consecuencia, un decodificador puede comenzar a decodificar la CVS 500 en la imagen IRAP 502. Además, la imagen IRAP 502 puede hacer que se actualice el DPB. Por ejemplo, la mayoría de las imágenes presentadas después de una imagen IRAP 502 pueden no basarse en imágenes anteriores a la imagen IRAP 502 (por ejemplo, índice de imagen cero) para la interpredicción. Como tal, el búfer de imágenes se puede actualizar una vez que se decodifica la imagen IRAP 502. Esto tiene el efecto de detener cualquier error de codificación relacionado con la interpredicción porque tales errores no se pueden propagar a través de la imagen IRAP 502. La imagen IRAP 502 puede incluir varios tipos de imágenes. Por ejemplo, una imagen IRAP puede codificarse como una actualización instantánea del decodificador (IDR) o un Acceso aleatorio limpio (CRA). Un IDR es una imagen intracodificada que inicia una nueva CVS 500 y actualiza el búfer de imágenes. Un CRA es una imagen intracodificada que actúa como un punto de acceso aleatorio sin iniciar un nuevo CVS 500 ni actualizar la memoria intermedia de imágenes. De esta manera, las imágenes principales 504 asociadas con un CRA pueden hacer referencia a imágenes anteriores al CRA, mientras que las imágenes principales 504 asociadas con un IDR pueden no hacer referencia a imágenes anteriores al IDR.
La CVS 500 también incluye varias imágenes que no son IRAP. Estos incluyen imágenes principales 504 e imágenes finales 506. Una imagen principal 504 es una imagen colocada después de la imagen IRAP 502 en el orden de decodificación 508, pero colocada antes de la imagen IRAP 502 en el orden de presentación 510. Las imágenes finales 506 se colocan después de la imagen IRAP 502 tanto en el orden de decodificación 508 como en el orden de presentación 510. Las imágenes principales 504 y las imágenes finales 506 se codifican ambas de acuerdo con la predicción mutua en la mayoría de los casos. Las imágenes finales 506 se codifican en referencia a la imagen IRAP 502 o las imágenes colocadas después de la imagen IRAP 502. Por tanto, las imágenes finales 506 siempre se pueden decodificar una vez que se decodifica la imagen IRAP 502. Las imágenes principales 504 pueden incluir imágenes principales omitidas de acceso aleatorio (RASL) y principales decodificables de acceso aleatorio (RADL). Una imagen RASL se codifica por referencia a imágenes anteriores a la imagen IRAP 502, pero codificada en una posición después de la imagen IRAP 502. Como las imágenes RASL se basan en imágenes anteriores, la imagen RASL no se puede decodificar cuando el decodificador comienza a decodificar en la imagen IRAP 502. Por consiguiente, las imágenes RASL se omiten y no se decodifican cuando se usa la imagen IRAP 502 como un punto de acceso aleatorio. Sin embargo, las imágenes RASL se decodifican y visualizan cuando el decodificador utiliza una imagen IRAP anterior (antes del índice cero y no mostrada) como punto de acceso aleatorio. Las imágenes RADL se codifican en referencia a la imagen IRAP 502 y/o las imágenes que siguen a la imagen IRAP 502, pero se colocan antes de la imagen IRAP 502 en el orden de presentación. Dado que las imágenes RADL no se basan en imágenes anteriores a la imagen IRAP 502, las imágenes RADL se pueden decodificar y visualizar cuando la imagen IRAP 502 es el punto de acceso aleatorio.
Las FIGS. 6A-6C son diagramas esquemáticos que ilustran colectivamente un ejemplo de codificación de vídeo entrelazado. La codificación de vídeo entrelazado genera un fotograma 600 de vídeo entrelazado, como se muestra en la FIG. 6C, a partir de una primera imagen 601 y una segunda imagen 602, como se muestra en las FIGs. 6A y 6B. Por ejemplo, la codificación de vídeo entrelazado puede ser empleado por un codificador, como el sistema de códec 200 y/o el codificador 300, cuando se codifica vídeo que contiene un fotograma de vídeo entrelazado 600 como parte del método 100. Además, un decodificador, como el sistema de códec 200 y/o el decodificador 400, puede decodificar vídeo que incluye un fotograma de vídeo entrelazado 600. Además, un fotograma de vídeo entrelazado 600 puede codificarse en una CVS, como la CVS 500, como se describe con más detalle con respecto a la FIG. 7 a continuación.
Cuando se realiza la codificación de vídeo entrelazado, se captura un primer campo 610 por primera vez y se codifica en una primera imagen 601 como se muestra en la FIG. 6A. El primer campo 610 incluye líneas horizontales de datos de vídeo. Específicamente, las líneas horizontales de datos de vídeo en el primer campo 610 se extienden desde el límite izquierdo de la primera imagen 601 hasta el límite derecho de la primera imagen 601. Sin embargo, el primer campo 610 omite filas alternas de datos de vídeo. En una implementación de ejemplo, el primer campo 610 contiene la mitad de los datos de vídeo capturados por un dispositivo de captura de vídeo la primera vez.
Como se muestra en la FIG. 6B, se captura un segundo campo 612 por segunda vez y se codifica en una segunda imagen 602. Por ejemplo, la segunda vez puede estar inmediatamente después de la primera por un valor establecido con base en una velocidad de fotogramas establecida para un vídeo. Por ejemplo, en un vídeo configurado para mostrarse a una velocidad de fotogramas de quince fotogramas por segundo (FPS), la segunda vez puede ocurrir una quinceava parte de un segundo después de la primera vez. Como se muestra, el segundo campo 612 incluye líneas horizontales de datos de vídeo que son complementarias a las líneas horizontales del primer campo 610 de la primera imagen 601. Específicamente, las líneas horizontales de datos de vídeo en el segundo campo 612 se extienden desde el límite izquierdo de la segunda imagen 602 hasta el límite derecho de la segunda imagen 602. El segundo campo 612 contiene las líneas horizontales omitidas por el primer campo 610. Además, el segundo campo 612 omite las líneas horizontales contenidas en el primer campo 610.
El primer campo 610 de la primera imagen 601 y el segundo campo 612 de la segunda imagen 602 pueden combinarse para su visualización en un decodificador como un cuadro 600 de vídeo entrelazado como se muestra en la FIG. 6C. Específicamente, el cuadro de vídeo entrelazado 600 contiene el primer campo 610 de la primera imagen 601 capturada en la primera vez y el segundo campo 612 de la segunda imagen 602 capturada en la segunda vez. Tal combinación tiene el efecto visual de enfatizar y/o exagerar el movimiento. Cuando se muestra como parte de un vídeo, una serie de fotogramas de vídeo entrelazados 600 crea la impresión de que el vídeo está codificado a una velocidad de fotogramas aumentada sin la necesidad de codificar realmente los fotogramas adicionales. De esta manera, la codificación de vídeo entrelazado que emplea un fotograma de vídeo entrelazado 600 puede aumentar la tasa de fotogramas efectiva de un vídeo sin un aumento concomitante en el tamaño de los datos de vídeo. Como tal, la codificación de vídeo entrelazado puede aumentar la eficiencia de codificación de una secuencia de vídeo codificada.
La FIG. 7 es un diagrama esquemático que ilustra una CVS 700 de ejemplo que emplea tanto codificación de vídeo entrelazado, por ejemplo, para crear un fotograma de vídeo entrelazado 600, e imágenes principales. La CVS 700 es sustancialmente similar a CVS 500, pero está modificado para codificar imágenes con campos, tales como la primera imagen 601 y la segunda imagen 602, conservando las imágenes principales. Por ejemplo, la CVS 700 puede codificarse mediante un codificador, como el sistema de códec 200 y/o el codificador 300, de acuerdo con el método 100. Además, la CVS 700 puede decodificarse mediante un decodificador, como el sistema de códec 200 y/o el decodificador 400.
La CVS 700 tiene un orden de decodificación 708 y un orden de presentación 710, que operan de una manera sustancialmente similar al orden de decodificación 508 y el orden de presentación 510, respectivamente. La CVS 700 también contiene una imagen IRAP 702, imágenes principales 704 e imágenes finales 706, que son similares a la imagen IRAP 502, imágenes principales 504 e imágenes finales 506. La diferencia es que la imagen IRAP 702, las imágenes principales 704 y las imágenes finales 706 se codifican todas empleando campos de una manera sustancialmente similar al primer campo 610 y al segundo campo 612 como se describe con respecto a las FIGs. 6A-6C. Como tal, cada fotograma incluye dos imágenes. En consecuencia, la CVS 700 contiene el doble de imágenes que la CVS 500. Sin embargo, la CVS 700 contiene aproximadamente la misma cantidad de datos que la CVS 500 porque cada una de las imágenes de la CVS 700 omite la mitad del fotograma.
Un problema con CVS 700 es que la imagen IRAP 702 está codificada incluyendo un primer campo de datos codificados de intrapredicción. El segundo campo de datos codificados de intrapredicción se incluye entonces en una imagen no principal 703. La imagen no principal 703 no es una imagen IRAP 702 porque un decodificador no puede comenzar a decodificar la CVS 700 en la imagen no principal 703. Esto se debe a que al hacerlo se omitiría la mitad del fotograma asociada con la imagen IRAP 702. Esto crea un problema porque los sistemas de codificación de vídeo que emplean VVC pueden estar limitados a colocar las imágenes principales 704 inmediatamente después de la imagen IRAP 702 en el orden de decodificación 708.
La presente divulgación permite que la CVS 700 sea empleado por un sistema VVC. Específicamente, se puede señalar una bandera para indicar cuándo se permite colocar una única imagen no principal 703 entre la imagen IRAP 702 y las imágenes principales 704. El sistema de vídeo aún puede estar limitado para evitar que las imágenes no principales 703 y/o las imágenes posteriores 706 se coloquen entre las imágenes principales 704. En consecuencia, la bandera puede indicar que el orden de decodificación 708 incluye una imagen IRAP 702, una única imagen no principal 703, cualquier imagen principal 704 (por ejemplo, las imágenes principales 704 son opcionales y pueden omitirse en algunos ejemplos), y luego una o más imágenes finales 706. Como tal, la bandera puede indicar al decodificador si espera una CVS 500 o una CVS 700. En algunos ejemplos, una field_seq_flag en una SPS se puede emplear para el propósito que se describe a continuación.
La FIG. 8 es un diagrama esquemático que ilustra un ejemplo de flujo de bits 800 configurado para contener tanto codificación de vídeo entrelazado e imágenes principales. Por ejemplo, el flujo de bits 800 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 acuerdo con el método 100. Además, el flujo de bits 800 puede incluir una CVS 500 y/o 700. Como tal, el flujo de bits 800 puede incluir una primera imagen 601 y una segunda imagen 602 que se pueden combinar para crear un fotograma de vídeo entrelazado 600. Además, el flujo de bits 800 puede incluir imágenes principales 504 y/o 704.
El flujo de bits 800 incluye un SPS 810, una pluralidad de conjuntos de parámetros de imagen (PPSs) 811, una pluralidad de encabezados de segmento 815 y datos de imagen 820. Un SPS 810 contiene datos de secuencia comunes a todas las imágenes de la secuencia de vídeo codificada contenida en el flujo de bits 800. Estos datos pueden incluir el tamaño de la imagen, la profundidad de bits, los parámetros de la herramienta de codificación, las restricciones de la tasa de bits, etc. El PPS 811 contiene parámetros que se aplican a una imagen completa. Por tanto, cada imagen en la secuencia de vídeo puede referirse a un PPS 811. Cabe señalar que, si bien cada imagen se refiere a un PPS 811, un solo PPS 811 puede contener datos para varias imágenes en algunos ejemplos. Por ejemplo, se pueden codificar varias imágenes similares de acuerdo con parámetros similares. En tal caso, un solo PPS 811 puede contener datos para imágenes similares. El PPS 811 puede indicar las herramientas de codificación disponibles para los segmentos en las imágenes correspondientes, los parámetros de cuantificación, las compensaciones/desplazamientos, etc. El encabezado de segmento 815 contiene parámetros específicos para cada segmento de una imagen. Por lo tanto, puede haber un encabezado de segmento 815 por segmento en la secuencia de vídeo. El encabezado de segmento 815 puede contener información del tipo de segmento, conteos de orden de imágenes (POC), listas de imágenes de referencia, pesos/ponderaciones de predicción, puntos de entrada de mosaico, parámetros de desbloqueo, etc. Cabe señalar que el encabezado de segmento 815 también puede denominarse encabezado de grupo de mosaicos en algunos contextos.
Los datos de imagen 820 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. Por ejemplo, una secuencia de vídeo incluye una pluralidad de fotogramas 821. Un fotograma 821 es una imagen completa que está destinada a la visualización completa o parcial a un usuario en un instante correspondiente en una secuencia de vídeo. Un fotograma 821 puede incluir una o más imágenes 823. En la mayoría de los contextos, un fotograma 821 incluye una única imagen 823. En tal caso, una imagen 823, una imagen / fotograma 821 contenida en una sola unidad de acceso (AU). Sin embargo, en un contexto de vídeo entrelazado, una imagen 823 es un campo de líneas horizontales, tal como un primer campo 610 o un segundo campo 612, contenido en una AU. Como tal, un fotograma 821 se puede generar a partir de dos imágenes 823 cuando se emplea codificación de vídeo entrelazado. Una imagen 823 contiene uno o más segmentos 825. Un segmento 825 puede definirse como un número entero de mosaicos completos o un número entero de filas consecutivas de unidades de árbol de codificación completas (CTU) (por ejemplo, dentro de un mosaico) de una imagen 823 que están exclusivamente contenidas en una sola unidad de capa de abstracción de red (NAL). Por lo tanto, los segmentos 725 se dividen a su vez en CTUs y/o bloques de árbol de codificación (CTB). Los CTUs/CTBs 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.
Según la invención reivindicada, el flujo de bits 800 incluye una field_seq_flag 827. Se puede configurar field_seq_flag 827 a un primer valor cuando las imágenes principales asociadas con una imagen IRAP preceden, en orden de codificación, a todas las imágenes no principales asociadas con la imagen IRAP como se muestra en la CVS 500. La bandera puede establecerse en un segundo valor cuando una imagen no principal precede, en orden de codificación, una imagen principal inicial asociada con la imagen IRAP y no se colocan imágenes principales entre la imagen principal inicial y una imagen principal final en el orden de decodificación como mostrado en la CVS 700. En este caso, la imagen IRAP incluye un primer campo de un fotograma, y la imagen no principal que precede a la imagen principal inicial incluye un segundo campo del fotograma. En el ejemplo mostrado, la field_seq_flag 827 puede estar contenido en la SPS 810. Como ejemplo específico, field_seq_flag 827 puede ser establecida en uno cuando se indica que una secuencia de vídeo codificada incluye imágenes 823 que representan campos del fotograma 821 o se establece en cero cuando se indica que la secuencia de vídeo codificada incluye imágenes 823 que cada una representa un fotograma completo 821. En consecuencia, un decodificador puede leer la field_seq_flag 827 para determinar cuándo la decodificación de la imagen IRAP y una o más imágenes no principales debe incluir entrelazar el primer campo de la imagen IRAP y el segundo campo de la imagen no principal que precede a la imagen principal inicial para crear un solo fotograma. Como tal, la field_seq_flag 827 permite emplear codificación de vídeo entrelazado junto con imágenes principales. Como tal, emplear la field_seq_flag 827 aumenta la funcionalidad de un codificador y/o decodificador. Además, emplear la field_seq_flag 827 puede aumentar la eficiencia de codificación de un flujo de bits 800 al permitir que se incremente una velocidad de fotograma efectiva sin aumentar significativamente la cantidad de datos necesarios para codificar una secuencia de vídeo. Como tal, emplear la field_seq_flag 827 puede reducir el uso de procesador, memoria y/o recursos de transmisión de red en un codificador y/o decodificador.
La información anterior se describe ahora con más detalle a continuación. Las imágenes IRAP proporcionan varias funcionalidades beneficiosas, pero suponen una penalización para la eficiencia de la compresión. La presencia de una imagen IRAP puede provocar un aumento en la tasa de bits. Esta penalización en la eficiencia de la compresión puede deberse a múltiples razones. Por ejemplo, una imagen IRAP es una imagen intrapredicha y, por tanto, la imagen IRAP requiere más bits para representar en comparación con las imágenes interpredichas. Además, la presencia de una imagen IRAP puede romper la predicción temporal. Esto se debe a que un decodificador puede actualizar el proceso de decodificación al recibir una imagen IRAP, lo que da como resultado la eliminación de imágenes de referencia anteriores en el DPB. Esto puede hacer que la codificación de imágenes que siguen a la imagen IRAP en el orden de decodificación sea menos eficiente porque tienen acceso a menos imágenes de referencia al realizar la codificación de interpredicción.
Entre los tipos de imágenes que se utilizan como imágenes IRAP, las imágenes IDR pueden emplear diferentes señales y derivaciones en comparación con otros tipos de imágenes. Algunas de las diferencias son las siguientes. Al señalizar y/o derivar un valor POC de una imagen IDR, es posible que la parte del bit más significativo (MSB) del POC no se derive de una imagen clave anterior. En cambio, el MSB del POC puede establecerse para que sea igual a cero. Además, un encabezado de segmento de una imagen IDR puede no contener información para ayudar al decodificador a realizar la gestión de la imagen de referencia. Para otros tipos de imágenes, como CRA, acceso final y de subcapa temporal (TSA), información como un conjunto de imágenes de referencia (RPS) o listas de imágenes de referencia puede estar contenida en un encabezado de segmento y emplearse para el proceso de marcado de imágenes de referencia. El proceso de marcado de imágenes se emplea para determinar el estado de las imágenes de referencia en el DPB, ya sea que se utilicen como referencia o no se utilicen como referencia. Sin embargo, para las imágenes IDR, dicha información puede no ser señalizada porque la presencia de IDR indica que el proceso de decodificación simplemente marcará todas las imágenes de referencia en el DPB como no utilizadas como referencia.
Además, las imágenes principales se pueden asociar con un IRAP. Las imágenes principales son imágenes que siguen a su imagen IRAP asociada en el orden de decodificación, pero preceden a la imagen IRAP en el orden de salida. Dependiendo de la configuración de codificación y la estructura de referencia de imágenes, las imágenes principales se pueden identificar en dos tipos. El primer tipo de imágenes, conocidas como imágenes RASL, son imágenes principales que pueden no decodificarse correctamente cuando el proceso de decodificación comienza en una imagen IRAP asociada. Esto puede suceder porque estas imágenes principales están codificadas con referencia a imágenes que preceden a la imagen IRAP en el orden de decodificación. El segundo tipo de imágenes, conocidas como imágenes RADL, son las imágenes principales que se decodificarán correctamente incluso cuando se inicia un proceso de decodificación en una imagen IRAP asociada. Esto es posible porque estas imágenes principales están codificadas sin hacer referencia, directa o indirectamente, a las imágenes que preceden a la imagen IRAP en el orden de decodificación. En algunos sistemas de codificación de vídeo, las imágenes RASL asociadas con imágenes IRAP están limitadas a preceder a las imágenes RADL asociadas con la misma imagen IRAP en el orden de salida.
Las imágenes IRAP y las imágenes principales pueden recibir diferentes tipos de unidades NAL para que puedan identificarse fácilmente mediante aplicaciones a nivel del sistema. Por ejemplo, un empalmador (“splicer”) de vídeo puede comprender los tipos de imágenes codificadas sin tener que considerar elementos de sintaxis detallados en el flujo de bits codificado. Por ejemplo, el empalme puede necesitar identificar imágenes IRAP de imágenes que no son IRAP e identificar imágenes principales, incluida la determinación de imágenes RASL y RADL, a partir de imágenes finales. Las imágenes finales son aquellas que están asociadas con una imagen IRAP y siguen a la imagen IRAP en orden de salida. Una imagen actual se asocia con una imagen IRAP cuando la imagen actual sigue a la imagen IRAP en el orden de decodificación y precede a cualquier otra imagen IRAP en el orden de decodificación. Como tal, proporcionar IRAP e imágenes principales con el tipo de unidad NAL correspondiente respalda la funcionalidad de dichas aplicaciones.
En algunos sistemas de codificación de vídeo, los tipos de unidades NAL para IRAP y las imágenes principales pueden incluir lo siguiente. Un acceso de enlace roto (BLA) con imagen principal (BLA_W_LP) es una unidad NAL para una imagen BLA que puede ir seguida de una o más imágenes principales en orden de decodificación. Un BLA con RADL (BLA_W_RADL) es una unidad NAL para una imagen BLA que puede ir seguida de una o más imágenes RADL, pero ninguna imagen RASL en orden de decodificación. Un BLA sin imagen principal (BLA_N_LP) es una unidad NAL de una imagen BLA que no va seguida de una imagen principal en el orden de decodificación. Un IDR con RADL (IDR_W_RADL) es una unidad NAL de una imagen IDR que puede ir seguida de una o más imágenes RADL, pero no una imagen RASL, en orden de decodificación. Un IDR sin imagen principal (IDR_N_LP) es una unidad NAL de una imagen IDR que no va seguida de una imagen principal en el orden de decodificación. Una CRA es una unidad NAL de una imagen CRA que puede ir seguida de imágenes principales, incluidas imágenes RASL y/o RADL. RADL es una unidad NAL de una imagen RADL. RASL es una unidad NAL de una imagen RASL.
Otros sistemas de codificación de vídeo pueden emplear los siguientes tipos de unidades NAL para IRAP e imágenes principales. IDR_W_RADL es una unidad NAL de una imagen IDR que puede ir seguida de una o más imágenes RADL, pero no una imagen RASL, en orden de decodificación. IDR_N_LP es una unidad NAL de una imagen IDR que no va seguida de una imagen principal en el orden de decodificación. CRA es una unidad NAL de una imagen CRA que puede ir seguida de imágenes principales, como imágenes RASL y/o RADL. RADL es una unidad NAL de una imagen RADL. RASL es una unidad NAL de una imagen RASL.
Para la conformidad del flujo de bits, se pueden aplicar algunas restricciones a las imágenes principales, por ejemplo, en sistemas HEVC y/o VVC. Tales limitaciones son las siguientes. Cada imagen, distinta de la primera imagen del flujo de bits en el orden de decodificación, puede considerarse asociada con la imagen IRAP anterior en el orden de decodificación. Cuando una imagen es una imagen principal de una imagen IRAP, la imagen será una imagen RADL o RASL. Cuando una imagen es una imagen final de una imagen IRAP, la imagen no será una imagen RADL o RASL. Cuando una imagen es una imagen principal de una imagen IRAP, la imagen debe preceder, en orden de decodificación, a todas las imágenes finales asociadas con la misma imagen IRAP. No se asociarán imágenes RASL con una imagen IDR. No se asociarán imágenes RADL con una imagen IDR que tenga nal_unit_type igual a IDR_N_LP. Cabe señalar que se puede realizar un acceso aleatorio en la posición de una unidad de acceso IRAP descartando todas las unidades de acceso antes de la unidad de acceso IRAP. Dicho acceso aleatorio puede dar como resultado la decodificación correcta de la imagen IRAP y todas las imágenes posteriores que no son RASL en el orden de decodificación. Dicho acceso aleatorio se puede realizar, siempre que cada conjunto de parámetros esté disponible, ya sea en el flujo de bits o por medios externos, como una entrada de usuario, cuando se va a activar dicho conjunto de parámetros. Además, cualquier imagen que preceda a una imagen IRAP en el orden de decodificación precederá a la imagen IRAP en el orden de salida y precederá a cualquier imagen RADL asociada con la imagen IRAP en el orden de salida. Cualquier imagen RASL asociada con una imagen CRA precederá a cualquier imagen RADL asociada con la imagen CRA en el orden de salida. Cualquier imagen RASL asociada con una imagen CRA seguirá, en orden de salida, cualquier imagen IRAP que preceda a la imagen CRA en el orden de decodificación.
Por consiguiente, las restricciones de conformidad del flujo de bits relacionadas con las imágenes principales, como se describe anteriormente, pueden entrar en conflicto con los mecanismos de codificación de vídeo entrelazados. El conflicto es el siguiente. Cuando se utiliza codificación entrelazada, los dos campos de una imagen IRAP no se marcan como imágenes IRAP. En cambio, solo el primer campo se marca como una imagen IRAP y el segundo campo se marca como una imagen final. La imagen final entrelazada, que contiene el segundo campo de la imagen, debe seguir inmediatamente a la imagen IRAP entrelazada en orden de decodificación. Esto se debe a que la imagen IRAP entrelazada y la imagen final entrelazada forman un cuadro completo. Si las imágenes principales siguen a la imagen IRAP en orden de decodificación, entonces se viola la restricción indica que cuando una imagen es una imagen principal de una imagen IRAP, la imagen debe preceder, en orden de decodificación, a todas las imágenes finales asociadas con la misma imagen IRAP. La restricción anterior no se puede eliminar simplemente porque la restricción puede ayudar a una entidad externa, como un empalmador de vídeo, a determinar de manera eficiente si hay imágenes principales asociadas con un IRAP y si se han considerado todas las imágenes principales. Dicha entidad externa puede operar de la siguiente manera. A partir de una imagen IRAP, si la imagen que sigue inmediatamente a la imagen IRAP es una imagen final, la entidad externa puede determinar que no hay imágenes principales asociadas con la imagen IRAP. Por tanto, para buscar todas las imágenes principales asociadas con una imagen IRAP, la entidad externa puede encontrar la primera imagen final que sigue a la imagen IRAP en el orden de decodificación basado en esta restricción. Sin la restricción anterior, es posible que se requiera que una entidad externa busque hasta la siguiente imagen IRAP para encontrar todas las imágenes principales asociadas con una imagen IRAP.
En general, la presente divulgación describe métodos para manejar imágenes principales asociadas con imágenes IRAP. Más específicamente, esta divulgación describe métodos para buscar e identificar de manera eficiente imágenes principales asociadas con una imagen IRAP mientras se admite la codificación eficiente de contenido de vídeo entrelazado. La descripción de las técnicas se basa en la norma VVC del JVET del UIT-T e ISO/IEC. Sin embargo, las técnicas también se aplican a otras especificaciones de códecs de vídeo.
Para resolver los problemas enumerados anteriormente, la presente divulgación incluye los siguientes aspectos, que se pueden aplicar individualmente o en combinación. Por ejemplo, imágenes principales asociadas con una imagen IRAP pueden colocarse consecutivamente en el orden de decodificación sin imágenes intermedias entre ellas. Además, se aplica la siguiente restricción para la conformidad del flujo de bits de IRAP y las imágenes principales. Sean picA y picB las primeras y últimas imágenes principales asociadas con una imagen IRAP, respectivamente. En tal caso, no habrá ninguna imagen que no sea una imagen principal que siga a picA y preceda a picB en el orden de decodificación, respectivamente.
Las siguientes restricciones se aplican según la invención reivindicada. Si una field_seq_flag se establece en cero y la imagen actual es una imagen principal asociada con una imagen IRAP, la imagen actual precederá, en orden de decodificación, a todas las imágenes no principales asociadas con la misma imagen IRAP. De lo contrario, si field_seq_flag se establece igual a uno, sean picA y picB la primera y la última imagen principal, en orden de decodificación, asociadas con una imagen IRAP, respectivamente. En tal caso, habrá como máximo una imagen no principal que preceda a picA en el orden de decodificación, y no habrá ninguna imagen no principal que suceda a picA en el orden de decodificación y preceda a picB en el orden de decodificación.
Las siguientes restricciones también pueden aplicarse. Si general_frame_only_constraint_flag es igual a uno y la imagen actual es una imagen principal asociada con una imagen IRAP, la imagen actual precederá, en orden de decodificación, a todas las imágenes no principales asociadas con la misma imagen IRAP. De lo contrario, si la general_frame_only_constraint_flag es igual a cero, sean picA y picB la primera y la última imagen principal, en orden de decodificación, asociadas con una imagen IRAP, respectivamente. En tal caso, habrá como máximo una imagen no principal que preceda a picA en el orden de decodificación, y no habrá ninguna imagen no principal que suceda a picA en el orden de decodificación y preceda a picB en el orden de decodificación.
En un ejemplo, un tipo de unidad NAL de una imagen IRAP proporciona información suficiente para determinar si están presentes imágenes principales asociadas con la imagen IRAP. Para ello se puede utilizar el siguiente método. El tipo de unidad NAL CRA_NUT puede reemplazarse por CRA_W_LP para indicar que las imágenes principales están asociadas con la imagen CRA y/o CRA_N_LP para indicar que no hay imágenes principales asociadas con la imagen CRA. En otro ejemplo, los tipos de unidad<n>A<l>IDR_W_RADL, IDR_N_LP y CRA_NUT pueden reemplazarse por IRAP_W_LP para indicar que las imágenes principales están asociadas con la imagen IRAP e IRAP_N_LP para indicar que las imágenes principales no están asociadas con la imagen IRAP.
En un ejemplo, lo siguiente puede aplicarse a CRA_W_LP, CRA_N_LP, IDR_W_RADL e IDR_N_LP. Una imagen IDR que tiene un NalUnitType igual a IDR_N_LP no está asociada con ninguna imagen principal presente en el flujo de bits. Una imagen IDR que tiene NalUnitType igual a IDR_W_RADL no está asociada con imágenes RASL presentes en el flujo de bits, pero puede estar asociada con imágenes RADL en el tren de bits. Una imagen CRA que tiene un NalUnitType igual a CRA_N_LP no está asociada con imágenes principales presentes en el flujo de bits. Una imagen CRA que tiene un NalUnitType igual a CRA_W_LP puede asociarse con imágenes principales en el tren de bits.
En un ejemplo, el mapeo de los tipos de unidades NAL anteriores a los tipos de Stream Access Point (SAP) es el siguiente. iDr_N_LP y CRA_N_l P están asociados con SAP tipo 1, IDR_W_RADL está asociado con SAP tipo 2 y CRA_W_LP está asociado con SAP tipo 3.
En un ejemplo, lo siguiente puede aplicarse a IRAP_W_LP e IRAP_N_LP. Una imagen IRAP que tenga NalUnitType igual a IRAP_N_LP no se ha asociado con imágenes principales presentes en el flujo de bits. Una imagen IRAP que tenga NalUnitType igual a IRAP_W_LP puede asociarse con imágenes principales en el flujo de bits.
En un ejemplo, la asignación de los tipos de unidades NAL anteriores a los tipos de SAP es la siguiente. IRAP_N_LP está asociado con SAP tipo 1 e IRAP_W_LP está asociado con SAP tipo 3.
En un ejemplo, para determinar si las imágenes principales asociadas con un IRAP están presentes o no, un dispositivo puede verificar el tipo de unidad NAL de la imagen IRAP. Cuando una imagen IRAP puede asociarse con una o más imágenes principales asociadas, el siguiente paso puede usarse para encontrar todas las imágenes principales asociadas con la imagen IRAP. El dispositivo puede comenzar desde la imagen IRAP. Si la imagen que sigue inmediatamente a la imagen IRAP en el orden de decodificación es una imagen no principal, es posible que se ignore. Tenga en cuenta que la presencia de dicha imagen no principal inmediatamente después de una imagen IRAP puede indicar que el flujo de bits es un flujo de bits de codificación de vídeo entrelazado. La siguiente imagen será una imagen principal. El proceso puede continuar verificando la siguiente imagen hasta que se encuentre la primera imagen no principal.
La FIG. 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 realizaciones/ejemplos descritos en este documento. 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 / I/O) 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, mouse, trackball, 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 realizaciones descritas en el presente documento, como los métodos 100, 1000 y 1100, que pueden emplear una CVS 500, un fotograma de vídeo entrelazado 600, una CVS 700 y/o un flujo de bits 800. El módulo de codificación 914 también puede implementar cualquier otro método/mecanismo descrito en este documento. 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 establecer una bandera en un SPS para indicar cuándo se coloca una imagen no principal entre una imagen IRAP y un conjunto de imágenes principales. Por tanto, el módulo de codificación 914 hace que el dispositivo de codificación de vídeo 900 proporcione funcionalidad adicional y/o eficiencia de codificación al codificar datos de vídeo. Como tal, 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 computadora 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 de acceso aleatorio estática (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 FIG. 10 es un diagrama de flujo de un método de ejemplo 1000 de codificación de una secuencia de vídeo, como CVS 500 y/o 700, con codificación de vídeo entrelazado, como fotograma de vídeo entrelazado 600, e imágenes principales en un flujo de bits, como el flujo de bits 800. 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. En el paso 1001, el codificador determina un orden de codificación para una secuencia de vídeo. La secuencia de vídeo comprende una pluralidad de imágenes que incluyen una imagen IRAP y una o más imágenes no principales asociadas con la imagen IRAP. La secuencia de vídeo también puede incluir opcionalmente una o más (por ejemplo, un grupo) de imágenes principales.
En el paso 1003, el codificador puede codificar una bandera en un flujo de bits. La bandera se puede establecer en un primer valor cuando las imágenes principales asociadas con la imagen IRAP preceden, en orden de codificación, a todas las imágenes no principales asociadas con la imagen IRAP como en CVS 500. Esto indica que la secuencia de vídeo no contiene vídeo entrelazado. La bandera también puede establecerse en un segundo valor cuando una imagen no principal precede, en orden de codificación, una imagen principal inicial asociada con la imagen IRAP como en CVS 700. Cuando la bandera se establece en el segundo valor, el flujo de bits también puede restringirse de manera que no se coloquen imágenes principales entre la imagen principal inicial y una imagen principal final en el orden de codificación. Esto puede indicar que la secuencia de vídeo contiene vídeo entrelazado. Como ejemplo específico, el codificador puede codificar un SPS en el flujo de bits y la bandera se puede codificar en el SPS. En algunos ejemplos, la bandera es field_seq_flag. Por ejemplo, field_seq_flag se puede establecer en uno cuando se indica que una secuencia de vídeo codificada incluye imágenes que representan campos. Además, field_seq_flag se puede establecer en cero cuando se indica que la secuencia de vídeo codificada incluye imágenes que representan cuadros. En consecuencia, la bandera se puede configurar para indicar que se emplea codificación de vídeo entrelazado en el flujo de bits. Como tal, la bandera puede establecerse cuando la imagen IRAP incluye un primer campo de un fotograma, y una imagen no principal que precede a la imagen principal inicial incluye un segundo campo del fotograma. Por ejemplo, el primer campo de la imagen IRAP y el segundo campo de la imagen no principal que precede a la imagen principal inicial pueden incluir líneas alternas de datos de vídeo que representan un único fotograma de vídeo entrelazado como se muestra con respecto a las FIGs. 6A-6C.
En el paso 1005, el codificador puede codificar la imagen IRAP, cualquier imagen principal asociada con la imagen IRAP y una o más imágenes no principales asociadas con la imagen IRAP en el flujo de bits en orden de codificación. El codificador puede almacenar el flujo de bits para comunicación hacia un decodificador en el paso 1007.
La FIG. 11 es un diagrama de flujo de un método de ejemplo 1100 para decodificar una secuencia de vídeo, como CVS 500 y/o 700, con codificación de vídeo entrelazado, como fotograma de vídeo entrelazado 600, e imágenes principales de un flujo de bits, como el flujo de bits 800. 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.
El método 1100 puede comenzar cuando un decodificador comienza a recibir un flujo de bits de datos codificados que representan una secuencia de vídeo, por ejemplo, como resultado del método 1000. En el paso 1101, el decodificador recibe un flujo de bits que comprende una bandera/indicador y una pluralidad de imágenes codificadas que incluyen una imagen IRAP y una o más imágenes no principales asociadas con la imagen IRAP. La secuencia de vídeo también puede incluir opcionalmente una o más (por ejemplo, un grupo) de imágenes principales.
En el paso 1103, el decodificador puede determinar que las imágenes principales asociadas con la imagen IRAP preceden, en orden de decodificación, todas las imágenes no principales asociadas con la imagen IRAP cuando la bandera se establece en un primer valor como se muestra en CVS 500. Esto indica que la secuencia de vídeo no contiene vídeo entrelazado. En el paso 1105, el decodificador puede determinar que una imagen no principal precede, en orden de decodificación, una imagen principal inicial asociada con la imagen IRAP cuando la bandera se establece en un segundo valor como se muestra en CVS 700. Cuando la bandera se establece en el segundo valor, el decodificador puede determinar además que no hay imágenes principales colocadas entre la imagen principal inicial y una imagen principal final en el orden de codificación. Esto puede indicar que la secuencia de vídeo contiene vídeo entrelazado. Como ejemplo específico, el flujo de bits puede incluir un SPS y la bandera se puede obtener del SPS. En algunos ejemplos, la bandera es field_seq_flag. Por ejemplo, field_seq_flag se puede establecer en uno cuando se indica que una secuencia de vídeo codificada incluye imágenes que representan campos. Además, field_seq_flag se puede establecer en cero cuando se indica que la secuencia de vídeo codificada incluye imágenes que representan cuadros. En consecuencia, la bandera se puede configurar para indicar que se emplea codificación de vídeo entrelazado en el flujo de bits. Como tal, la bandera puede establecerse cuando la imagen IRAP incluye un primer campo de un fotograma, y una imagen no principal que precede a la imagen principal inicial incluye un segundo campo del fotograma.
En el paso 1107, el decodificador decodifica la imagen IRAP, cualquier imagen principal asociada con la imagen IRAP y una o más imágenes no principales asociadas con la imagen IRAP en el orden de decodificación basado en la bandera. Por ejemplo, la decodificación de la imagen IRAP, las imágenes principales (si las hay) y una o más imágenes no principales pueden incluir entrelazar el primer campo de la imagen IRAP y el segundo campo de la imagen no principal que precede a la imagen principal inicial para crear un solo cuadro como se muestra con respecto a las FIGs.
6A-6C. En el paso 1109, el decodificador puede enviar una o más imágenes decodificadas como resultado del paso 1107 para su visualización como parte de una secuencia de vídeo decodificada.
La FIG. 12 es un diagrama esquemático de un sistema 1200 de ejemplo para codificar una secuencia de vídeo, como CVS 500 y/o CVS 700, con codificación de vídeo entrelazado, como fotograma de vídeo entrelazado 600, e imágenes principales en un flujo de bits, como el flujo de bits 800. 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 determinación 1201 para determinar un orden de codificación para una secuencia de vídeo que comprende una pluralidad de imágenes que incluyen una imagen IRAP y una o más imágenes no principales asociadas con la imagen IRAP. El codificador de vídeo 1202 comprende además un módulo de codificación 1203 para codificar una bandera en un flujo de bits, en donde la bandera se establece en un primer valor cuando las imágenes principales asociadas con la imagen IRAP preceden, en orden de codificación, todas las imágenes no principales asociadas con la imagen IRAP, y en donde la bandera se establece en un segundo valor cuando una imagen no principal precede, en orden de codificación, una imagen principal inicial asociada con la imagen IRAP. El módulo de codificación 1203 es además para codificar la imagen IRAP, cualquier imagen principal asociada con la imagen IRAP y una o más imágenes no principales asociadas con la imagen IRAP en el flujo de bits en orden de codificación. 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 hacia un decodificador de vídeo 1210. 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 bandera y una pluralidad de imágenes codificadas que incluyen una imagen IRAP y una o más imágenes no principales asociadas con la imagen IRAP. El decodificador de vídeo 1210 comprende además un módulo de determinación 1213 para determinar cualesquiera imágenes principales asociadas con la imagen IRAP que preceden, en orden de decodificación, todas las imágenes no principales asociadas con la imagen IRAP cuando la bandera se establece en un primer valor. El módulo de determinación 1213 es además para determinar que una imagen no principal precede, en orden de decodificación, una imagen principal inicial asociada con la imagen IRAP cuando la bandera se establece en un segundo valor. El decodificador de vídeo 1210 comprende además un módulo de decodificación 1215 para decodificar la imagen IRAP, cualquier imagen principal asociada con la imagen IRAP y una o más imágenes no principales asociadas con la imagen IRAP en orden de decodificación basado en la bandera. El decodificador de vídeo 1210 comprende además un módulo de reenvío 1217 para reenviar una o más imágenes decodificadas para su visualización como parte de una secuencia de vídeo decodificada. 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 este documento no se requieren 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 realizaciones de la presente divulgación.
Si bien se han proporcionado varias realizaciones 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 realizaciones 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 este documento.
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 una bandera de campo secuencial, field_seq_flag, y una pluralidad de imágenes codificadas que incluyen una imagen de punto de acceso intraaleatorio, IRAP, y una o más imágenes no principales asociadas con la imagen IRAP;
determinar, mediante un procesador del decodificador, que cualquiera de las imágenes principales asociadas con la imagen IRAP precederán, en orden de decodificación, todas las imágenes no principales asociadas con la imagen IRAP cuando field_seq_flag se establece en cero;
determinar, mediante el procesador, que como máximo una imagen no principal precede, en orden de decodificación, una imagen principal inicial asociada con la imagen IRAP, y que no se colocan imágenes no principales entre la imagen principal inicial y una imagen principal final en orden de decodificación cuando field_seq_flag se establece en uno;
en donde field_seq_flag se establece en uno cuando una secuencia de vídeo codificada incluye imágenes que representan campos, y en donde field_seq_flag se establece en cero cuando la secuencia de vídeo codificada incluye imágenes que representan fotogramas; y
aplicar, mediante el procesador, un proceso de decodificación a la imagen IRAP, cualquiera de las imágenes principales asociadas con la imagen IRAP y las una o más imágenes no principales asociadas con la imagen IRAP en orden de decodificación en base a si field_seq_flag está establecida en uno o en cero.
2. El método de la reivindicación 1, caracterizado por que el flujo de bits incluye un conjunto de parámetros de secuencia, SPS, y en donde la bandera se obtiene del SPS.
3. El método de cualquiera de las reivindicaciones 1 a 2, caracterizado por que la imagen IRAP incluye un primer campo de un fotograma, y en donde la imagen no principal que precede a la imagen principal inicial incluye un segundo campo del fotograma.
4. El método de cualquiera de las reivindicaciones 1 a 3, caracterizado por que aplicar el proceso de decodificación a la imagen IRAP y a las una o más imágenes no principales incluye entrelazar el primer campo a partir de la imagen IRAP y el segundo campo a partir de la imagen no principal que precede a la imagen principal inicial para crear un solo fotograma.
5. Un método implementado en un codificador, el método caracterizado por que comprende:
determinar, mediante un procesador del codificador, un orden de codificación para una secuencia de vídeo que comprende una pluralidad de imágenes que incluyen una imagen de punto de acceso intraaleatorio, IRAP, y una o más imágenes no principales asociadas con la imagen IRAP;
codificar, mediante el procesador, una bandera de campo secuencial, field_seq_flag, en un flujo de bits, en donde field_seq_flag se establece en cero cuando cualquiera de las imágenes principales asociadas con la imagen IRAP preceden, en orden de codificación, a todas las imágenes no principales asociadas con la imagen IRAP, y en donde field_seq_flag se establece en uno cuando como máximo una imagen no principal precede, en orden de codificación, una imagen principal inicial asociada con la imagen IRAP; y no se colocan imágenes no principales entre la imagen principal inicial y una imagen principal final en orden de decodificación;
en donde field_seq_flag se establece en uno cuando una secuencia de vídeo codificada incluye imágenes que representan campos, y en donde field_seq_flag se establece en cero cuando la secuencia de vídeo codificada incluye imágenes que representan fotogramas; y
codificar, mediante el procesador, la imagen IRAP, cualquiera de las imágenes principales asociadas con la imagen IRAP y las una o más imágenes no principales asociadas con la imagen IRAP en el flujo de bits en orden de codificación.
6. El método de la reivindicación 5, caracterizado por que el flujo de bits incluye un conjunto de parámetros de secuencia, SPS, y en donde la bandera está codificada en el SPS.
7. El método de cualquiera de las reivindicaciones 5 a 6, caracterizado por que la imagen IRAP incluye un primer campo de un fotograma, y en donde la imagen no principal que precede a la imagen principal inicial incluye un segundo campo del fotograma.
8. El método de cualquiera de las reivindicaciones 5 a 7, caracterizado por que el primer campo de la imagen IRAP y el segundo campo de la imagen no principal que precede a la imagen principal inicial incluyen líneas alternas de un único fotograma de vídeo entrelazado.
9. Un medio legible por computadora no transitorio que comprende un producto de programa de computadora para su uso por un dispositivo de codificación de vídeo, el producto de programa de computadora que comprende instrucciones ejecutables por computadora almacenadas en el medio legible por computadora 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 a 8.
10. Un decodificador que comprende:
un medio de recepción para recibir un flujo de bits que comprende una bandera de campo secuencial, field_seq_flag, y una pluralidad de imágenes codificadas que incluyen una imagen de punto de acceso intraaleatorio, IRAP, y una o más imágenes no principales asociadas con la imagen IRAP;
un medio de determinación para:
determinar que cualquiera de las imágenes principales asociadas con la imagen IRAP precederán, en orden de decodificación, todas las imágenes no principales asociadas con la imagen IRAP cuando field_seq_flag se establece en cero; y
determinar que como máximo una imagen no principal precede, en orden de decodificación, una imagen principal inicial asociada con la imagen IRAP, y que no se colocan imágenes no principales entre la imagen principal inicial y una imagen principal final en orden de decodificación cuando field_seq_flag se establece en cero;
en donde field_seq_flag se establece en uno cuando una secuencia de vídeo codificada incluye imágenes que representan campos, y en donde field_seq_flag se establece en cero cuando la secuencia de vídeo codificada incluye imágenes que representan fotogramas;
un medio de decodificación para aplicar un proceso de decodificación a la imagen IRAP, cualquiera de las imágenes principales asociadas con la imagen IRAP y las una o más imágenes no principales asociadas con la imagen IRAP en orden de decodificación en base a si field_seq_flag está establecida en uno o en cero.
11. El decodificador de la reivindicación 10, caracterizado por que el decodificador está configurado además para realizar el método de cualquiera de las reivindicaciones 2 a 4.
12. Un codificado que comprende:
un medio de determinación para determinar un orden de codificación para una secuencia de vídeo que comprende una pluralidad de imágenes que incluye una imagen de punto de acceso intraaleatorio, IRAP, y una o más imágenes no principales asociadas con la imagen IRAP;
un medio de codificación para:
codificar una bandera de campo secuencial, field_seq_flag, en un flujo de bits, en donde field_seq_flag se establece en cero cuando cualquiera de las imágenes principales asociadas con la imagen IRAP preceden, en orden de codificación, todas las imágenes no principales asociadas con la imagen IRAP, y en donde field_seq_flag se establece en uno cuando como máximo una imagen no principal precede, en orden de codificación, una imagen principal inicial asociada con la imagen IRAP, y no se colocan imágenes no principales entre la imagen principal inicial y una imagen principal final en orden de decodificación;
en donde field_seq_flag se establece en uno cuando una secuencia de vídeo codificada incluye imágenes que representan campos, y en donde field_seq_flag se establece en cero cuando la secuencia de vídeo codificada incluye imágenes que representan fotogramas;
y
codificar la imagen IRAP, cualquiera de las imágenes principales asociadas con la imagen IRAP y las una o más imágenes no principales asociadas con la imagen IRAP en el flujo de bits en orden de codificación.
13. El codificador de la reivindicación 12, caracterizado por que el codificador está configurado además para realizar el método de cualquiera de las reivindicaciones 6 a 8.
14. Un producto de programa de computadora que comprende un código de programa para realizar el método de acuerdo con cualquiera de las reivindicaciones 1 a 8 cuando se ejecuta en una computadora o un procesador.
15. Un flujo de bits, en donde el flujo de bits comprende una bandera de campo secuencial, field_seq_flag, y una pluralidad de imágenes codificadas que incluyen una imagen de punto de acceso intraaleatorio, IRAP, y una o más imágenes no principales asociadas con la imagen IRAP; cualquiera de las imágenes principales asociadas con la imagen IRAP preceden, en orden de decodificación, todas las imágenes no principales asociadas con la imagen IRAP cuando la bandera se establece en cero; y como máximo una imagen no principal precede, en orden de decodificación, una imagen principal inicial asociada con la imagen IRAP, y no se colocan imágenes no principales entre la imagen principal inicial y una imagen principal final en orden de decodificación cuando la bandera se establece en uno; en donde field_seq_flag se establece en uno cuando una secuencia de vídeo codificada incluye imágenes que representan campos, y en donde field_seq_flag se establece en cero cuando la secuencia de vídeo codificada incluye imágenes que representan fotogramas.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962828875P | 2019-04-03 | 2019-04-03 | |
US201962864958P | 2019-06-21 | 2019-06-21 | |
PCT/US2020/026457 WO2020206171A1 (en) | 2019-04-03 | 2020-04-02 | Interlaced video coding with leading pictures |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2967911T3 true ES2967911T3 (es) | 2024-05-06 |
Family
ID=72667174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES20784389T Active ES2967911T3 (es) | 2019-04-03 | 2020-04-02 | Codificación de vídeo entrelazado con imágenes principales |
Country Status (13)
Country | Link |
---|---|
US (2) | US20220021896A1 (es) |
EP (2) | EP3939290B1 (es) |
JP (2) | JP7561761B2 (es) |
KR (2) | KR102688622B1 (es) |
CN (1) | CN113632478A (es) |
DK (1) | DK3939290T3 (es) |
ES (1) | ES2967911T3 (es) |
FI (1) | FI3939290T3 (es) |
HU (1) | HUE064155T2 (es) |
MX (1) | MX2021012094A (es) |
PL (1) | PL3939290T3 (es) |
PT (1) | PT3939290T (es) |
WO (1) | WO2020206171A1 (es) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR112021020634A2 (pt) * | 2019-05-20 | 2022-03-03 | Panasonic Ip Corp America | Dispositivo de codificação, dispositivo de decodificação, método de codificação e método de decodificação |
WO2021133721A1 (en) | 2019-12-26 | 2021-07-01 | Bytedance Inc. | Techniques for implementing a decoding order within a coded picture |
KR20220156828A (ko) * | 2020-03-19 | 2022-11-28 | 바이트댄스 아이엔씨 | 레퍼런스 픽처 순서에 대한 제약들 |
EP4144093A4 (en) | 2020-05-22 | 2023-08-23 | ByteDance Inc. | SIGNALING OF IMAGE INFORMATION IN ACCESS UNITS |
CN117769837A (zh) * | 2021-06-28 | 2024-03-26 | 抖音视界有限公司 | 深度表示信息补充增强信息的增强信令通知 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9591303B2 (en) * | 2012-06-28 | 2017-03-07 | Qualcomm Incorporated | Random access and signaling of long-term reference pictures in video coding |
US9374583B2 (en) * | 2012-09-20 | 2016-06-21 | Qualcomm Incorporated | Video coding with improved random access point picture behaviors |
US9525883B2 (en) * | 2013-07-15 | 2016-12-20 | Qualcomm Incorporated | Cross-layer alignment of intra random access point pictures |
EP3038365B1 (en) | 2013-08-22 | 2021-01-13 | Sony Corporation | Encoding device, encoding method, transmission device, decoding device, decoding method, and reception device |
KR101895176B1 (ko) * | 2014-06-18 | 2018-09-04 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 독립 랜덤 액세스 포인트 화상 |
EP3254462A1 (en) | 2015-02-05 | 2017-12-13 | Cisco Technology, Inc. | Method and system for processing hevc coded video in broadcast and streaming applications |
US20170105004A1 (en) | 2015-10-07 | 2017-04-13 | Qualcomm Incorporated | Methods and systems of coding a predictive random access picture using a background picture |
WO2018150934A1 (ja) * | 2017-02-20 | 2018-08-23 | ソニー株式会社 | 画像処理装置および方法 |
US10999590B2 (en) * | 2018-12-28 | 2021-05-04 | Tencent America LLC | Method for identification of random access point and picture types |
BR112021020634A2 (pt) * | 2019-05-20 | 2022-03-03 | Panasonic Ip Corp America | Dispositivo de codificação, dispositivo de decodificação, método de codificação e método de decodificação |
-
2020
- 2020-04-02 FI FIEP20784389.7T patent/FI3939290T3/fi active
- 2020-04-02 KR KR1020217034921A patent/KR102688622B1/ko active IP Right Grant
- 2020-04-02 JP JP2021559241A patent/JP7561761B2/ja active Active
- 2020-04-02 PT PT207843897T patent/PT3939290T/pt unknown
- 2020-04-02 HU HUE20784389A patent/HUE064155T2/hu unknown
- 2020-04-02 DK DK20784389.7T patent/DK3939290T3/da active
- 2020-04-02 EP EP20784389.7A patent/EP3939290B1/en active Active
- 2020-04-02 MX MX2021012094A patent/MX2021012094A/es unknown
- 2020-04-02 ES ES20784389T patent/ES2967911T3/es active Active
- 2020-04-02 EP EP23201155.1A patent/EP4277271A3/en active Pending
- 2020-04-02 PL PL20784389.7T patent/PL3939290T3/pl unknown
- 2020-04-02 KR KR1020247024666A patent/KR20240115938A/ko active Application Filing
- 2020-04-02 WO PCT/US2020/026457 patent/WO2020206171A1/en unknown
- 2020-04-02 CN CN202080025185.5A patent/CN113632478A/zh active Pending
-
2021
- 2021-10-01 US US17/492,352 patent/US20220021896A1/en active Granted
-
2024
- 2024-01-22 US US18/419,232 patent/US20240163467A1/en active Pending
- 2024-07-17 JP JP2024114166A patent/JP2024144440A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4277271A2 (en) | 2023-11-15 |
EP3939290B1 (en) | 2023-10-04 |
DK3939290T3 (da) | 2023-12-18 |
FI3939290T3 (fi) | 2024-01-08 |
JP2022527555A (ja) | 2022-06-02 |
CN113632478A (zh) | 2021-11-09 |
EP4277271A3 (en) | 2024-02-21 |
US20220021896A1 (en) | 2022-01-20 |
KR20240115938A (ko) | 2024-07-26 |
US20240163467A1 (en) | 2024-05-16 |
EP3939290A4 (en) | 2022-06-15 |
PL3939290T3 (pl) | 2024-03-11 |
JP7561761B2 (ja) | 2024-10-04 |
EP3939290A1 (en) | 2022-01-19 |
JP2024144440A (ja) | 2024-10-11 |
KR20210141710A (ko) | 2021-11-23 |
PT3939290T (pt) | 2024-01-02 |
HUE064155T2 (hu) | 2024-02-28 |
WO2020206171A1 (en) | 2020-10-08 |
KR102688622B1 (ko) | 2024-07-24 |
MX2021012094A (es) | 2021-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2951060T3 (es) | Señalización de identificadores de subimágenes en la codificación de vídeo | |
ES2972701T3 (es) | Imágenes con tipos de unidad NAL mezclados | |
ES2967911T3 (es) | Codificación de vídeo entrelazado con imágenes principales | |
ES2780688T3 (es) | Señalización para operaciones DPB basadas en un búfer de imágenes subdescodificadas (sub-DPB) en la codificación de vídeo | |
BR122022009663A2 (pt) | Prevenção de sinalização redundante em fluxos de bits de vídeo de múltiplas camadas | |
ES2909309T3 (es) | Partición de bloques de luminancia y de crominancia | |
US12041249B2 (en) | Mixed NAL unit picture constraints in video coding | |
ES2980262T3 (es) | Mejoras de formación de mosaicos flexibles en codificación de vídeo | |
ES2935979T3 (es) | Señalización de índices para estructuras de listas de imágenes de referencia | |
ES2974627T3 (es) | Manejo de múltiples tamaños de imagen y ventanas de conformidad para el remuestreo de imágenes de referencia en la codificación de video | |
US12081784B2 (en) | Support of mixed IRAP and non-IRAP pictures within an access unit in multi-layer video bitstreams | |
ES2944451T3 (es) | Señalización de identificaciones de subimagen en codificación de vídeo basada en subimagen | |
US11729384B2 (en) | Explicit address signaling in video coding | |
BR122022009715A2 (pt) | Método implementado por um codificador, dispositivo de codificação de vídeo, meio legível por computador não transitório, e codificador | |
BR122022009680A2 (pt) | Método implementado em um codificador, dispositivo de codificação de vídeo, meio legível por computador não transitório e codificador | |
ES2974230T3 (es) | Gestión de imágenes de referencia en codificación de vídeo en capas | |
BR122024006612A2 (pt) | Fluxo de bits codificado e aparelho para armazenar um fluxo de bits | |
BR122024004652A2 (pt) | Codificador, decodificador e métodos correspondentes |