ES3010144T3 - Reference picture management in video coding - Google Patents

Reference picture management in video coding Download PDF

Info

Publication number
ES3010144T3
ES3010144T3 ES19850237T ES19850237T ES3010144T3 ES 3010144 T3 ES3010144 T3 ES 3010144T3 ES 19850237 T ES19850237 T ES 19850237T ES 19850237 T ES19850237 T ES 19850237T ES 3010144 T3 ES3010144 T3 ES 3010144T3
Authority
ES
Spain
Prior art keywords
list
pic
picture
ref
equal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19850237T
Other languages
English (en)
Inventor
Fnu Hendry
Ye-Kui Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES3010144T3 publication Critical patent/ES3010144T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61CDENTISTRY; APPARATUS OR METHODS FOR ORAL OR DENTAL HYGIENE
    • A61C7/00Orthodontics, i.e. obtaining or maintaining the desired position of teeth, e.g. by straightening, evening, regulating, separating, or by correcting malocclusions
    • A61C7/002Orthodontic computer assisted systems
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61CDENTISTRY; APPARATUS OR METHODS FOR ORAL OR DENTAL HYGIENE
    • A61C7/00Orthodontics, i.e. obtaining or maintaining the desired position of teeth, e.g. by straightening, evening, regulating, separating, or by correcting malocclusions
    • A61C7/02Tools for manipulating or working with an orthodontic appliance
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61CDENTISTRY; APPARATUS OR METHODS FOR ORAL OR DENTAL HYGIENE
    • A61C7/00Orthodontics, i.e. obtaining or maintaining the desired position of teeth, e.g. by straightening, evening, regulating, separating, or by correcting malocclusions
    • A61C7/08Mouthpiece-type retainers or positioners, e.g. for both the lower and upper arch
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C51/00Shaping by thermoforming, i.e. shaping sheets or sheet like preforms after heating, e.g. shaping sheets in matched moulds or by deep-drawing; Apparatus therefor
    • B29C51/26Component parts, details or accessories; Auxiliary operations
    • B29C51/30Moulds
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C51/00Shaping by thermoforming, i.e. shaping sheets or sheet like preforms after heating, e.g. shaping sheets in matched moulds or by deep-drawing; Apparatus therefor
    • B29C51/26Component parts, details or accessories; Auxiliary operations
    • B29C51/46Measuring, controlling or regulating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/441Acquiring end-user identification, e.g. using personal code sent by the remote control or by inserting a card
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29LINDEXING SCHEME ASSOCIATED WITH SUBCLASS B29C, RELATING TO PARTICULAR ARTICLES
    • B29L2031/00Other particular articles
    • B29L2031/753Medical equipment; Accessories therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Dentistry (AREA)
  • Epidemiology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

Un método para decodificar un flujo de bits de vídeo codificado incluye obtener una estructura de lista de imágenes de referencia para un segmento actual representado en el flujo de bits de vídeo codificado, en donde la estructura de lista de imágenes de referencia contiene un número de entradas; obtener un número predeterminado de entradas activas en una lista de imágenes de referencia para el segmento actual; construir una lista de imágenes de referencia para el segmento actual, conteniendo la lista de imágenes de referencia un número de entradas activas e inactivas; establecer el número de entradas activas en la lista de imágenes de referencia igual al número de entradas en la estructura de lista de imágenes de referencia cuando el número predeterminado de entradas activas en la lista de imágenes de referencia es mayor que el número de entradas en la estructura de lista de imágenes de referencia; y obtener, con base en al menos una entrada activa de la lista de imágenes de referencia, al menos un bloque reconstruido del segmento actual. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Gestión de imágenes de referencia en codificación de vídeo
Campo técnico
La presente descripción está generalmente relacionada con técnicas para la gestión de imágenes de referencia en codificación de vídeo. Más específicamente, esta descripción describe técnicas para la construcción de listas de imágenes de referencia.
Antecedentes
La cantidad de datos de vídeo necesarios para representar incluso un vídeo relativamente corto puede ser sustancial, lo que puede dar lugar a dificultades cuando los datos se van a transmitir en línea o comunicar de otro modo 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 modernas. El tamaño de un vídeo también podría ser un problema cuando el vídeo se almacena en un dispositivo de almacenamiento debido a que los recursos de memoria son limitados. Los dispositivos de compresión de vídeo a menudo usan software y/o hardware en el origen para codificar los datos de vídeo antes de la transmisión o el almacenamiento, lo que reduce la cantidad de datos necesarios para representar imágenes de vídeo digital. Luego, los datos comprimidos son recibidos en el destino por un dispositivo de descompresión de vídeo que decodifica los datos de vídeo. Con recursos de red limitados y demandas cada vez mayores de mayor calidad de vídeo, son deseables técnicas mejoradas de compresión y descompresión que mejoren la relación de compresión con poco o ningún sacrificio en la calidad de imagen.
El documento de Y-K WANG (HUAWEI) ET AL n.° JVET-M0128 2 de enero de 2019 (02-01-2019), XP030200191, describe un mayor desarrollo del proyecto de VVC en JVET.
El documento de HANNUKSELA NOKIA) M ET AL, "AHG21: On reference picture list construction and reference picture marking", n.° JCTVC-G643, (20111124), 7. REUNIÓN JCT-VC; 21112011 - 30112011; GINEBRA; (EQUIPO CONJUNTO DE COLABORACIÓN EN CODIFICACIÓN DE VÍDEO DE ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16 ), URL: http://phenix.intevry.fr/jct/doc_end_user/documents/7_Geneva/wg11JCTVC-G643-v3.zip JCTVC-F803_d5_RPS_r2_with_JCTVC-G641r2_reduced.doc, (24-11-2011), XP030230935 , describe un método de análisis de un conjunto de parámetros representados en el flujo de bits de vídeo codificado.
Compendio
La invención se describe en el conjunto de reivindicaciones adjuntas. El objeto de la presente invención es que un primer aspecto se refiere a un método para decodificar un flujo de bits de vídeo codificado.
Este objetivo se resuelve mediante las reivindicaciones independientes adjuntas y en las reivindicaciones dependientes adjuntas se enumeran otras realizaciones y mejoras de la invención. En adelante, hasta la "breve descripción de los dibujos", expresiones como "... aspecto según la invención", "según la invención" o "la presente invención", se refieren a la enseñanza técnica de la realización más amplia como se reivindica con las reivindicaciones independientes. Expresiones como "implementación", "diseño", "opcionalmente", "preferiblemente", "escenario", "aspecto" o similares se refieren a otras realizaciones como se reivindica, y expresiones como "ejemplo", "... aspecto según un ejemplo", "la descripción describe" o "la descripción" describen la enseñanza técnica que se refiere a la comprensión de la invención o sus realizaciones, que, sin embargo, no se reivindica como tal. Para lograr el objetivo anterior, se adoptan las soluciones técnicas definidas en las reivindicaciones adjuntas. La invención se define en las reivindicaciones independientes. En las reivindicaciones dependientes se proporcionan características adicionales de la invención. A continuación, las partes de la descripción y los dibujos que se refieren a realizaciones que no están cubiertas por las reivindicaciones no se presentan como realizaciones de la invención, sino como ejemplos útiles para comprender la invención. La base de la invención reivindicada puede encontrarse en la realización de la FIG.
5 restringida para incluir una estructura de lista de imágenes de referencia ref_pic_list_struct(listIdx, rpsIdx). Las demás realizaciones deben entenderse como ejemplos no reivindicados útiles para comprender la invención.
El método proporciona técnicas que simplifican y hacen más eficiente la señalización de las listas de imágenes de referencia. Por lo tanto, se mejora el proceso de codificación general.
Breve descripción de los dibujos
Para una comprensión más completa de esta descripción, se hace referencia ahora 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 iguales representan partes iguales.
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación de ejemplo que utiliza técnicas de predicción bilaterales.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo que implementa técnicas de predicción bilaterales.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador de vídeo que implementa técnicas de predicción bilaterales.
La FIG. 4 es un diagrama esquemático que ilustra un conjunto de imágenes de referencia (RPS) que tiene una imagen con entradas en todos los subconjuntos del RPS.
La FIG. 5 es una realización de un método de decodificación de un flujo de bits de vídeo codificado.
La FIG. 6 es un diagrama esquemático de un dispositivo de codificación de vídeo.
La FIG. 7 es un diagrama esquemático de la realización de unos medios para la codificación.
En la siguiente descripción, las características que en el compendio anterior de la invención se han marcado como "no reivindicadas" también se entienden en adelante, cuando se describen y explican con referencia a los dibujos, como "no reivindicadas" o "no parte de la invención".
Descripción detallada
La FIG. 1 es un diagrama de bloques que ilustra un sistema 10 de codificación de ejemplo que utiliza técnicas de codificación de vídeo como se describe en la presente memoria. Como se muestra en la FIG. 1, el sistema 10 de codificación incluye un dispositivo 12 de origen que proporciona datos de vídeo codificados para ser decodificados en un momento posterior por un dispositivo 14 de destino. En particular, el dispositivo 12 de origen proporciona los datos de vídeo al dispositivo 14 de destino a través de un medio 16 legible por ordenador. El dispositivo 12 de origen y el dispositivo 14 de destino comprenden cualquiera de una amplia gama de dispositivos, que incluyen ordenadores de escritorio, ordenadores notebook (por ejemplo, ordenadores portátiles), tabletas, decodificadores, teléfonos móviles tales como los llamados teléfonos "inteligentes", las llamadas tabletas "inteligentes", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión en línea de vídeo o similares. En algunos casos, el dispositivo 12 de origen y el dispositivo 14 de destino están equipados para comunicación inalámbrica.
El dispositivo 14 de destino recibe los datos de vídeo codificados para ser decodificados a través del medio 16 legible por ordenador. El medio 16 legible por ordenador comprende cualquier tipo de medio o dispositivo capaz de mover los datos de vídeo codificados desde el dispositivo 12 de origen al dispositivo 14 de destino. En un ejemplo, el medio 16 legible por ordenador comprende un medio de comunicación para permitir que el dispositivo 12 de origen transmita datos de vídeo codificados directamente al dispositivo 14 de destino en tiempo real. Los datos de vídeo codificados se modulan según un estándar de comunicación, tal como un protocolo de comunicación inalámbrica, y se transmiten al dispositivo 14 de destino. El medio de comunicación comprende cualquier medio de comunicación inalámbrico o por cable, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión física. El medio de comunicación forma parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global tal como Internet. El medio de comunicación incluye enrutadores, conmutadores, estaciones base o cualquier otro equipo que sea útil para facilitar la comunicación desde el dispositivo 12 de origen al dispositivo 14 de destino.
En algunos ejemplos, los datos codificados se envían desde la interfaz 22 de salida a un dispositivo de almacenamiento. De manera similar, se accede a los datos codificados desde el dispositivo de almacenamiento mediante la interfaz de entrada. El dispositivo de almacenamiento incluye cualquiera de una variedad de soportes de almacenamiento de datos distribuidos o de acceso local, tal como un disco duro, discos Blu-ray, discos de vídeo digital (DVD), memorias de solo lectura de disco compacto (CD-ROM), memoria flash, memoria volátil o no volátil, o cualquier otro soporte de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En otro ejemplo, el dispositivo de almacenamiento corresponde a un servidor de archivos u otro dispositivo de almacenamiento intermedio que almacena el vídeo codificado generado por el dispositivo 12 de origen. El dispositivo 14 de destino accede a datos de vídeo almacenados desde el dispositivo de almacenamiento a través de transmisión en línea o descarga. El servidor de archivos es cualquier tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo 14 de destino. Los servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor de protocolo de transferencia de archivos (FTP), dispositivos de almacenamiento conectado a la red (NAS) o una unidad de disco local. El dispositivo 14 de destino accede a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluida una conexión a Internet. Esto incluye un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión por cable (por ejemplo, línea de abonado digital (DSL), módem por cable, etc.) o una combinación de ambas que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento es una transmisión en línea, una transmisión de descarga o una combinación de las mismas.
Las técnicas de esta descripción no se limitan necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se aplicarán a la codificación de vídeo en apoyo de cualquiera de una variedad de aplicaciones multimedia, tales como emisiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo en línea por Internet, tales como transmisión en línea adaptativa dinámica sobre HTTP (DASH), vídeo digital que se codifica en un soporte de almacenamiento de datos, decodificación de vídeo digital almacenado en un soporte de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 de codificación se configurará para soportar transmisión de vídeo unidireccional o bidireccional para soportar aplicaciones tales como transmisión en línea de vídeo, reproducción de vídeo, emisión de vídeo y/o videotelefonía.
En el ejemplo de la FIG. 1, el dispositivo 12 de origen incluye el origen 18 de vídeo, el codificador 20 de vídeo y la interfaz 22 de salida. El dispositivo 14 de destino incluye la interfaz 28 de entrada, el decodificador 30 de vídeo y el dispositivo 32 de visualización. Según esta descripción, el codificador 20 de vídeo del dispositivo 12 de origen y/o el decodificador 30 de vídeo del dispositivo 14 de destino se configurarán para aplicar las técnicas para la codificación de vídeo. En otros ejemplos, un dispositivo de origen y un dispositivo de destino incluyen otros componentes o disposiciones. El dispositivo 12 de origen recibe datos de vídeo de un origen de vídeo externo, tal como una cámara externa. Asimismo, el dispositivo 14 de destino interactúa con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
El sistema 10 de codificación ilustrado de la FIG. 1 es simplemente un ejemplo. Las técnicas para la codificación de vídeo se realizarán por cualquier dispositivo de codificación y/o decodificación de vídeo digital. Aunque las técnicas de esta descripción generalmente se realizan por un dispositivo de codificación de vídeo, las técnicas también se realizarán por un codificador/decodificador de vídeo, normalmente denominado "CODEC". Además, las técnicas de esta descripción también se realizarán por un preprocesador de vídeo. El codificador y/o el decodificador de vídeo serán una unidad de procesamiento de gráficos (GPU) o un dispositivo similar.
El dispositivo 12 de origen y el dispositivo 14 de destino son simplemente ejemplos de tales dispositivos de codificación en los que el dispositivo 12 de origen genera datos de vídeo codificados para transmitirlos al dispositivo 14 de destino. En algunos ejemplos, el dispositivo 12 de origen y el dispositivo 14 de destino operan en una manera sustancialmente simétrica, de manera que cada uno de los dispositivos 12, 14 de origen y de destino incluye componentes de codificación y decodificación de vídeo. Por lo tanto, el sistema 10 de codificación puede soportar la transmisión de vídeo unidireccional o bidireccional entre dispositivos 12, 14 de vídeo, por ejemplo, para transmisión en línea de vídeo, reproducción de vídeo, emisión de vídeo o videotelefonía.
El origen 18 de vídeo del dispositivo 12 de origen puede incluir un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contiene vídeo capturado anteriormente y/o una interfaz de alimentación de vídeo para recibir vídeo de un proveedor de contenido de vídeo. Como una alternativa adicional, el origen 18 de vídeo genera datos basados en gráficos de ordenador como el origen de vídeo, o una combinación de vídeo en vivo, vídeo archivado y vídeo generado por ordenador.
En algunos casos, cuando el origen 18 de vídeo es una cámara de vídeo, el dispositivo 12 de origen y el dispositivo 14 de destino forman los llamados teléfonos con cámara o videoteléfonos. Sin embargo, como se mencionó anteriormente, las técnicas descritas en esta descripción se aplicarán a la codificación de vídeo en general, y se aplican a aplicaciones inalámbricas y/o por cable. En cada caso, el vídeo capturado, precapturado o generado por ordenador se codificará por el codificador 20 de vídeo. La información de vídeo codificada puede luego ser enviada por la interfaz 22 de salida a un medio 16 legible por ordenador.
El medio 16 legible por ordenador puede incluir medios transitorios, tales como una transmisión de red por cable o emisión inalámbrica, o soportes de almacenamiento (es decir, soportes de almacenamiento no transitorios), tales como un disco duro, unidad flash, disco compacto, disco de vídeo digital, disco Blu-ray u otro medio legible por ordenador. En algunos ejemplos, un servidor de red (no mostrado) recibe datos de vídeo codificados desde el dispositivo 12 de origen y proporciona los datos de vídeo codificados al dispositivo 14 de destino, por ejemplo, a través de una transmisión de red. De manera similar, un dispositivo informático de una instalación de producción de medios, tal como una instalación de estampado de discos, recibe datos de vídeo codificados desde el dispositivo 12 de origen y produce un disco que contiene los datos de vídeo codificados. Por lo tanto, puede entenderse que el medio 16 legible por ordenador incluye uno o más medios legibles por ordenador de varias formas, en varios ejemplos.
La interfaz 28 de entrada del dispositivo 14 de destino recibe información del medio 16 legible por ordenador. La información del medio 16 legible por ordenador incluye información de sintaxis definida por el codificador 20 de vídeo, que también es usada por el decodificador 30 de vídeo, que incluye elementos de sintaxis que describen características y/o procesamiento de bloques y otras unidades codificadas, por ejemplo, grupo de imágenes (GOP). El dispositivo 32 de visualización visualiza los datos de vídeo decodificados a un usuario y comprende cualquiera de una variedad de dispositivos de visualización tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos emisores de luz orgánicos (OLED) u otro tipo de dispositivo de visualización.
El codificador 20 de vídeo y el decodificador 30 de vídeo funcionan según el estándar de codificación de vídeo de alta eficiencia (HEVC) actualmente en desarrollo, y cumplen el modelo de prueba HEVC (HM). Otros estándares patentados o de la industria incluyen la norma H.264 del Sector de Estandarización de las Telecomunicaciones de la Unión Internacional de Telecomunicaciones (ITU-T), denominada alternativamente Parte 10 del Grupo de Experto de Imágenes en Movimiento (MPEG)-4, Codificación de Vídeo Avanzada (AVC), H.265/HEVC, o extensiones de dichos estándares. Otros ejemplos de estándares de codificación de vídeo incluyen MPEG-2 y H.263 de ITU-T. Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador 20 de vídeo y el decodificador 30 de vídeo están integrados cada uno con un codificador y decodificador de audio, e incluyen unidades de multiplexor-demultiplexor (MUX-DEMUX) apropiadas, u otro hardware y software, para gestionar la codificación tanto audio como vídeo en un flujo de datos común o flujos de datos separados. Si procede, las unidades MUX-DEMUX cumplen el protocolo multiplexor H.223 de ITU u otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
El codificador 20 de vídeo y el decodificador 30 de vídeo se implementan cada uno como cualquiera de una variedad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados de aplicación específica (ASIC), matrices de puertas programables en campo (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo almacena instrucciones para el software en un medio adecuado legible por ordenador no transitorio y ejecuta las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta descripción. Cada uno del codificador 20 de vídeo y decodificador 30 de vídeo se incluirán en uno o más codificadores o decodificadores, cualquiera de los cuales se integra como parte de un codificador/decodificador (CODEC) combinado en un dispositivo respectivo. Un dispositivo que incluye un codificador 20 de vídeo y/o un decodificador 30 de vídeo comprende un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
La FIG.2 es un diagrama de bloques que ilustra un ejemplo de codificador 20 de vídeo que implementa técnicas de codificación de vídeo. El codificador 20 de vídeo realiza intracodificación e intercodificación de bloques de vídeo dentro de segmentos de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de un fotograma o imagen de vídeo dado. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de fotogramas o imágenes adyacentes de una secuencia de vídeo. El intramodo (modo I) puede referirse a cualquiera de varios modos de codificación basados en el espacio. Los intermodos, tal como la predicción unidireccional (también denominada unipredicción) (modo P) o la bipredicción (también denominada bipredicción) (modo B), se refieren a cualquiera de varios modos de codificación basados en el tiempo.
Como se muestra en la FIG. 2, el codificador 20 de vídeo recibe un bloque de vídeo actual dentro de un fotograma de vídeo a codificar. En el ejemplo de la FIG. 2, el codificador 20 de vídeo incluye la unidad 40 de selección de modo, la memoria 64 de fotogramas de referencia, el sumador 50, la unidad 52 de procesamiento de transformación, la unidad 54 de cuantificación y la unidad 56 de codificación de entropía. La unidad 40 de selección de modo, a su vez, incluye la unidad 44 de compensación de movimiento, la unidad 42 de estimación de movimiento, la unidad 46 de intrapredicción (también denominada intrapredicción) y la unidad 48 de partición. Para la reconstrucción de bloques de vídeo, el codificador 20 de vídeo también incluye la unidad 58 de cuantificación inversa, la unidad 60 de transformación inversa y el sumador 62. También se incluirán un filtro de desbloqueo (no mostrado en la FIG. 2) para filtrar los límites del bloque para eliminar los artefactos de bloqueo del vídeo reconstruido. Si lo desea, el filtro de desbloqueo normalmente filtraría la salida del sumador 62. También se usarán filtros adicionales (en bucle o postbucle) además del filtro de desbloqueo. Tales filtros no se muestran por brevedad, pero si lo desea, filtre la salida del sumador 50 (como un filtro en bucle).
Durante el proceso de codificación, el codificador 20 de vídeo recibe un fotograma o segmento de vídeo a codificar. El fotograma o segmento se divide en múltiples bloques de vídeo. La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento realizan una codificación interpredictiva del bloque de vídeo recibido en relación con uno o más bloques en uno o más fotogramas de referencia para proporcionar una predicción temporal. La unidad 46 de intrapredicción realiza alternativamente una codificación intrapredictiva del bloque de vídeo recibido en relación con uno o más bloques vecinos en el mismo fotograma o segmento que el bloque a codificar para proporcionar predicción espacial. El codificador 20 de vídeo 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.
Además, la unidad 48 de partición particiona bloques de datos de vídeo en subbloques, basándose en la evaluación de esquemas de partición previos en pases de codificación anteriores. La unidad 48 de partición particiona inicialmente un fotograma o segmento en unidades de codificación más grandes (LCU), y particiona cada una de las LCU en subunidades de codificación (subCU) basándose en el análisis de distorsión de tasa (por ejemplo, optimización de distorsión de tasa). La unidad 40 de selección de modo produce además una estructura de datos de árbol cuádruple indicativa de la partición de una LCU en subCU. Las CU de nodo hoja del árbol cuádruple incluyen una o más unidades de predicción (PU) y una o más unidades de transformación (TU).
La presente descripción usa el término "bloque" para referirse a cualquiera de una CU, PU o TU, en el contexto de HEVC, o estructuras de datos similares en el contexto de otros estándares (por ejemplo, macrobloques y subbloques del mismo en H.264/AVC). Una CU incluye un nodo de codificación, PU y Tu asociadas con el nodo de codificación. Un tamaño de la CU corresponde a un tamaño del nodo de codificación y tiene forma cuadrada. El tamaño de la CU puede variar desde 8*8 píxeles hasta el tamaño del bloque de árbol con un máximo de 64*64 píxeles o más. Cada CU contiene una o más PU y una o más TU. Los datos de sintaxis asociados con una CU describen, por ejemplo, la partición de la CU en una o más PU. Los modos de partición pueden diferir entre si la CU está codificada en modo directo o de salto, codificada en modo intrapredicción o codificada en modo interpredicción (también denominada interpredicción). Las PU se particionarán para que no tengan forma cuadrada. Los datos de sintaxis asociados con una CU también describen, la partición de la CU en una o más TU según un árbol cuádruple. Una TU puede tener forma cuadrada o no cuadrada (por ejemplo, rectangular).
La unidad 40 de selección de modo selecciona uno de los modos de codificación, intra o inter, por ejemplo, basándose en los resultados de error, y proporciona el bloque intra o intercodificado resultante al sumador 50 para generar datos de bloque residual y al sumador 62 para reconstruir el bloque codificado para su uso como un fotograma de referencia. La unidad 40 de selección de modo también proporciona elementos de sintaxis, tales como vectores de movimiento, indicadores intramodo, información de partición y otra información de sintaxis similar, a la unidad 56 de codificación de entropía.
La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento están altamente integradas, pero se ilustran por separado con fines conceptuales. La estimación de movimiento, realizada por la unidad 42 de estimación de movimiento, es el proceso de generar vectores de movimiento, que estiman el movimiento para bloques de vídeo. Un vector de movimiento, indica el desplazamiento de una PU de un bloque de vídeo dentro de un fotograma o imagen de vídeo actual en relación con un bloque predictivo dentro de un fotograma de referencia (u otra unidad codificada) en relación con el bloque actual que está codificando dentro del fotograma actual (u otra unidad codificada). Un bloque predictivo es un bloque que se encuentra en estrecha coincidencia con el bloque a codificar, en términos de diferencia de píxeles, que se determina mediante la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrática (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador 20 de vídeo calcula valores para posiciones de píxeles subenteros de imágenes de referencia almacenadas en la memoria 64 de fotogramas de referencia. El codificador 20 de vídeo interpola valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de fracciones de píxel de la imagen de referencia. Por lo tanto, la unidad 42 de estimación de movimiento realiza una búsqueda de movimiento en relación con las posiciones de píxeles completos y posiciones de fracciones de píxel y genera un vector de movimiento con precisión de fracciones de píxel.
La unidad 42 de estimación de movimiento 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. La imagen de referencia se selecciona de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria 64 de fotogramas de referencia. La unidad 42 de estimación de movimiento envía el vector de movimiento calculado a la unidad 56 de codificación de entropía y a la unidad 44 de compensación de movimiento.
La compensación de movimiento, realizada por la unidad 44 de compensación de movimiento, implica buscar o generar el bloque predictivo basándose en el vector de movimiento determinado por la unidad 42 de estimación de movimiento. Nuevamente, la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento se integran funcionalmente, en algunos ejemplos. Al recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad 44 de compensación de movimiento ubica el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El sumador 50 forma un bloque de vídeo residual restando los valores de píxel del bloque predictivo de los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxel, como se analiza a continuación. En general, la unidad 42 de estimación de movimiento realiza la estimación de movimiento en relación con los componentes de luma, y la unidad 44 de compensación de movimiento usa vectores de movimiento calculados basándose en los componentes de luma tanto para los componentes de croma como para los componentes de luma. La unidad 40 de selección de modo también genera elementos de sintaxis asociados con los bloques de vídeo y el segmento de vídeo para su uso por el decodificador 30 de vídeo al decodificar los bloques de vídeo del segmento de vídeo.
La unidad 46 de intrapredicción intrapredice un bloque actual, como una alternativa a la interpredicción realizada por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento, como se describió anteriormente. En particular, la unidad 46 de intrapredicción determina un modo de intrapredicción a usar para codificar un bloque actual. En algunos ejemplos, la unidad 46 de intrapredicción codifica un bloque actual usando varios modos de intrapredicción, por ejemplo, durante pasadas de codificación separadas, y la unidad 46 de intrapredicción (o la unidad 40 de selección de modo, en algunos ejemplos) selecciona un modo de intrapredicción apropiado a usar de los modos probados.
La unidad 46 de intrapredicción calcula los valores de distorsión de tasa usando un análisis de distorsión de tasa para los varios modos de intrapredicción probados, y selecciona el modo de intrapredicción que tenga 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 original sin codificar que fue codificado para producir el bloque codificado, así como una tasa de bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad 46 de intrapredicción calcula relaciones a partir de las distorsiones y tasas para los varios bloques codificados para determinar qué modo de intrapredicción exhibe el mejor valor de distorsión de tasa para el bloque.
Además, la unidad 46 de intrapredicción se configurará para codificar bloques de profundidad de un mapa de profundidad usando un modo de modelado de profundidad (DMM). La unidad 40 de selección de modo determina si un modo DMM disponible produce mejores resultados de codificación que un modo de intrapredicción y los otros modos DMM, por ejemplo, usando optimización de distorsión de tasa (RDO). Los datos para una imagen de textura correspondiente a un mapa de profundidad se almacenan en la memoria 64 de fotogramas de referencia. La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento también se configurarán para interpredecir bloques de profundidad de un mapa de profundidad.
Después de seleccionar un modo de intrapredicción para un bloque (por ejemplo, un modo de intrapredicción convencional o uno de los modos DMM), la unidad 46 de intrapredicción proporciona información indicativa del modo de intrapredicción seleccionado para el bloque a la unidad 56 de codificación de entropía. La unidad 56 de codificación de entropía codifica la información que indica el modo de intrapredicción seleccionado. El codificador 20 de vídeo incluye en los datos de configuración de flujo de bits transmitidos, que incluyen una pluralidad de tablas de índice de modo de intrapredicción y una pluralidad de tablas de índice de modo de intrapredicción modificadas (también denominadas tablas de mapeo de palabras clave), definiciones de contextos de codificación para varios bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índice de modo de intrapredicción y una tabla de índice de modo de intrapredicción modificada a usar en cada uno de los contextos.
El codificador 20 de vídeo forma un bloque de vídeo residual restando los datos de predicción de la unidad 40 de selección de modo del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o componentes que realizan esta operación de resta.
La unidad 52 de procesamiento de transformación aplica una transformación, tal como una transformación de coseno discreta (DCT) o una transformación conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficientes de transformación residual. La unidad 52 de procesamiento de transformación puede realizar otras transformaciones que son conceptualmente similares a DCT. También podrían usarse transformaciones de ondícula, transformaciones de enteros, transformaciones de subbanda u otros tipos de transformaciones.
La unidad 52 de procesamiento de transformación aplica la transformación al bloque residual, produciendo un bloque de coeficientes de transformación residual. La transformación puede convertir la información residual de un dominio de valor de píxel a un dominio de transformación, tal como un dominio de la frecuencia. La unidad 52 de procesamiento de transformación envía los coeficientes de transformación resultantes a la unidad 54 de cuantificación. La unidad 54 de cuantificación cuantifica 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 bit asociada con algunos o todos los coeficientes. El grado de cuantificación se modifica ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad 54 de cuantificación realiza entonces un escaneo de la matriz que incluya los coeficientes de transformación cuantificados. Alternativamente, la unidad 56 de codificación de entropía realiza el escaneo.
Después de la cuantificación, la unidad 56 de codificación de entropía codifica los coeficientes de transformación cuantificados. La unidad 56 de codificación de entropía realiza la codificación de longitud variable adaptable al contexto (CAVLC), la codificación aritmética binaria adaptable al contexto (CABAC), la codificación aritmética binaria adaptable al contexto basada en sintaxis (SBAC), la codificación de entropía de partición de intervalo de probabilidad (PIPE) u otra técnica de codificación de entropía. En el caso de la codificación de entropía basada en el contexto, el contexto se basa en bloques vecinos. Después de la codificación de entropía por la unidad 56 de codificación de entropía, el flujo de bits codificado se transmitirá a otro dispositivo (por ejemplo, el decodificador 30 de vídeo) o se archiva para su posterior transmisión o recuperación.
La unidad 58 de cuantificación inversa y la unidad 60 de transformación inversa aplican cuantificación inversa y transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para uso posterior como bloque de referencia. La unidad 44 de compensación de movimiento calcula un bloque de referencia añadiendo el bloque residual a un bloque predictivo de uno de los fotogramas de la memoria 64 de fotogramas de referencia. La unidad 44 de compensación de movimiento también aplica uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxeles subenteros para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción con compensación de movimiento producido por la unidad 44 de compensación de movimiento para producir un bloque de vídeo reconstruido para su almacenamiento en la memoria 64 de fotogramas de referencia. El bloque de vídeo reconstruido se usará por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento como un bloque de referencia para intercodificar un bloque en un fotograma de vídeo posterior.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de decodificador 30 de vídeo que implementa técnicas de codificación de vídeo. En el ejemplo de la FIG. 3, el decodificador 30 de vídeo incluye una unidad 70 de decodificación de entropía, una unidad 72 de compensación de movimiento, una unidad 74 de intrapredicción, una unidad 76 de cuantificación inversa, una unidad 78 de transformación inversa, una memoria 82 de fotogramas de referencia y un sumador 80. El decodificador 30 de vídeo, en algunos ejemplos, realiza un paso de decodificación generalmente recíproco al paso de codificación descrito con respecto al codificador 20 de vídeo (FIG. 2). La unidad 72 de compensación de movimiento genera datos de predicción basándose en los vectores de movimiento recibidos de la unidad 70 de decodificación de entropía, mientras que la unidad 74 de intrapredicción genera datos de predicción basándose en los indicadores de modo de intrapredicción recibidos de la unidad 70 de decodificación de entropía.
Durante el proceso de decodificación, el decodificador 30 de vídeo recibe un flujo de bits de vídeo codificado que representa bloques de vídeo de un segmento de vídeo codificado y elementos de sintaxis asociados del codificador 20 de vídeo. La unidad 70 de decodificación de entropía del decodificador 30 de vídeo decodifica la entropía del flujo de bits de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intrapredicción y otros elementos de sintaxis. La unidad 70 de decodificación de entropía envía los vectores de movimiento y otros elementos de sintaxis a la unidad 72 de compensación de movimiento. El decodificador 30 de vídeo recibe los elementos de sintaxis en el nivel de segmento de vídeo y/o el nivel de bloque de vídeo.
Cuando el segmento de vídeo se codifica como un segmento intracodificado (I), la unidad 74 de intrapredicción genera datos de predicción para un bloque de vídeo del segmento de vídeo actual basándose en un modo de intrapredicción señalizado y datos de bloques anteriormente decodificados del fotograma o imagen actual. Cuando el fotograma de vídeo se codifica como un segmento intercodificado (por ejemplo, B, P o GPB), la unidad 72 de compensación de movimiento produce bloques predictivos para un bloque de vídeo del segmento de vídeo actual basándose en los vectores de movimiento y otros elementos de sintaxis recibidos de unidad 70 de decodificación de entropía. Los bloques predictivos se producen a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador 30 de vídeo construye las listas de fotogramas de referencia, Lista 0 y Lista 1, usando técnicas de construcción predeterminadas basándose en las imágenes de referencia almacenadas en la memoria 82 de fotogramas de referencia.
La unidad 72 de compensación de movimiento determina la información de predicción para un bloque de vídeo del segmento de vídeo actual analizando los vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para producir los bloques de predicción para el bloque de vídeo actual que se está decodificando. La unidad 72 de compensación de movimiento usa algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra o interpredicción) usado para codificar los bloques de vídeo del segmento de vídeo, un tipo de segmento de interpredicción (por ejemplo, segmento B, segmento P, o segmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el segmento, vectores de movimiento para cada bloque de vídeo intercodificado del segmento, estado de interpredicción para cada bloque de vídeo intercodificado del segmento, y otra información para decodificar los bloques de vídeo en el segmento de vídeo actual.
La unidad 72 de compensación de movimiento también realiza interpolación basándose en los filtros de interpolación. La unidad 72 de compensación de movimiento usa filtros de interpolación como los que usa el codificador 20 de vídeo durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles subenteros de bloques de referencia. En este caso, la unidad 72 de compensación de movimiento determina los filtros de interpolación usados por el codificador 20 de vídeo a partir de los elementos de sintaxis recibidos y usa los filtros de interpolación para producir bloques predictivos.
Los datos para una imagen de textura correspondiente a un mapa de profundidad se almacenan en la memoria 82 de fotogramas de referencia. La unidad 72 de compensación de movimiento también se configurará para predecir bloques de profundidad de un mapa de profundidad.
La compresión de imágenes y vídeos ha experimentado un rápido crecimiento, lo que ha llevado a varios estándares de codificación. Dichos estándares de codificación de vídeo incluyen H.261 de ITU-T, Parte 2 del Grupo de Expertos de Imágenes en Movimiento (MPEG)-1 del ISO/IEC, H.262 de ITU-T o Parte 2 del MPEG-2 de la Organización Internacional para la Estandarización (ISO)/Comisión Electrotécnica Internacional (IEC), H.263 de ITU-T, Parte 2 de MPEG-4 de ISO/IEC, Codificación de Vídeo Avanzada (AVC), también denominada H.264 de ITU-T o Parte 10 de MPEG-4 de ISO/IEC, y Codificación de Vídeo de Alta Eficiencia (HEVC), también denominada H.265 de ITU-T o Parte 2 de MPEG-H. La AVC incluye extensiones tales como Codificación de Vídeo Escalable (SVC), Codificación de Vídeo Multivista (MVC) y Codificación de Vídeo Multivista más Profundidad (MVC+D) y AVC 3D (3D-AVC). La HEVC incluye extensiones tales como HEVC Escalable (SHVC), HEVC Multivista (MV-HEVC) y HEVC 3D (3D-HEVC).
La Codificación de Vídeo Versátil (VVC) es un nuevo estándar de codificación de vídeo, que está siendo desarrollado por el Equipo Conjunto de Expertos en Vídeo (JVET) de ITU-T e ISO/IEC. En el momento de escribir esta memoria, el último Borrador de Trabajo (WD) de VVC está incluido en JVET-K1001-v1. El documento JVET JVET-K0325-v3 incluye una actualización de la sintaxis de alto nivel de VVC.
En general, la presente descripción describe técnicas basándose en el desarrollo incompleto del estándar VVC. Sin embargo, las técnicas también se aplican a otras especificaciones de códecs de vídeo.
Las técnicas de compresión de vídeo realizan predicción espacial (intraimagen) y/o predicción temporal (interimagen) para reducir o eliminar la redundancia inherente a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un segmento de vídeo (es decir, una imagen de vídeo o una parte de una imagen de vídeo) se particionará en bloques de vídeo, que también se denominarán bloques de árbol, bloques de árbol de codificación (CTB), unidades de árbol de codificación (CTU), unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un segmento intracodificado (I) de una imagen se codifican usando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo en un segmento intercodificado (P o B) de una imagen usan predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes se denominarán fotogramas y las imágenes de referencia se denominarán fotogramas de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original a codificar y el bloque predictivo. 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 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 mayor compresión, los datos residuales se transforman del dominio de píxeles a un dominio de transformación, dando como resultado coeficientes de transformación residuales, que luego se cuantificarán. Los coeficientes de transformación cuantificados, dispuestos inicialmente en una matriz bidimensional, se escanearán para producir un vector unidimensional de coeficientes de transformación, y se aplicarán la codificación de entropía para lograr una compresión aún mayor.
En una especificación de códec de vídeo, las imágenes se identifican para múltiples propósitos, incluido su uso como una imagen de referencia en la interpredicción, para la salida de imágenes del búfer de imágenes decodificadas (DPB), para el escalado de vectores de movimiento, para la predicción ponderada, etc. En AVC y HEVC, las imágenes se pueden identificar mediante el recuento de orden de imagen (POC). En AVC y HEVC, las imágenes en el DPB se pueden marcar como "usadas como referencia a corto plazo", "usadas como referencia a largo plazo" o "no usadas como referencia". Una vez que una imagen ha sido marcada como "no usada como referencia", la imagen ya no se usará para predicción. Cuando la imagen ya no es necesaria para la salida, la imagen se puede eliminar del DPB.
En AVC, hay dos tipos de imágenes de referencia, a corto y largo plazo. Una imagen de referencia debe marcarse como "no usada como referencia" cuando ya no sea necesaria para referencia de predicción. La conversión entre estos tres estados (a corto plazo, a largo plazo y no usada como referencia) se controla mediante el proceso de marcado de imágenes de referencia decodificadas. Hay dos mecanismos alternativos de marcado de imágenes de referencia decodificadas, el proceso de ventana deslizante implícito y el proceso de operación de control de gestión de memoria explícito (Mm CO). El proceso de ventana deslizante marca una imagen de referencia a corto plazo como "no usada como referencia" cuando el número de fotogramas de referencia es igual a un número máximo dado (max_num_ref_frames en el conjunto de parámetros de secuencia (SPS)). Las imágenes de referencia a corto plazo se almacenan por orden de llegada, de manera que las imágenes a corto plazo decodificadas más recientemente se conservan en el DPB.
El proceso MMCO explícito incluye múltiples comandos MMCO. Un comando MMCO marca una o más imágenes de referencia a corto o largo plazo como "no usadas como referencia", marca todas las imágenes como "no usadas como referencia" o marca la imagen de referencia actual o una imagen de referencia a corto plazo existente como de largo plazo y luego asigna un índice de imagen a largo plazo a esa imagen de referencia a largo plazo.
En el AVC, las operaciones de marcado de imágenes de referencia, así como los procesos de salida y eliminación de imágenes del DPB, se realizan después de que se ha decodificado una imagen.
El HEVC introduce un enfoque diferente para la gestión de imágenes de referencia, denominado conjunto de imágenes de referencia (RPS). La diferencia más fundamental con el concepto RPS en comparación con el proceso de MMCO/ventana deslizante de AVC es que para cada segmento en particular se proporciona un conjunto completo de las imágenes de referencia usadas por la imagen actual o cualquier imagen posterior. Por lo tanto, se señaliza un conjunto completo de todas las imágenes que se deben mantener en el DPB para su uso por la imagen actual o futura. Esto es diferente del esquema AVC donde solo se señalizan cambios relativos al DPB. Con el concepto RPS, no se necesita información de imágenes anteriores en el orden de decodificación para mantener el estado correcto de las imágenes de referencia en el DPB.
Se cambia el orden de decodificación de imágenes y las operaciones DPB en HEVC en comparación con AVC para aprovechar las ventajas de RPS y mejorar la resistencia a los errores. En AVC, las operaciones de marcado de imágenes y búfer (tanto la salida como la eliminación de imágenes decodificadas del DPB) generalmente se aplican después de que se haya decodificado una imagen actual. En HEVC, el RPS se decodifica primero desde una cabecera de segmento de la imagen actual, luego se aplican generalmente operaciones de marcado de imagen y búfer antes de decodificar la imagen actual.
Cada cabecera de segmento en HEVC debe incluir parámetros para la señalización del RPS para la imagen que contiene los segmentos. La única excepción es que no se señaliza ningún RPS para los segmentos de Actualización de Decodificación Instantánea (IDR). En cambio, se infiere que el RPS está vacío. Para los segmentos I que no pertenecen a una imagen IDR, se puede proporcionar un RPS, incluso si pertenecen a una imagen I, ya que hay imágenes que siguen a la imagen I en el orden de decodificación que usan interpredicción de imágenes que precedieron a la imagen I en el orden de decodificación. El número de imágenes en un RPS no deberá exceder el límite de tamaño del DPB especificado por el elemento de sintaxis sps_max_dec_pic_buffering en el SPS.
Cada imagen está asociada con un valor de POC que representa el orden de salida. Las cabeceras de segmentos contienen una palabra de código de longitud fija, pic_order_cnt_lsb, que representa los bits menos significativos (LSB) del valor de POC completo, también denominado el LSB de POC. La longitud de la palabra clave se señaliza en el SPS y puede ser de entre 4 y 16 bits. El concepto RPS usa el POC para identificar imágenes de referencia. Además de su propio valor de POC, cada cabecera de segmento contiene directamente o hereda del SPS una representación codificada de los valores de POC (o los LSB) de cada imagen en el RPS.
El RPS para cada imagen consta de cinco listas diferentes de imágenes de referencia, también denominadas los cinco subconjuntos de RPS. RefPicSetStCurrBefore consiste en todas las imágenes de referencia a corto plazo que son anteriores a la imagen actual, tanto en el orden de decodificación como de salida, y que se usarán en la interpredicción de la imagen actual. RefPicSetStCurrAfter consiste en todas las imágenes de referencia a corto plazo que son anteriores a la imagen actual en el orden de decodificación, que suceden a la imagen actual en el orden de salida y se usarán en la interpredicción de la imagen actual. RefPicSetStFoll consiste en todas las imágenes de referencia a corto plazo que se usan en interpredicción de una o más de las imágenes que siguen a la imagen actual en el orden de decodificación, y que no se usan en interpredicción de la imagen actual. RefPicSetLtCurr consiste en todas las imágenes de referencia a largo plazo que se usarán en interpredicción de la imagen actual. RefPicSetLtFoll consiste en todas las imágenes de referencia a largo plazo que se usarán en interpredicción de uno o más de las imágenes que siguen a la imagen actual en el orden de decodificación, y que no se usan en interpredicción de la imagen actual.
El RPS se señaliza usando hasta tres bucles que iteran sobre diferentes tipos de imágenes de referencia; imágenes de referencia a corto plazo con un valor de POC más bajo que la imagen actual, imágenes de referencia a corto plazo con un valor de POC más alto que la imagen actual e imágenes de referencia a largo plazo. Además, se envía un indicador (used_by_curr_pic_X_flag) para cada imagen de referencia que indica si la imagen de referencia se usa como referencia por la imagen actual (incluida en una de las listas RefPicSetStCurrBefore, RefPicSetStCurrAfter o RefPicSetLtCurr) o no (incluida en una de las listas RefPicSetStFoll o RefPicSetLtFoll).
La FIG. 4 ilustra un RPS 400 que tiene una imagen actual B14 con entradas (por ejemplo, una imagen) en todos los subconjuntos 402 del RPS 400. En el ejemplo de la FIG. 4, la imagen actual B14 contiene exactamente una imagen en cada uno de los cinco subconjuntos 402 (también denominados subconjuntos RPS). P8 es la imagen del subconjunto 402 denominada RefPicSetStCurrBefore debido a que la imagen está antes en orden de salida y es usada por B14. P12 es la imagen del subconjunto 402 denominada RefPicSetStCurrAfter debido a que la imagen está después en orden de salida y es usada B14. P13 es la imagen en el subconjunto 402 denominada RefPicSetStFoll debido a que la imagen es una imagen de referencia a corto plazo no usada por B14 (pero debe mantenerse en el DPB ya que es usada por B15). P4 es la imagen del subconjunto 402 denominada RefPicSetLtCurr debido a que la imagen es una imagen de referencia a largo plazo usada por B14. I0 es la imagen del subconjunto 402 denominada RefPicSetLtFoll, ya que la imagen es una imagen de referencia a largo plazo no usada por la imagen actual (pero debe mantenerse en el DPB, ya que es usada por B15).
La parte a corto plazo del RPS 400 se incluirá directamente en la cabecera de segmento. Alternativamente, la cabecera de segmento contiene solo un elemento de sintaxis que representa un índice, haciendo referencia a una lista predefinida de RPS enviados en el SPS activo. La parte a corto plazo del RPS 402 se puede señalizar usando cualquiera de dos esquemas diferentes; InterRPS, como se describe a continuación, o IntraRPS, como se describe aquí. Cuando se usa IntraRPS, num_negative_pics y num_positive_pics se señalizan representando la longitud de dos listas diferentes de imágenes de referencia. Estas listas contienen las imágenes de referencia con diferencia de POC negativa y diferencia de POC positiva en comparación con la imagen actual, respectivamente. Cada elemento de estas listas está codificado con un código de longitud variable que representa la diferencia en el valor de POC en relación con el elemento anterior de la lista menos uno. Para la primera imagen de cada lista, la señalización es relativa al valor de POC de la imagen actual menos uno.
Cuando se codifican los RPS recurrentes en el conjunto de parámetros de secuencia, es posible codificar los elementos de un RPS (por ejemplo, RPS 400) con referencia a otro RPS ya codificado en el conjunto de parámetros de secuencia. Esto se denomina InterRPS. No hay problemas de robustez de errores asociados con este método, ya que todos los RPS del conjunto de parámetros de secuencia están en la misma unidad de Capa de Abstracción de Red (NAL). La sintaxis InterRPS aprovecha el hecho de que el RPS de la imagen actual se puede predecir a partir del RPS de una imagen anteriormente decodificada. Esto se debe a que todas las imágenes de referencia de la imagen actual deben ser imágenes de referencia de la imagen anterior o de la propia imagen decodificada anteriormente. Solo es necesario indicar cuáles de estas imágenes deben ser imágenes de referencia y se usarán para la predicción de la imagen actual. Por lo tanto, la sintaxis comprende lo siguiente: un índice que apunta al RPS a usar como predictor, un delta_POC que se añadirá al delta_POC del predictor para obtener el delta_POC del RPS actual, y un conjunto de indicadores para indicar qué imágenes son imágenes de referencia y si solo se usan para la predicción de imágenes futuras.
Los codificadores que deseen explotar el uso de imágenes de referencia a largo plazo deben establecer el elemento de sintaxis SPS long_term_ref_pics_present_flag en uno. Las imágenes de referencia a largo plazo se pueden señalizar entonces en la cabecera de segmento mediante palabras de código de longitud fija, poc_lsb_lt, que representan los bits menos significativos del valor de POC completo de cada imagen a largo plazo. Cada poc_lsb_lt es una copia de la palabra de código pic_order_cnt_lsb que se señalizó para una imagen particular a largo plazo. También es posible señalizar un conjunto de imágenes a largo plazo en el SPS como una lista de valores LSB de POC. El LSB de POC para una imagen a largo plazo puede ser señalizado en la cabecera de segmento como índice de esta lista.
El elemento de sintaxis delta_poc_msb_cycle_lt_minus1 se puede señalizar adicionalmente para permitir el cálculo de la distancia de POC completa de una imagen de referencia a largo plazo en relación con la imagen actual. Se requiere que la palabra de código delta_poc_msb_cycle_lt_minus1 se señalice para cada imagen de referencia a largo plazo que tenga el mismo valor LSB de p Oc que cualquier otra imagen de referencia en el RPS.
Para el marcado de imágenes de referencia en HEVC, normalmente habrá un número de imágenes presentes en el DPB antes de la decodificación de imágenes. Algunas de las imágenes están disponibles para la predicción y, como tal, marcadas como "usadas como referencia". Otras imágenes no están disponibles para la predicción, pero están esperando la salida y, como tal, están marcadas como "no usadas como referencia". Cuando se ha analizado la cabecera de segmento, se lleva a cabo un proceso de marcado de imagen antes de que se decodifiquen los datos del segmento. Las imágenes que están presentes en el DPB y están marcadas como "usadas como referencia" pero que no están incluidas en el RPS están marcadas como "no usadas como referencia". Las imágenes que no están presentes en el DPB pero que se incluyen en el conjunto de imágenes de referencia se ignoran cuando el parámetro used_by_curr_pic_X_flag es igual a cero. Sin embargo, cuando el parámetro used_by_curr_pic_X_flag en cambio es igual a uno, esta imagen de referencia estaba destinada a ser usada para la predicción en la imagen actual, pero no aparece. Entonces se infiere una pérdida de imagen involuntaria y el decodificador debe tomar las medidas apropiadas.
Después de decodificar la imagen actual, se marca como "usada como referencia a corto plazo".
A continuación, se analiza la construcción de la lista de imágenes de referencia en HEVC. En HEVC, el término interpredicción se usa para denotar predicción derivada de elementos de datos (por ejemplo, valores de muestra o vectores de movimiento) de imágenes de referencia distintas de la imagen decodificada actual. Al igual que en AVC, una imagen se puede predecir a partir de múltiples imágenes de referencia. Las imágenes de referencia que se usan para interpredicción se organizan en una o más listas de imágenes de referencia. El índice de referencia identifica cuál de las imágenes de referencia de la lista debe usarse para crear la señal de predicción.
Se usa una lista de imágenes de referencia única, Lista 0, para un segmento P y se usan dos listas de imágenes de referencia, Lista 0 y Lista 1, para los segmentos B. Similar a AVC, la construcción de la lista de imágenes de referencia en HEVC incluye la inicialización de listas de imágenes de referencia y la modificación de listas de imágenes de referencia.
En AVC, el proceso de inicialización para la Lista 0 es diferente para el segmento P (para el que se usa el orden de decodificación) y los segmentos B (para los que se usa el orden de salida). En HEVC, el orden de salida se usa en ambos casos.
La inicialización de las listas de imágenes de referencia crea la Lista 0 y la Lista 1 por defecto (si el segmento es un segmento B) basándose en tres subconjuntos RPS: RefPicSetStCurrBefore, RefPicSetStCurrAfter y RefPicSetLtCurr. Las imágenes a corto plazo con un orden de salida anterior (posterior) se insertan primero en la Lista 0 (Lista 1) en orden ascendente de distancia de POC a la imagen actual, luego las imágenes a corto plazo con un orden de salida posterior (anterior) se insertan en la Lista 0 (Lista 1) en orden ascendente de distancia de POC a la imagen actual, y luego, finalmente, las imágenes a largo plazo se insertan al final. En términos de RPS, para la Lista 0, las entradas en RefPicSetStCurrBefore se insertan en la lista inicial, seguidas de las entradas en RefPicSetStCurrAfter. Posteriormente, se añaden las entradas en RefPicSetLtCurr, si están disponibles.
En HEVC, se repite el proceso anterior (se añaden nuevamente las imágenes de referencia que ya se han añadido a la lista de imágenes de referencia) cuando el número de entradas de una lista es menor que el número objetivo de imágenes de referencia activas (señalizadas en el conjunto de parámetros de imagen o en la cabecera de segmento). Cuando el número de entradas es mayor que el número objetivo, la lista se trunca.
Una vez inicializada una lista de imágenes de referencia, debe modificarse de manera que las imágenes de referencia para la imagen actual se dispongan en cualquier orden, incluido el caso donde una imagen de referencia particular aparezca en más de una posición de la lista, basándose en los comandos de modificación de listas de imágenes de referencia. Cuando el indicador que indica la presencia de modificaciones de la lista se establece en uno, se señaliza un número fijo (igual al número objetivo de entradas en la lista de imágenes de referencia) de comandos y cada comando inserta una entrada para una lista de imágenes de referencia. Una imagen de referencia se identifica en el comando por el índice de la lista de imágenes de referencia para la imagen actual derivada de la señalización RPS. Esto es diferente de la modificación de listas de imágenes de referencia en H.264/AVC, en donde una imagen se identifica ya sea por el número de imagen (derivado del elemento de sintaxis frame_num) o el índice de imagen de referencia a largo plazo, y es posible que se necesiten menos comandos, por ejemplo, para intercambiar las dos primeras entradas de una lista inicial o insertar una entrada al comienzo de la lista inicial y desplazar las demás.
Una lista de imágenes de referencia no está permitida que incluya ninguna imagen de referencia con un TemporalId superior al de la imagen actual. Un flujo de bits HEVC puede consistir en varias subcapas temporales. Cada unidad NAL pertenece a una subcapa específica según lo indicado por TemporalId (igual a temporal_id_plus1 - 1).
La gestión de imágenes de referencia se basa directamente en listas de imágenes de referencia. El documento JCT-VC JCTVC-G643 incluye un enfoque para usar directamente tres listas de imágenes de referencia, lista 0 de imágenes de referencia, lista 1 de imágenes de referencia y una lista de imágenes de referencia inactiva, para la gestión de las imágenes de referencia en el DPB, evitando así la necesidad de los procesos de señalización y decodificación, incluidos 1) la ventana deslizante y los procesos de MMCO, así como los procesos de inicialización y modificación de listas de imágenes de referencia en AVC, o 2) el conjunto de imágenes de referencia, así como los procesos de inicialización y modificación de listas de imágenes de referencia en HEVC.
Los enfoques para la gestión de imágenes de referencia tienen varios problemas. El enfoque AVC involucra la ventana deslizante, los procesos MMCO y los procesos de inicialización y modificación de listas de imágenes de referencia, que son complejos. Además, la pérdida de imágenes conduce a la pérdida del estado del DPB en términos de qué imágenes deberían haber estado en el DPB para fines de referencia de interpredicción. El enfoque HEVC no tiene el problema de pérdida de estado de DPB. Sin embargo, el enfoque HEVC implica un complejo proceso de señalización y derivación de conjuntos de imágenes de referencia, así como los procesos de inicialización y modificación de listas de imágenes de referencia, que son complejos. El enfoque en JCTVC-G643 para usar directamente tres listas de imágenes de referencia, lista 0 de imágenes de referencia, lista 1 de imágenes de referencia, así como una lista de imágenes de referencia inactiva, para la gestión de las imágenes de referencia en el DPB implica los siguientes aspectos: una tercera lista de imágenes de referencia, es decir, la lista de imágenes de referencia inactiva; la codificación en dos partes de las diferencias de POC como una parte "a corto plazo" y una parte "a largo plazo" codificada por ue(v); la granularidad de POC basada en TemporalId para la codificación de diferencias de POC, el uso de la codificación en dos partes de las diferencias de POC para la determinación de la marca entre "usada como referencia a corto plazo" o "usada como referencia a largo plazo"; una descripción del subconjunto de la lista de imágenes de referencia, que habilita la capacidad de especificar una lista de imágenes de referencia eliminando imágenes de referencia de la cola de una cierta descripción anterior de la lista de imágenes de referencia; el modo de copia de listas de imágenes de referencia habilitado por el elemento de sintaxis ref_pic_list_copy_flag; y el proceso de descripción de listas de imágenes de referencia. Cada uno de los aspectos anteriores hace que el enfoque sea innecesariamente complejo. Además, el proceso de decodificación de las listas de imágenes de referencia en JCTVC-G643 también es complejo. La señalización de imágenes de referencia a largo plazo necesita la señalización del ciclo de POC en las cabeceras de segmentos. Esto no es eficiente.
Con el fin de abordar los problemas enumerados anteriormente, se describen en la presente memoria las siguientes soluciones, cada una de las cuales se aplicará individualmente y algunas de las cuales se pueden aplicar en combinación. 1) El marcado de imágenes de referencia se basa directamente en las dos listas de imágenes de referencia, a saber, la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia.
1a) La información para derivación de las dos listas de imágenes de referencia se señaliza basándose en los elementos de sintaxis y las estructuras de sintaxis en el SPS, PPS y/o la cabecera de segmento. 1b) Cada una de las dos listas de imágenes de referencia para una imagen se señaliza explícitamente en una estructura de lista de imágenes de referencia. 1b.i) Una o más estructuras de listas de imágenes de referencia pueden ser señalizadas en SPS y cada una de ellas puede ser referenciada por un índice desde la cabecera de segmento.
1b.ii) Cada una de las listas 0 y 1 de imágenes de referencia se puede señalizar directamente en la cabecera de segmento. 2) La información para derivación de las dos listas de imágenes de referencia se señaliza para todos los tipos de segmentos, es decir, B (bipredictivo), P (unipredictivo) e I (intra) segmentos. El término segmento se refiere a un conjunto de unidades de árbol de codificación, tal como un segmento en HEVC o la última WD de VVC; también se refiere a algún otro conjunto de unidades de árbol de codificación, tal como un mosaico en HEVC. 3) Las dos listas de imágenes de referencia se generan para todos los tipos de segmentos, es decir, segmentos B, P e I. 4) Las dos listas de imágenes de referencia se construyen directamente sin usar un proceso de inicialización de listas de imágenes de referencia y un proceso de modificación de listas de imágenes de referencia. 5) En cada una de las dos listas de imágenes de referencia, solo se puede hacer referencia a las imágenes de referencia que se usarán para la predicción de la imagen actual mediante un número de entradas al principio de la lista. Estas entradas se denominan entradas activas en la lista, mientras que otras entradas se denominan entradas inactivas en la lista. El número de entradas totales y el número de entradas activas en la lista pueden derivarse. 6) La imagen a la que hace referencia una entrada inactiva en una lista de imágenes de referencia no se permite que sea referida por otra entrada en la lista de imágenes de referencia o por cualquier entrada en la otra lista de imágenes de referencia. 7) Las imágenes de referencia a largo plazo solo se identifican mediante un cierto número de LSB de POC, donde este número es mayor que el número de LSB de POC señalizados en las cabeceras de segmentos para derivación de valores de POC, y este número se indica en el SPS. 8) Las estructuras de listas de imágenes de referencia se señalizan solo en las cabeceras de segmentos, tanto las imágenes de referencia a corto plazo como las imágenes de referencia a largo plazo se identifican mediante sus LSB de POC, que se pueden representar mediante números de bits que son diferentes del número de bits usados para representar los LSB de POC señalizados en las cabeceras de segmentos para derivación de valores de POC, y los números de bits usados para representar los LSB de POC para identificar imágenes de referencia a corto plazo e imágenes de referencia a largo plazo son diferentes. 9) Las estructuras de listas de imágenes de referencia se señalizan solo en cabeceras de segmentos, no se hace distinción entre imágenes de referencia a corto y largo plazo, todas las imágenes de referencia se denominan simplemente imágenes de referencia y las imágenes de referencia se identifican por sus LSB de POC, que se representan por un número de bits que es diferente del número de bits usados para representar los LSB de POC señalizados en cabeceras de segmentos para derivación de valores de POC.
Se proporciona una primera realización de la presente descripción. La descripción es relativa al último WD de VVC. En esta realización, dos conjuntos de estructuras de listas de imágenes de referencia se señalizan en el SPS, uno para cada una de la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia.
Se proporcionan definiciones para algunos de los términos usados en la presente memoria. Una imagen de punto de acceso intraaleatorio (IRAP): una imagen codificada para la cual cada unidad NAL de Capa de Codificación de Vídeo (VCL) tiene nal_unit_type igual a IRAP_NUT. Imagen no IRAP: una imagen codificada para la cual cada unidad NAL de VCL tiene nal_unit_type igual a NON_IRAP_NUT. Lista de imágenes de referencia: una lista de imágenes de referencia que se usa para interpredicción de un segmento P o B. Se generan dos listas de imágenes de referencia, la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia, para cada segmento de una imagen no IRAP. El conjunto de imágenes únicas a las que hacen referencia todas las entradas de las dos listas de imágenes de referencia asociadas con una imagen consiste en todas las imágenes de referencia que se usarán para la interpredicción de la imagen asociada o cualquier imagen que siga a la imagen asociada en el orden de decodificación. Para decodificar los datos del segmento P, solo se usa la lista 0 de imágenes de referencia para interpredicción. Para decodificar los datos del segmento B, se usan ambas listas de imágenes de referencia para interpredicción. Para decodificar los datos del segmento un segmento I, no se usa ninguna lista de imágenes de referencia para interpredicción. Imagen de Referencia a Largo Plazo (LTRP): una imagen que se marca como "usada como referencia a largo plazo". Imagen de Referencia a Corto Plazo (STRP): una imagen que se marca como "usada como referencia a corto plazo".
Los términos "usada como referencia a corto plazo", "usada como referencia a largo plazo" o "no usada como referencia" se definen en VVC en la sección 8.3.3 Proceso de decodificación para el marcado de imágenes de referencia, definido en HEVC en la sección 8.3.2 Proceso de decodificación para el conjunto de imágenes de referencia, y definido en AVC en la sección 7.4.3.3 Semántica de marcado de imágenes de referencia decodificadas. Tal como se usa en la presente memoria, los términos tienen el mismo significado.
La sintaxis y semántica relevantes para la primera realización se proporcionan a continuación.
Sintaxis de cabecera de unidad NAL.
Sintaxis de Carga Útil de Secuencia de Bytes Sin Procesar (RBSP) del conjunto de parámetros de secuencia
Sintaxis RBSP del conjunto de parámetros de imagen.
Sintaxis de cabecera de segmento.
Sintaxis de la estructura de lista de imágenes de referencia.
Semántica de cabecera de unidad NAL.
Un forbidden_zero_bit será igual a 0. nal_unit_type especifica el tipo de estructura de datos RBSP contenida en la unidad NAL.
Tabla 7-1 - Códigos de tipo de unidad NAL y clases de tipo de unidad NAL
El nuh_temporal_id_plus1 menos 1 especifica un identificador temporal para la unidad NAL. El valor de nuh_temporal_id_plus1 no será igual a 0. La variable TemporalId se especifica de la siguiente manera: TemporalId = nuh_temporal _id_plus1 - 1. Cuando nal_unit_type es igual a iRa P_NUT, el segmento codificado pertenece a una imagen IRAP, TemporalId será igual a 0. El valor de TemporalId será el mismo para todas las unidades NAL de VCL de una unidad de acceso. El valor de TemporalId de una imagen codificada o de una unidad de acceso es el valor de TemporalId de las unidades NAL de VCL de la imagen codificada o de la unidad de acceso. El valor de TemporalId para las unidades NAL no VCL se limita de la siguiente manera: si nal_unit_type es igual a SPS_NUT, TemporalId será igual a 0 y TemporalId de la unidad de acceso que contiene la unidad NAL será igual a 0. De lo contrario, si nal_unit_type es igual a EOS_NUT o EOB_n Ut , TemporalId será igual a 0. De lo contrario, TemporalId será mayor o igual que TemporalId de la unidad de acceso que contiene la unidad NAL. Cuando la unidad NAL es una unidad NAL no VCL, el valor de TemporalId es igual al valor mínimo de los valores de TemporalId de todas las unidades de acceso a las que se aplica la unidad NAL no VCL. Cuando nal_unit_type es igual a PPS_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso que contiene, ya que todos los conjuntos de parámetros de imagen (PPS) se incluirán al comienzo de un flujo de bits, en donde la primera imagen codificada tiene TemporalId igual a 0. Cuando nal_unit_type es igual a PREFIX_SEI_NUT o SUFFIX_SEI_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso que contiene, ya que una unidad NAL de SEI contiene información que se aplica a un subconjunto de flujo de bits que incluye unidades de acceso para las que los valores de TemporalId son mayores que TemporalId de la unidad de acceso que contiene la unidad NAL de SEI. nuh_reserved_zero_7bits será igual a '0000000'. Otros valores de nuh_reserved_zero_7bits serán especificados en el futuro por la ITU-T | ISO/IEC. Los decodificadores ignorarán (es decir, eliminarán del flujo de bits y descartarán) las unidades<n>A<l>con valores de nuh_reserved_zero_7bits no iguales a '0000000'.
Semántica RBSP del conjunto de parámetros de secuencia.
Un log2_max_pic_order_cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se usa en el proceso de decodificación para el recuento de orden de imagen de la siguiente manera: MaxPicOrderCntLsb = 2 ( log2_max_pic_order_cnt_lsb_minus4 4 ). El valor de log2_max_pic_order_cnt_lsb_minus4 estará en el intervalo de 0 a 12, ambos inclusive. sps_max_dec_pic_buffering_minus1 más 1 especifica el tamaño máximo requerido del búfer de imágenes decodificadas para la CVS en unidades de búferes de almacenamiento de imágenes. El valor de sps_max_dec_pic_buffering _minus1 estará en el intervalo de 0 a MaxDpbSize - 1, ambos inclusive, donde MaxDpbSize es como se especifica en otro lugar. long_term_ref_pics_flag igual a 0 especifica que no se usa LTRP para la interpredicción de ninguna imagen codificada en la CVS. long_term_ref_pics_flag igual a 1 especifica que se usarán LTRP para la interpredicción de una o más imágenes codificadas en la CVS. additional_lt_poc_lsb especifica el valor de la variable MaxLtPicOrderCntLsb que se usa en el proceso de decodificación para las listas de imágenes de referencia de la siguiente manera: MaxLtPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 4 additional_lt_poc_lsb ). El valor de additional_lt_poc_lsb estará en el intervalo 0 y 32 - log2_max_pic_order_cnt_lsb_minus4 - 4, ambos inclusive. Cuando no está presente, el valor de additional_lt_poc_lsb se infiere que es igual a 0. num_ref_pic_lists_in_sps[ i ] especifica el número de las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i incluidas en el SPS. El valor de num_ref_pic_lists_in_sps[ i ] estará en el intervalo de 0 a 64, ambos inclusive. Para cada valor de listIdx (igual a 0 o 1), un decodificador debe asignar memoria para un número total de estructuras de sintaxis num_ref_pic_lists_in_sps[ i ] 1 ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) ya que hay una estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) directamente señalizada en las cabeceras de segmentos de una imagen actual.
Semántica RBSP del conjunto de parámetros de imagen.
Un num_ref_idx_default_active_minus1[ i ] más 1, cuando i es igual a 0, especifica el valor inferido de la variable NumRefIdxActive[ 0 ] para los segmentos P o B con num_ref_idx_active_override_flag igual a 0, y, cuando i es igual a 1, especifica el valor inferido de NumRefIdxActive[ 1 ] para los segmentos B con num_ref_idx_active_override_flag igual a 0. El valor de num_ref_idx_default_active_minus1[ i ] estará en el intervalo de 0 a 14, ambos inclusive.
Semántica de cabecera de segmento.
Cuando está presente, el valor de cada uno de los elementos de sintaxis de cabecera de segmento slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todas las cabeceras de segmentos de una imagen codificada.... slice_type especifica el tipo de codificación del segmento según la Tabla 7-3.
Tabla 7-3 - Asociación de nombres a slice_type
Cuando nal_unit_type es igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type será igual a 2.... slice_pic_order_cnt_lsb especifica el módulo de recuento de orden de imagen MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice_pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de slice_pic_order_cnt_lsb estará en el intervalo de 0 a MaxPicOrderCntLsb - 1, ambos inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se infiere que slice_pic_order_cnt_lsb es igual a 0. ref_pic_list sps_flag[ i ] igual a 1 especifica que la lista de imágenes de referencia i de la imagen actual se deriva basándose en las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i en el SPS activo. ref_pic_list_sps_flag[ i ] igual a 0 especifica que la lista de imágenes de referencia i de la imagen actual se deriva basándose en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i que se incluye directamente en las cabeceras de segmentos de la imagen actual. Cuando num_ref_pic_lists_in_sps[ i ] es igual a 0, el valor de ref_pic_list_sps_flag[ i ] será igual a 0. ref_pic_list_idx[ i ] especifica el índice, en la lista de la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i incluida en el SPS activo, de la estructura de sintaxis ref_pic_list_struct( listIdx, rplsldx, ItrpFlag ) con listIdx igual a i que se usa para derivación de la lista de imágenes de referencia i de la imagen actual. El elemento de sintaxis ref_pic_list_idx[ i ] se representa por Ceil( Log2( num_ref_pic_lists_in_sps[ i ] ) ) bits. Cuando no está presente, el valor de ref_pic_list_idx[ i ] se infiere que es igual a 0. El valor de ref_pic_list_idx[ i ] estará en el intervalo de 0 a num_ref_ pic_lists_in_sps[ i ] - 1, ambos inclusive. num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num_ref_idx_active_minus1[ 0 ] está presente para los segmentos P y B y que el elemento de sintaxis num_ref_idx_active_minus1[ 1 ] está presente para los segmentos B. num_ref_idx_active_override_flag igual a 0 especifica que los elementos de sintaxis num_ref_idx_active_minus1[ 0 ] y num_ref_idx_active_minus1 [ 1] no están presentes. num_ref_idx_active_minus1[ i ], cuando está presente, especifica el valor de la variable NumRefIdxActive[ i ] de la siguiente manera: NumRefIdxActive[ i ] = num_ref_idx_active_minus1 [ i ] 1. El valor de num_ref_idx_active_minus1 [ i ] estará incluido en el intervalo 0 a 14, ambos inclusive.
El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista de imágenes de referencia i que se usará para decodificar el segmento. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se usará ningún índice de referencia para la lista de imágenes de referencia i para decodificar el segmento. Para i igual a 0 o 1, cuando el segmento actual es un segmento B y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1[ i ] 1. Cuando el segmento actual es un segmento P y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[ 0 ] es igual a num_ref_idx_default_active_minus1[ 0 ] 1. Cuando el segmento actual es un segmento P, se infiere que NumRefIdxActive[ 1 ] es igual a 0. Cuando el segmento actual es un segmento I, tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] se infieren que son iguales a 0.
Alternativamente, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: sea rplsIdx1 igual a ref_pic_listsps_flag[ i ] ? ref_pic_list_idx[ i ] : num_ref_pic_lists_in_sps[ i ], y numRpEntries[ i ] igual a num_strp_entries[ i ][ rplsIdx1 ] num_ltrp_entries[ i ][ rplsIdx1 ]. Cuando NumRefIdxActive[ i ] es mayor que numRpEntries[ i ], el valor de NumRefIdxActive[ i ] se establece igual a numRpEntries[ i ].
Semántica de estructura de lista de imágenes de referencia.
La estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) estará presente en un SPS o en una cabecera de segmento. Dependiendo de si la estructura de sintaxis está incluida en una cabecera de segmento o en un SPS, se aplica lo siguiente: si está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) especifica la lista de imágenes de referencia listIdx de la imagen actual (la imagen que contiene el segmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) especifica un candidato para la lista de imágenes de referencia listIdx, y el término "la imagen actual" en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tiene uno o más segmentos que contienen ref_pic_list_idx[ listIdx ] igual a un índice en la lista de las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) incluidas en el SPS, y 2) está en una CVS que tiene el SPS como el SPS activo. num_strp_entries[ listIdx ][ rplsIdx ] especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag). num_ltrp_entries[ listIdx ][ rplsIdx ] especifica el número de entradas LTR<p>en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag). Cuando no está presente, el valor de num_ltrp_entries[ listIdx ][ rplsIdx ] se infiere que es igual a 0. La variable NumEntriesInList[ listIdx ][ rplsIdx ] se deriva de la siguiente manera: NumEntriesInList[ listIdx ][ rplsIdx ] = num_strp_entries[ listIdx ][ rplsIdx ] num_ltrp_entries[ listIdx ] [ rplsIdx ]. El valor de NumEntriesInList[ listIdx ][ rplsIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, ambos inclusive. lt_ref_pic_flag listIdx ][ rplsIdx ][ i ] igual a 1 especifica que la i-ésima entrada en la sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) es una entrada LTRP. lt_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] igual a 0 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct, listIdx( listIdx rplsldx, ltrpFlag ) es una entrada STRP. Cuando no está presente, se infiere que el valor de lt_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] es igual a 0. Es un requisito de conformidad del flujo de bits que la suma de lt_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] para todos los valores de i en el intervalo de 0 a NumEntriesInList[ listIdx ][ rplsIdx ] - 1, ambos inclusive, será igual a num_ltrp_entries[ listIdx ][ rplsIdx ]. delta_poc_st[ listIdx ][ rplsIdx ][ i ], cuando la i-ésima entrada es la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imagen de la imagen actual y la imagen a la que hace referencia la i-ésima entrada o, cuando la i-ésima entrada es una entrada STRP pero no la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imagen de las imágenes a las que hace referencia la i-ésima entrada y la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ). El valor de delta_poc_st[ listIdx ][ rplsIdx ][ i ] estará en el intervalo de -215 a 215 - 1, ambos inclusive. poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imagen MaxLtPicOrderCntLsb de la imagen a la que se refiere la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] es Log2( MaxLtPicOrderCntLsb ) bits.
Se analiza el proceso de decodificación. El proceso de decodificación funciona de la siguiente manera para la imagen actual de CurrPic. La decodificación de las unidades NAL se especifica a continuación. Los procesos siguientes especifican los siguientes procesos de decodificación usando elementos de sintaxis en la capa de cabecera de segmento y superiores. Se derivan variables y funciones relacionadas con el recuento de orden de imagen. Esto debe invocarse solo para el primer segmento de una imagen. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se invoca el proceso de decodificación para la construcción de listas de imágenes de referencia para derivación de la lista 0 de imágenes de referencia (RefPicList[ 0 ]) y la lista 1 de imágenes de referencia (RefPicList[ 1 ]). Se invoca el proceso de decodificación para el marcado de imágenes de referencia, en donde las imágenes de referencia se marcan como "no usadas como referencia" o "usadas como referencia a largo plazo". Esto debe invocarse solo para el primer segmento de una imagen. Se invocan los procesos de decodificación para codificar unidades de árbol, escalar, transformar, filtrar en bucle, etc. Después de que se hayan decodificado todos los segmentos de la imagen actual, la imagen decodificada actual se marca como "usada como referencia a corto plazo".
Se analiza el proceso de decodificación de la unidad NAL. Las entradas a este proceso son unidades NAL de la imagen actual y sus unidades NAL no VCL asociadas. Las salidas de este proceso son las estructuras de sintaxis RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis RBSP de la unidad NAL y, a continuación, analiza la estructura de sintaxis RBSP.
Se analiza el proceso de decodificación de segmentos, incluido el proceso de decodificación para el recuento de orden de imagen. La salida de este proceso es PicOrderCntVal, el recuento de orden de imagen de la imagen actual. Los recuentos de orden de imagen se usan para identificar imágenes, para derivar parámetros de movimiento en modo de fusión y predicción de vectores de movimiento, y para la verificación de conformidad del decodificador. Cada imagen codificada está asociada con una variable de recuento de orden de imagen, denominada PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se derivan de la siguiente manera: sea prevTid0Pic la imagen anterior en el orden de decodificación que tenga TemporalId igual a 0. La variable prevPicOrderCntLsb se establece igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece igual a PicOrderCntMsb de prevTid0Pic.
La variable PicOrderCntMsb de la imagen actual se deriva de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece igual a 0. De lo contrario, PicOrderCntMsb se deriva de la siguiente manera:
if( ( slice_pic_order_cnt_lsb < prevPicOrderCntLsb ) &&
( ( prevPicOrderCntLsb - slice_pic_order_cnt_lsb ) >= ( MaxPicOrderCntLsb / 2 ) ) )
PicOrderCntMsb = prevPicOrderCntMsb MaxPicOrderCntLsb
else if( (slice_pic_order_cnt_lsb > prevPicOrderCntLsb ) &&
( ( slice_pic_order_cnt_lsb - prevPicOrderCntLsb ) > ( MaxPicOrderCntLsb / 2 ) ) )
PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb
else
PicOrderCntMsb = prevPicOrderCntMsb
PicOrderCntVal se deriva de la siguiente manera: PicOrderCntVal = PicOrderCntMsb slice_pic_order_cnt_lsb.
Todas las imágenes IRAP tendrán PicOrderCntVal igual a 0, ya que slice_pic_order_cnt_lsb se infiere que es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se establecen igual a 0. El valor de PicOrderCntVal estará en el intervalo de -231 a 231 - 1, ambos inclusive. En una CVS, los valores de PicOrderCntVal para dos imágenes codificadas cualesquiera no serán los mismos.
En cualquier momento durante el proceso de decodificación, los valores de PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 ) para dos imágenes de referencia cualesquiera en el DPB no serán los mismos. La función PicOrderCnt( picX ) se especifica de la siguiente manera: PicOrderCnt( picX ) = PicOrderCntVal de la imagen picX. La función DiffPicOrderCnt( picA, picB ) se especifica de la siguiente manera: DiffPicOrderCnt( picA, picB ) = PicOrderCnt( picA ) - PicOrderCnt( picB). El flujo de bits no contendrá datos que den como resultado valores de DiffPicOrderCnt( picA, picB ) usados en el proceso de decodificación que no estén en el intervalo de -215 a 215 - 1, ambos inclusive. Sea X la imagen actual e Y y Z sean otras dos imágenes en la misma secuencia de vídeo codificada (CVS), Y y Z se consideran que están en la misma dirección de orden de salida de X cuando DiffPicOrderCnt( X, Y ) y DiffPicOrderCnt( X, Z ) son positivos o ambos son negativos.
Se analiza el proceso de decodificación para la construcción de listas de imágenes de referencia. Este proceso se invoca al principio del proceso de decodificación para cada segmento de una imagen que no es IRAP. Las imágenes de referencia se abordan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Cuando se decodifica un segmento I, no se usa ninguna lista de imágenes de referencia en la decodificación de los datos del segmento. Cuando se decodifica un segmento P, solo se usa la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos del segmento. Cuando se decodifica un segmento B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se usan en la decodificación de los datos del segmento. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se derivan las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ]. Las listas de imágenes de referencia se usan en el marcado de imágenes de referencia o en la decodificación de los datos del segmento. Para un segmento I de una imagen no IRAP que no es el primer segmento de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se derivarán para verificar la conformidad del flujo de bits, pero su derivación no es necesaria para la decodificación de la imagen o las imágenes actuales que siguen a la imagen actual en el orden de decodificación. Para un segmento P que no es el primer segmento de una imagen, RefPicList[ 1 ] se derivará para verificar la conformidad del flujo de bits, pero su derivación no es necesaria para la decodificación de la imagen o las imágenes actuales que siguen a la imagen actual en el orden de decodificación. Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = 0; i< 2; i++) {
if( ref_pic_list_sps_f1ag[ i])
Rplsldxf i ] = ref_pic_list_idx[ i I
else
Rplsldxf i ] = mim_ref_pic_lists_in_sps[ i ]
for(j = 0, pocBasc = PicOrderCntVal; j < NumEntriesInListf i ][ Rplsldxf i ) ]; j++) {
if( !lt_rcf_pic_flag[ i ][ Rplsldxf i ] I[ j ] ) í
RcIPícPocListf i || j | = pocBasc - dclta_poc_sl[ i ][ Rplskl\[ i ] )| j |
ifíhay una imagen de referencia picAen el DPB con PicOrderCntVal igual a RefPicPocListí i ][ i 1) RcfPicList[ i || j ] = picA
else
RefPícListl i ]| j ] = “ninguna imagen de referencia"
pocBasc = RdPicPocListf i || j J
} else {
if( hay una referencia picA en el DPB con PicOrderCntVal &(MaxLtPicOrderCnlLsb - 1 )
igual a pocjsbjtf i || Rplsldx| i 11| j | )
RefPicListf i 1 [ j ] = picA
else
RefPicListf i ]| j ] = “ninguna imagen de referencia"
}
}
Para cada i igual a 0 o 1, se aplica lo siguiente: las primeras entradas NumRefIdxActive[ i ] en RefPicList[ i ] se denominan entradas activas en RefPicList[ i ], y las demás entradas en RefPicList[ i ] se denominan entradas inactivas en RefPicList[ i ]. Cada entrada en RefPicList[ i ][ j ] para j en el intervalo de 0 a NumEntriesInList[ i ][ RplsIdx[ i ] ] - 1, ambos inclusive, se denomina entrada STRP si lt_ref_pic__flag[ i ][ RplsIdx[ i ] ][ j ] es igual a 0, y entrada LTRP de lo contrario. Es posible que se haga referencia a una imagen particular tanto en una entrada en RefPicList[ 0 ] como en una entrada en RefPicList[ 1 ]. También es posible que se haga referencia a una imagen particular por más de una entrada en RefPicList[ 0 ] o por más de una entrada en RefPicList[ 1 ]. Las entradas activas en RefPicList[ 0 ] y las entradas activas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que se usarán para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en el orden de decodificación. Las entradas inactivas en RefPicList[ 0 ] y las entradas inactivas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que no se usarán para la interpredicción de la imagen actual pero se usarán en la interpredicción para una o más imágenes que siguen a la imagen actual en el orden de decodificación. Puede haber una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que sean iguales a "ninguna imagen de referencia" porque las imágenes correspondientes no están presentes en el DPB. Cada entrada inactiva en RefPicList[ 0 ] o RefPicList[ 0 ] que es igual a "ninguna imagen de referencia" debe ignorarse. Se debe inferir una pérdida de imagen no intencional para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que es igual a "ninguna imagen de referencia".
Es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ][ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que hace referencia cada entrada activa en RefPicListf 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que la de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se usará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o de un segmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre el PicOrderCntVal de la imagen actual y el PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 y setOfRefPics será el mismo para todos los segmentos de una imagen.
Proceso de decodificación para el marcado de imágenes de referencia.
Este proceso se invoca una vez por imagen, después de la decodificación de una cabecera de segmento y del proceso de decodificación para la construcción de la lista de imágenes de referencia para el segmento, pero antes de la decodificación de los datos del segmento. Este proceso da como resultado que una o más imágenes de referencia en el DPB se marquen como "no usadas como referencia" o "usadas como referencia a largo plazo". Una imagen decodificada en el DPB puede marcarse como "no usada como referencia", "usada como referencia a corto plazo" o "usada como referencia a largo plazo", pero solo una de estas tres en un momento dado durante el funcionamiento del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando proceda. Cuando se hace referencia a una imagen como "usada como referencia", esto se refiere colectivamente a que la imagen se marca como "usada como referencia a corto plazo" o "usada como referencia a largo plazo" (pero no ambas). Cuando la imagen actual es una imagen IRAp , todas las imágenes de referencia actualmente en el DPB (si las hay) se marcan como "no usadas como referencia". Los STRP se identifican por sus valores PicOrderCntVal. Los LTRP se identifican por los LSB de Log2( MaxLtPicOrderCntLsb ) de sus valores PicOrderCntVal. Se aplica lo siguiente: para cada entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ], cuando la imagen referida es un STRP, la imagen se marca como "usada como referencia a largo plazo". Cada imagen de referencia en el DPB a la que no se hace referencia en ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no usada como referencia".
Se proporciona una descripción detallada de la segunda realización de la descripción. Esta sección documenta una segunda realización de la descripción como se describió anteriormente. La descripción es relativa al último WD de VVC. En esta realización, un conjunto de estructuras de listas de imágenes de referencia se señalizan en el SPS, compartido por la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia.
Sintaxis RBSP del conjunto de parámetros de secuencia
Sintaxis RBSP del conjunto de parámetros de imagen.
Sintaxis de cabecera de segmento.
Sintaxis de la estructura de lista de imágenes de referencia.
ref_pic_list_struct( rplsIdx, ltrpFlag ) {Descriptor
Se analiza la semántica de la cabecera de la unidad NAL.
Semántica RBSP del conjunto de parámetros de secuencia.
Un log2_max_pic_order_cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se usa en el proceso de decodificación para el recuento de orden de imagen de la siguiente manera: MaxPicOrderCntLsb = 2 ( log2_max_pic_order_cnt_lsb_minus4 4 ). El valor de log2_max_pic_order_cnt_lsb_minus4 estará en el intervalo de 0 a 12, ambos inclusive. sps_max_dec_pic_buffering_minus1 más 1 especifica el tamaño máximo requerido del búfer de imágenes decodificadas para la CVS en unidades de búferes de almacenamiento de imágenes. El valor de sps_max_dec_pic_buffering_minus1 estará en el intervalo de 0 a MaxDpbSize - 1, ambos inclusive, donde MaxDpbSize es como se especifica en otro lugar. num_ref_pic_lists_in_sps especifica el número de estructuras de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) incluidas en el s Ps . El valor de num_ref_pic_lists_in_sps estará en el intervalo de 0 a 128, ambos inclusive. Un decodificador debe asignar memoria para un número total de estructuras de sintaxis num_short_term_ref_pic_sets 2 ref_pic_list_struct( rplsIdx, ltrpFlag ) ya que hay dos estructuras de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag) señalizadas directamente en las cabeceras de segmentos de una imagen actual. long_term_ref_pics_flag igual a 0 especifica que no se usa LTRP para interpredicción de ninguna imagen codificada en la CVS. long_term_ref_pics_flag igual a 1 especifica que se usarán LTRP para la interpredicción de una o más imágenes codificadas en la CVS. additional_lt_poc_lsb especifica el valor de la variable MaxLtPicOrderCntLsb que se usa en el proceso de decodificación para las listas de imágenes de referencia de la siguiente manera: MaxLtPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 4 additional_lt_poc_lsb )). El valor de additional_lt_poc_lsb estará en el intervalo de 0 a 32 - log2_max_pic_order_cnt_lsb_minus4 - 4, ambos inclusive. Cuando no está presente, el valor de additional_lt_poc_lsb se infiere que es igual a 0.
Se analiza la semántica RBSP del conjunto de parámetros de imagen.
Semántica de cabecera de segmento.
Cuando está presente, el valor de cada uno de los elementos de sintaxis de cabecera de segmento slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todas las cabeceras de segmentos de una imagen codificada. slice_type especifica el tipo de codificación del segmento según la Tabla 7-3.
Tabla 7-3 - Asociación de nombres a slice_type
Cuando nal_unit_type es igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type será igual a 2.... slice_pic_order_cnt_lsb especifica el módulo de recuento de orden de imagen MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice_pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de slice_pic_order_cnt_lsb estará en el intervalo de 0 a MaxPicOrderCntLsb - 1, ambos inclusive. Cuando slice_pic_order_cnt_lsb no esté presente, se infiere que slice_pic_order_cnt_lsb es igual a 0. ref_pic_list sps_flag[ i ] igual a 1 especifica que la lista de imágenes de referencia i de la imagen actual se deriva basándose en las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) en el SPS activo. ref_pic_list_sps_flag[ i ] igual a 0 especifica que la lista de imágenes de referencia i de la imagen actual se deriva basándose en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) que se incluye directamente en las cabeceras de segmentos de la imagen actual. Cuando num_ref_pic_lists_in_sps es igual a 0, el valor de ref_pic_list_sps_flag[ i ] será igual a 0. ref_pic_list_idx[ i ] especifica el índice, en la lista de la estructura de sintaxis ref_pic_list struct( rplsIdx, ltrpFlag ) incluida en el SPS activo, de la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) que se usa para derivación de la lista de imágenes de referencia i de la imagen actual. El elemento de sintaxis ref_pic_list_idx[ i ] se representa por Ceil( Log2( num_ref_pic_lists_in_sps ) ) bits. Cuando no está presente, el valor de ref_pic_list_idx[ i ] se infiere que es igual a 0. El valor de ref_pic_list_idx[ i ] estará en el intervalo de 0 a num_ref_piclists_in_sps - 1, ambos inclusive. num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num_ref_idx_active_minus1[ 0 ] está presente para los segmentos P y B y que el elemento de sintaxis num_ref_idx_active_minus1[ 1 ] está presente para los segmentos B. num_ref_idx_active_override_flag igual a 0 especifica que los elementos de sintaxis num_ref_idx_active_minus1 [ 0 ] y num_ref_idx_active_minus1[ 1 ] no están presentes.
num_ref_idx_active _minus1[ i], cuando está presente, especifica el valor de la variable NumRefIdxActive[ i ] de la siguiente manera: NumRefIdxActive[ i ] = num_ref_idx_active_minus1[ i ] 1. El valor de num_ref_idx_active_minus1[ i ] estará en el intervalo 0 a 14, ambos inclusive. El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista de imágenes de referencia i que se usará para decodificar el segmento. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se usará ningún índice de referencia para la lista de imágenes de referencia i para decodificar el segmento. Para i igual a 0 o 1, cuando el segmento actual es un segmento B y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1[ i ] 1. Cuando el segmento actual es un segmento P y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[ 0 ] es igual a num_ref_idx_default_active_minus1[ 0 ] 1. Cuando el segmento actual es un segmento P, se infiere que NumRefIdxActive[ 1 ] es igual a 0. Cuando el segmento actual es un segmento I, tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] se infieren que son iguales a 0.
Alternativamente, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: sea rplsIdx1 igual a ref_pic_listsps_flag[ i ] ? ref_pic_list_idx[ i ] : num_ref_pic_lists_in_sps[ i ], y numRpEntries[ i ] igual a num_strp_entries[ i ][ rplsIdx1 ] num_ltrp_entries[ i ][ rplsIdx1 ]. Cuando NumRefIdxActive[ i ] es mayor que numRpEntries[ i ], el valor de NumRefIdxActive[ i ] se establece igual a numRpEntries[ i ].
Semántica de estructura de lista de imágenes de referencia.
La estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag) estará presente en un SPS o en una cabecera de segmento. Dependiendo de si la estructura de sintaxis está incluida en una cabecera de segmento o en un SPS, se aplica lo siguiente: si está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) especifica una lista de imágenes de referencia de la imagen actual (la imagen que contiene el segmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) especifica un candidato para la lista de imágenes de referencia, y el término "la imagen actual" en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tiene uno o más segmentos que contienen ref_pic_list_idx[ i ] igual a un índice en la lista de las estructuras de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) incluidas en el SPS, y 2) está en una CVS que tiene el SPS como el SPS activo. num_strp_entries[ rplsIdx ] especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ). num_ltrp_entries[ rplsIdx ] especifica el número de entradas LTRP en la estructura de sintaxis ef_pic_list_struct( rplsIdx, ltrpFlag ). Cuando no está presente, el valor de num_ltrp_entries[ rplsIdx ] se infiere que es igual a 0.
La variable NumEntriesInList[ rplsIdx ] se deriva de la siguiente manera: NumEntriesInList[ rplsIdx ] = num_strp_entries[ rplsIdx ] num_ltrp_entries[ rplsIdx ]. El valor de NumEntriesInList[ rplsIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, ambos inclusive. lt_ref_pic_flag[ rplsIdx ][ i ] igual a 1 especifica que la i-ésima entrada en la sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) es una entrada LTRP. lt_ref_pic_flag[ rplsIdx ][ i ] igual a 0 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) es una entrada STRP. Cuando no está presente, se infiere que el valor de lt_ref_pic_flag[ rplsIdx ][ i ] es igual a 0. Es un requisito de conformidad del flujo de bits que la suma de lt_ref_pic_flag[ rplsIdx ][ i ] para todos los valores de i en el intervalo de 0 a NumEntriesInList[ rplsIdx ] - 1, ambos inclusive, sea igual a num_ltrp_entries[ rplsIdx ]. delta_poc_st[ rplsIdx ][ i ], cuando la i-ésima entrada es la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imagen la imagen actual y la imagen a la que hace referencia la i-ésima entrada o, cuando la i-ésima entrada es una entrada STRP pero no la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imagen de las imágenes a las que hace referencia la i-ésima entrada y la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct( rplsldx, ItrpFlag ). El valor de delta_poc_st[ rplsldx ][ i ] estará en el intervalo de 0 a 215 - 1, ambos inclusive. poc_lsb_lt[ rplsldx ][ i ] especifica el valor del módulo de recuento de orden de imagen MaxLtPicOrderCntLsb de la imagen a la que se refiere la i-ésima entrada en la estructura de sintaxis ref_pic_list struct( rplsIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ rplsIdx ][ i ] es Log2( MaxLtPicOrderCntLsb ) bits.
Se aplica el proceso de decodificación general especificado como parte de la descripción detallada de la primera realización de esta descripción. Se describe el proceso de decodificación de la unidad NAL. Se aplica el proceso de decodificación de la unidad NAL especificado como parte de la descripción detallada de la primera realización de esta descripción.
Se proporciona el proceso de decodificación de segmentos.
Proceso de decodificación para el recuento de orden de imagen.
Se aplica el proceso de decodificación para recuento de orden de imagen especificado como parte de la descripción detallada de la primera realización de esta descripción.
Proceso de decodificación para construcción de listas de imágenes de referencia.
Este proceso se invoca al principio del proceso de decodificación para cada segmento de una imagen que no es IRAP. Las imágenes de referencia se abordan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Cuando se decodifica un segmento I, no se usa ninguna lista de imágenes de referencia en la decodificación de los datos del segmento. Cuando se decodifica un segmento P, solo se usa la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos del segmento. Cuando se decodifica un segmento B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se usan en la decodificación de los datos del segmento. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se derivan las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ]. Las listas de imágenes de referencia se usan en el marcado de imágenes de referencia o en la decodificación de los datos del segmento. Para un segmento I de una imagen no IRAP que no es el primer segmento de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se derivarán para verificar la conformidad del flujo de bits, pero su derivación no es necesaria para la decodificación de la imagen o las imágenes actuales que siguen a la imagen actual en el orden de decodificación. Para un segmento P que no es el primer segmento de una imagen, RefPicList[ 1 ] se derivará para verificar la conformidad del flujo de bits, pero su derivación no es necesaria para la decodificación de la imagen o las imágenes actuales que siguen a la imagen actual en el orden de decodificación.
Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = 0; i < 2: i++) {
if( ref_pic_list_sps ílag[ i ] )
Rplsld.\| i | = ref_pic_list_idx| i |
else
Rplsld.\[ i | = num_ref_pic_lists_in_sps
for( j = 0, pocBasc = PicOrdcrCntVaL j < NumEntricslnList| Rplsld.\| i 11: j++) {
if( !k_rer_p¡c_flag[ Rplsldx| i | |( j | ) {
RcfPicPocL¡st| i ][ j 1 = pocBasc - dclta_poc_st[ Rplsld.\[ ¡ ] ]| j ]
if( hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a RefPicPocList[ i ][ j ]) RefPicListl i II j 1 = picA
clsc
RefPicListl i | | j | = “ninguna imagen de referencia”
pocBasc = RcfPicPocListl i || j |
} clsc {
if( hay una referencia picA en el DPB con PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1)
igual a p o c js b j t f Rplsldxf i ] ][ j ] )
RefPicListl i J[ j J = picA
else
RefPicListl i 1 [ j | = “ninguna imagen de referencia”
1
Para cada i igual a 0 o 1, se aplica lo siguiente: las primeras entradas NumRefIdxActive[ i ] en RefPicList[ i ] se denominan entradas activas en RefPicList[ i ], y las demás entradas en RefPicList[ i ] se denominan entradas inactivas en RefPicList[ i ]. Cada entrada en RefPicList[ i ][ j ] para j en el intervalo de 0 a NumEntriesInList[ RplsIdx[ i ] ] - 1, ambos inclusive, se denomina entrada St RP si lt_ref_pic_flag[ i ][ RplsIdx[ i ] ][ j ] es igual a 0, y entrada LTRP de lo contrario. Es posible que se haga referencia a una imagen particular tanto en una entrada en RefPicList[ 0 ] como en una entrada en RefPicList[ 1 ]. También es posible que se haga referencia a una imagen particular por más de una entrada en RefPicList[ 0 ] o por más de una entrada en RefPicList[ 1 ]. Las entradas activas en RefPicList[ 0 ] y las entradas activas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que se usarán para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en el orden de decodificación. Las entradas inactivas en RefPicList[ 0 ] y las entradas inactivas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que no se usarán para la interpredicción de la imagen actual pero se usarán en la interpredicción para una o más imágenes que siguen a la imagen actual en el orden de decodificación. Puede haber una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que sean iguales a "ninguna imagen de referencia" porque las imágenes correspondientes no están presentes en el DPB. Cada entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] que es igual a "ninguna imagen de referencia" debe ignorarse. Se debe inferir una pérdida de imagen no intencional para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que es igual a "ninguna imagen de referencia".
Es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que hace referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que la de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se usará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o de un segmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre el PicOrderCntVal de la imagen actual y el PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 y setOfRefPics será el mismo para todos los segmentos de una imagen.
Se analiza el proceso de decodificación para el marcado de imágenes de referencia.
Este proceso se invoca una vez por imagen, después de la decodificación de una cabecera de segmento y del proceso de decodificación para la construcción de la lista de imágenes de referencia para el segmento, pero antes de la decodificación de los datos del segmento. Este proceso da como resultado que una o más imágenes de referencia en el DPB se marquen como "no usadas como referencia" o "usadas como referencia a largo plazo". Una imagen decodificada en el DPB puede marcarse como "no usada como referencia", "usada como referencia a corto plazo" o "usada como referencia a largo plazo", pero solo una de estas tres en un momento dado durante el funcionamiento del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando proceda. Cuando se hace referencia a una imagen como "usada como referencia", esto se refiere colectivamente a que la imagen se marca como "usada como referencia a corto plazo" o "usada como referencia a largo plazo" (pero no ambas). Cuando la imagen actual es una imagen IRAP, todas las imágenes de referencia actualmente en el DPB (si las hay) se marcan como "no usadas como referencia". Los STRP se identifican por sus valores PicOrderCntVal. Los LTRP se identifican por los LSB de Log2( MaxLtPicOrderCntLsb ) de sus valores PicOrderCntVal.
Se aplica lo siguiente: para cada entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ], cuando la imagen referida es un STRP, la imagen se marca como "usada como referencia a largo plazo". Cada imagen de referencia en el DPB a la que no se hace referencia en ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no usada como referencia".
La FIG. 5 es una realización de un método 500 de decodificación de un flujo de bits de vídeo codificado implementado por un decodificador de vídeo (por ejemplo, el decodificador 30 de vídeo). El método 500 se realizará después de que el flujo de bits decodificado haya sido recibido directa o indirectamente desde un codificador de vídeo (por ejemplo, el codificador 20 de vídeo). El método 500 se realizará para mejorar el proceso de decodificación (por ejemplo, hacer que el proceso de decodificación sea más eficiente, más rápido, etc., que los procesos de decodificación convencionales) porque el número de entradas activas en la lista de imágenes de referencia se establece igual al número de entradas en la estructura de lista de imágenes de referencia cuando el número predeterminado de entradas activas en la lista de imágenes de referencia es mayor que el número de entradas en la estructura de lista de imágenes de referencia. Esto contrasta con la manera en que se gestiona la lista de imágenes de referencia en HEVC y AVC. Por lo tanto, como cuestión práctica, se mejora el rendimiento de un códec, lo que conduce a una mejor experiencia de usuario.
En el bloque 502, se obtiene una estructura de lista de imágenes de referencia para un segmento actual representado en el flujo de bits de vídeo codificado. En una realización, la estructura de lista de imágenes de referencia contiene un número de entradas. En una realización, un orden de entradas en la estructura de lista de imágenes de referencia es el mismo que un orden de imágenes de referencia correspondientes en la lista de imágenes de referencia. En una realización, el orden es de cero a un valor indicado. En una realización, el valor indicado es de cero a un valor indicado por sps_max_dec_pic_buffering_minus1.
En el bloque 504, se obtiene un número predeterminado de entradas activas en una lista de imágenes de referencia para el segmento actual. En una realización, la lista de imágenes de referencia se designa como RefPictList[0] o RefPictList[1].
En el bloque 506, se construye una lista de imágenes de referencia para el segmento actual. En una realización, la lista de imágenes de referencia contiene un número de entradas activas y número de entradas inactivas.
En el bloque 508, el número de entradas activas en la lista de imágenes de referencia se establece igual al número de entradas en la estructura de lista de imágenes de referencia cuando el número predeterminado de entradas activas en la lista de imágenes de referencia es mayor que el número de entradas en la estructura de lista de imágenes de referencia.
En el bloque 510, se obtiene al menos un bloque reconstruido del segmento actual basándose en al menos una entrada activa de la lista de imágenes de referencia. En una realización, al menos un bloque reconstruido se usa para generar una imagen visualizada en una pantalla de un dispositivo electrónico.
En una realización, la lista de imágenes de referencia comprende una lista de imágenes de referencia usadas para interpredicción. En una realización, la interpredicción es para un segmento P o para un segmento B.
En una realización, la cabecera de segmento contiene un indicador de conjunto de parámetros de secuencia (SPS) de lista de imágenes de referencia designado ref_pic_list_sps_flag[ i ]. Cuando este indicador es igual a 1, la i-ésima lista de imágenes de referencia, es decir, RefPictList[ i ], no se señaliza directamente en la cabecera de segmento, sino que se hace referencia desde el SPS. Cuando este indicador es igual a 0, la iésima lista de imágenes de referencia, es decir, RefPictList[ i ], se señaliza directamente en la cabecera de segmento, no se referencia desde el SPS. En una realización, la cabecera de segmento contiene un indicador de sustitución activo del índice de referencia numérico designado por num_ref_idx_active_override_flag. Cuando este indicador es igual a 1, el número de entradas activas en cada lista de imágenes de referencia es el valor predeterminado señalado en el PPS. Cuando este indicador es igual a 0, el número de entradas activas en cada lista de imágenes de referencia está señalizado explícitamente en la cabecera de segmento.
En una realización, la lista de imágenes de referencia se designa como RefPictList[0] o RefPictList[1], y un orden de entradas en la estructura de lista de imágenes de referencia es el mismo que un orden de imágenes de referencia correspondientes en la lista de imágenes de referencia.
Se proporciona un resumen de realizaciones alternativas basándose en la primera y la segunda realizaciones.
Esta sección proporciona breves resúmenes de otras realizaciones alternativas de la descripción. Los resúmenes son relativos a la descripción de la primera realización. Sin embargo, el concepto básico de la descripción para las siguientes realizaciones alternativas también es aplicable para su implementación además de la descripción para la segunda realización. Tal implementación está en el mismo espíritu de cómo los aspectos se implementan sobre la primera realización.
Semántica del POC delta de las entradas de imágenes de referencia a corto plazo.
En una realización alternativa de la descripción, la semántica del elemento de sintaxis que especifica el POC delta de la i-ésima entrada en una estructura de lista de imágenes de referencia ref_pic_list_struct( ) se define como la diferencia de POC entre la imagen actual y la imagen de referencia asociada con esa i-ésima entrada. Parte de la descripción usada en la presente memoria es relativa al presente borrador estándar (por ejemplo, el borrador de trabajo de VVC) donde solo se muestra o describe el delta. El texto eliminado se indica tachándolo y cualquier texto añadido se resalta.
La semántica de delta_poc_st[ listIdx ][ rplsIdx ][ i ] se define de la siguiente manera: delta_poc_st[ listIdx ][ rplsIdx ][ i ] especifica la diferencia entre los valores de recuento de orden de imagen de la imagen actual y la imagen a la que se hace referencia en la i-ésima entrada. El valor de delta_poc_st[ listIdx ][ rplsIdx ][ i ] estará en el intervalo de -215 a 215 - 1, ambos inclusive.
Es necesario actualizar la ecuación del proceso de construcción de la lista de imágenes de referencia. Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = 0; i < 2; i++) {
if( rcf_pic_list_sps_ílag[ i ] )
Rplsld.\| i | = ref_pic_list_id.\| i |
clsc
Rplsldx| i | = nuni refjjic lists in sps| i |
for(j= (X ; j < NumEntricsInList| i ][ Rplsldx| i ] ];j++){
if ( !lt_rcf_pic_flag| i |] Rplsldx| i | || j | ) {
RcíPicPocListl i || j 1 = PicOrderCntVal - delta_poc_st| i ][ Rplsldx| i | ]| j ]
i f (hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a RefPicPocListí i ][ i ]) RcfPicList[ i || j | = picA
clsc
RefPicListl i || j | = “ninguna imagen de referencia”
} else {
if( hay una referencia picA en el DPB con PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1)
igual a poc lsb_lt| i || Rplsldx[ i ] |[ j | )
RefPicListl i |[ j ] = picA
clsc
RefPicListl i || j | = “ninguna imagen de referencia”
i
}
Señalización de entradas de imágenes de referencia a largo plazo.
En una realización alternativa de la descripción, las entradas de imagen de referencia a largo plazo no se señalizan en la misma estructura de lista de imágenes de referencia que contiene entradas de imagen de referencia a corto plazo. Las entradas de imagen de referencia a largo plazo se señalizan en una estructura separada y para cada entrada en la estructura hay un elemento de sintaxis que describe la posición prevista de la entrada de imagen de referencia a largo plazo para derivación del índice de entrada correspondiente en la lista de imágenes de referencia final.
Sintaxis RBSP del conjunto de parámetros de secuencia.
Sintaxis de cabecera de segmento.
Sintaxis de la estructura de lista de imágenes de referencia.
Sintaxis de la estructura de lista de imágenes de referencia a largo plazo
Semántica RBSP del conjunto de parámetros de secuencia.
Un num_ref_pic_lists_lt_in_sps especifica el número de estructuras de sintaxis ref_pic_list_lt_struct( ltRplsIdx ) incluidas en el SPS. El valor de num_ref_pic_lists_lt_in_sps estará en el intervalo de 0 a 64, ambos inclusive. Cuando no está presente, el valor de num_ref_pic_lists_lt_in_sps se infiere que es igual a 0.
Semántica de cabecera de segmento.
Una ref_pic_list_lt_idx[ i ] especifica el índice en la lista de las estructuras de sintaxis ref_pic_list_lt_struct( ltRplsIdx ) incluidas en el SPS activo que se usa para derivación de la lista de imágenes de referencia i de la imagen actual. El elemento de sintaxis ref_pic_list_lt_idx[ i ] se representa por Ceil( Log2( num_ref_pic_lists_lt_in_sps ) ) bits. El valor de ref_pic_list_lt_idx estará en el intervalo de 0 y num_ref_pic_lists_lt_in_sps - 1, ambos inclusive.
Semántica de estructura de lista de imágenes de referencia.
La estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) estará presente en un SPS o en una cabecera de segmento. Dependiendo de si la estructura de sintaxis está incluida en una cabecera de segmento o en un SPS, se aplica lo siguiente: si está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) especifica la lista de imágenes de referencia a corto plazo listIdx de la imagen actual (la imagen que contiene el segmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) especifica un candidato para la lista de imágenes de referencia a corto plazo listIdx, y el término "la imagen actual" en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tiene uno o más segmentos que contienen ref_pic_list_idx[ listIdx ] igual a un índice en la lista de las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) incluidas en el SPS, y 2) está en una CVS que tiene el SPS como el SPS activo. num_strp_entries[ listIdx ][ rplsIdx ] especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ).
delta_poc_st[ listIdx ][ rplsIdx ][i], cuando la i-ésima entrada es la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ), especifica la diferencia entre los valores de recuento de orden de imagen de la imagen actual y la imagen a la que hace referencia la i-ésima entrada, o, cuando la i-ésima entrada es una entrada STRP pero no la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx), especifica la diferencia entre los valores de recuento de orden de imagen de las imágenes a las que hace referencia la i-ésima entrada y la entrada STRP anterior en la estructura de sintaxis de ref_pic_list_struct( listIdx, rplsIdx ). El valor de delta_poc_st[ listIdx ][ rplsIdx ][ i ] estará en el intervalo de -215 a 215 - 1, ambos inclusive.
Semántica de estructura de lista de imágenes de referencia a largo plazo.
La estructura de sintaxis ref_pic_list_lt_struct( ltRplsIdx ) estará presente en un SPS o en una cabecera de segmento. Dependiendo de si la estructura de sintaxis está incluida en una cabecera de segmento o en un SPS, se aplica lo siguiente: si está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_lt_struct( ltRplsIdx ) especifica una lista de imágenes de referencia a largo plazo de la imagen actual (la imagen que contiene el segmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) especifica un candidato para la lista de imágenes de referencia a largo plazo, y el término "la imagen actual" en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tiene uno o más segmentos que contienen ref_pic_list_lt_idx[ i ] igual a un índice en la lista de las estructuras de sintaxis ref_pic_list_lt_struct( ltRplsIdx ) incluidas en el SPS, y 2) está en una CVS que tiene el SPS como SPS activo. num_ltrp_entries[ ltRplsIdx ] especifica el número de entradas LTRP en la estructura de sintaxis ref_pic_list_lt_struct( ltRplsIdx ). poc_lsb_lt[ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imagen MaxLtPicOrderCntLsb de la imagen a la que hace referencia la i-ésima entrada de la estructura de sintaxis ref_pic_list_lt_struct( rplsIdx ). La longitud del elemento de sintaxis poc_lsb_lt[ rplsIdx ][ i ] es Log2( MaxLtPicOrderCntLsb ) bits. lt_pos_idx[ rplsIdx [i] especifica el índice de la i-ésima entrada en la estructura de sintaxis ref_pic_list_lt_struct( rplsIdx ) en la lista de imágenes de referencia después de la construcción de la lista de imágenes de referencia. La longitud del elemento de sintaxis lt_pos_idx[ rplsIdx ][ i ] es Log2( sps_max_dec_pic_buffering_minus1 1 ) bits. Cuando num_ltrp_entries[ ltRplsIdx ] es mayor que 1, poc_lsb_lt[ rplsIdx ][ i ] y lt_pos idx[ rplsIdx ][ i ] estarán en el orden descendente de los valores lt_pos_idx[ rplsIdx ][ i ].
Se describe el proceso de decodificación.
Proceso de decodificación para construcción de listas de imágenes de referencia.
Este proceso se invoca al principio del proceso de decodificación para cada segmento de una imagen que no es IRAP. Las imágenes de referencia se abordan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Cuando se decodifica un segmento I, no se usa ninguna lista de imágenes de referencia en la decodificación de los datos del segmento. Cuando se decodifica un segmento P, solo se usa la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos del segmento. Cuando se decodifica un segmento B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se usan en la decodificación de los datos del segmento. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se derivan las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ]. Las listas de imágenes de referencia se usan en el marcado de imágenes de referencia o en la decodificación de los datos del segmento. Para un segmento I de una imagen no IRAP que no es el primer segmento de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se derivarán para verificar la conformidad del flujo de bits, pero su derivación no es necesaria para la decodificación de la imagen o las imágenes actuales que siguen a la imagen actual en el orden de decodificación. Para un segmento P que no es el primer segmento de una imagen, RefPicList[ 1 ] se derivará para verificar la conformidad del flujo de bits, pero su derivación no es necesaria para la decodificación de la imagen o las imágenes actuales que siguen a la imagen actual en el orden de decodificación. Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = 0; i < 2; i++) {
if( rcf_pic_list_sps_flag[ i ])
Rplsldx[ i 1 = ref_pic_list_idx| i |
elsc
Rplsld.\[ i ] = nutriré f_pi e l i s ls in sp s [ i |
for(j =0.pocBasc = PicOrderCnt Val: j<NumEntriesInList| i || Rplsldxl i | l:j++){
RcfPicPocList[ i ][ j ] = pocBasc - dclta_poc_st[ i ][ Rplsldxf i ] ][ j ]
if(hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a RefPicPocList[ i ][ j ]) RcfPicList| i ][ j ] = picA
clsc
RefPicListl i || j | = “ninguna imagen de referencia”
pocBasc = RcfPicPocList[ i ][ j ]
>
if( ref_pic_list_lt_sps_flag| i 1)
LtRplsIdx = rcf_pic_list_lt_idx[ i ]
else
LtRplsIdx = nuni_rcf_pic_lists_lt_in_sps| i ]
for( j = 0; j < nuin itrp cntrics[ LtRplsIdx[ i ] ];j++){
if(hay una referencia picA en el DPB con PtcOrderCtuVal & ( MaxLtPicOrdcrC'niLsb - 1 ) { igual a poc_lsb_lt| LtRplsldx| i 11| j ) )
for( k= sps_niax_dcc_pic_buircring_minusl;k >lt_pos_idx[ LtRplsIdx! i] ] [j]; k— )RefPicList[ i || k | = RefPicListl i |( k - 1 ]
RefPicListl i | | 11_pos_idx| LtRplsIdx| i ] | [ j ] ] = picA
} clsc {
for( k = sps_max_dec_pic_buffering_minusL k > ltjxis_idx| LtRplsIdx[ i ] ] | jJ : k— ) RefPicListl i ]| k 1 = RefPicListl i || k - 1 ]
RefPicListl i || lt_pos idx| Rplsldx| i J J l j J J = “ninguna imagen de referencia”
í
>
}
Para cada i igual a 0 o 1, se aplica lo siguiente: las primeras entradas NumRefIdxActive[ i ] en RefPicList[ i ] se denominan entradas activas en RefPicList[ i ], y las demás entradas en RefPicList[ i ] se denominan entradas inactivas en RefPicList[ i ]. Cada entrada en RefPicList[ i ][ j ] para j en el intervalo de 0 a NumEntriesInList[ i ][ RplsIdx[ i ] ] - 1, ambos inclusive, se denomina entrada STRp si lt_ref_pic_flag[ i ][ RplsIdx[ i ] ][ j ] es igual a 0, y entrada LTRP de lo contrario. Es posible que se haga referencia a una imagen particular tanto en una entrada en RefPicList[ 0 ] como en una entrada en RefPicList[ 1 ]. También es posible que se haga referencia a una imagen particular por más de una entrada en RefPicList[ 0 ] o por más de una entrada en RefPicList[ 1 ]. Las entradas activas en RefPicList[ 0 ] y las entradas activas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que se usarán para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en el orden de decodificación. Las entradas inactivas en RefPicList[ 0 ] y las entradas inactivas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que no se usarán para la interpredicción de la imagen actual pero se usarán en la interpredicción para una o más imágenes que siguen a la imagen actual en el orden de decodificación. Puede haber una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que sean iguales a "ninguna imagen de referencia" porque las imágenes correspondientes no están presentes en el DPB. Cada entrada inactiva en RefPicList[ 0 ] o RefPicList[ 0 ] que es igual a "ninguna imagen de referencia" debe ignorarse. Se debe inferir una pérdida de imagen no intencional para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que es igual a "ninguna imagen de referencia".
Es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, el número de entradas en RefPicList[ i ] no será menor que NumRefIdxActive[ i ]. La imagen a la que hace referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que la de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se usará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o de un segmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre el PicOrderCntVal de la imagen actual y el PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 y setOfRefPics será el mismo para todos los segmentos de una imagen.
Se analiza la señalización del número de entradas de imágenes de referencia a corto plazo.
En una realización alternativa de la descripción, el elemento de sintaxis que especifica el número de entradas asociadas con imágenes de referencia a corto plazo en una estructura de lista de imágenes de referencia ref_pic_list_struct( ) se define como num_strp_entries_minus1[ listIdx ][ rplsIdx ], en lugar de num_strp_entries[ listIdx ][ rplsIdx ]. El cambio tiene dos efectos para la señalización de la lista de imágenes de referencia: guarda bits para señalizar el número de entradas asociadas con la imagen de referencia a corto plazo en la estructura de lista de imágenes de referencia a medida que el elemento se codifica usando ue(v). Impone implícitamente una restricción de manera que cada lista de imágenes de referencia contendrá al menos una imagen de referencia a corto plazo. Para dar cabida a esta idea se necesitan algunos cambios relativos a la primera realización.
Para la señalización de la lista de imágenes de referencia en las cabeceras de segmentos, solo se señaliza la lista de imágenes de referencia necesaria según el tipo de segmento, es decir, una lista de imágenes de referencia (es decir, la lista 0 de imágenes de referencia) para los segmentos I o P y dos listas de imágenes de referencia (es decir, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia) para los segmentos B. La sintaxis de la cabecera de segmento se cambia de la siguiente manera:
Aplicando el cambio anterior en la cabecera de segmento (es decir, la lista 0 de imágenes de referencia para los segmentos I o P; la imagen 0 de referencia y la imagen 1 de referencia para los segmentos B), se evitaría el esquema del problema en el que para un segmento P solo hay una imagen de referencia a corto plazo. Sin embargo, una imagen de referencia a corto plazo duplicada no puede señalizarse en la lista 0 de imágenes de referencia y en la lista 1 de imágenes de referencia, donde la entrada de la lista 1 de imágenes de referencia es una entrada inactiva, ya que el número de entradas activas en la lista 1 de imágenes de referencia tiene que ser igual a 0. La semántica de num_strp_entries_minus1[ listIdx ][ rplsIdx ] se modifica de la siguiente manera: num_strp_entries_minus1[ listIdx ][ rplsIdx ] más 1 especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ). La variable NumEntriesInList[ listIdx ][ rplsIdx ] se deriva de la siguiente manera: NumRefPicEntriesInRpl[ listIdx ][ rplsIdx ] = num_strp_entries_minus1[ listIdx ][ rplsIdx ] 1 num_ltrp_entries[ listIdx ][ rplsIdx ]. El valor de NunRefPicEntries [ listIdx ][ rplsIdx ] estará en el intervalo de 1 a sps_max_dec_pic_buffering_minus1, ambos inclusive.
Permitir inclusión de la imagen actual en las listas de imágenes de referencia.
En una realización alternativa de la descripción, se permite incluir la imagen actual en sus listas de imágenes de referencia. Para soportar esta característica, no se requiere ningún cambio de sintaxis y semántica en relación con las descripciones en la primera y la segunda realizaciones. Sin embargo, las restricciones de conformidad del flujo de bits que se describen en el proceso de decodificación para la construcción de la lista de imágenes de referencia tendrían que modificarse de la siguiente manera: es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ][ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que hace referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que la de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se usará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. Una entrada St RP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o de un segmento diferente de la misma imagen no se referirán a la misma imagen. Cuando se hace referencia a la imagen actual por una entrada en RefPicList[ i ], para i igual a 0 o 1, el índice de entrada será menor que NumRefIdxActive[ i ]. No habrá ninguna entrada<l>TR<p>en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre el PicOrderCntVal de la imagen actual y el PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. Si la imagen actual no se incluye en el setOfRefPics, el número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1; de lo contrario, el número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 1. El setOfRefPics será el mismo para todos los segmentos de una imagen.
Uso de diferentes bits LSB de POC para entradas LTRP en listas de imágenes de referencia.
En una realización alternativa de la descripción, se permite que el número de bits usados para identificar imágenes de referencia a largo plazo en una estructura de lista de imágenes de referencia sea diferente entre la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia. Para soportar esta característica, se necesitan los siguientes cambios:
Un adicional_lt_poc_lsb[ i ] especifica el valor de la variable MaxLtPicOrderCntLsb[ i ] que se usa en el proceso de decodificación para la lista de imágenes de referencia listIdx igual a i de la siguiente manera: MaxLtPicOrderCntLsb[ i ] = 2( log2_max_pic_order_cnt_lsb_ minus4 4 additional_lt_poc_lsb[ i ] ). El valor de additional_lt_poc_lsb[ i] estará en el intervalo de 0 a 32 - log2_max_pic_order_cnt_lsb_minus4 - 4, ambos inclusive. Cuando no está presente, el valor de additional_lt_poc_lsb[ i ] se infiere que es igual a 0.
Un poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imagen MaxLtPicOrderCntLsb[ listIdx ] de la imagen a la que se refiere la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] es Log2( MaxLtPicOrderCntLsb[ listIdx ] ) bits.
Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = 0; i < 2; i++) {
if( ref_pic_list_sps_flag| i ] )
Rplsldx[ i ] = rcf_pic_list_idx[ i ]
else
Rplsldx[ i ] = num_rcf_pic_lists_in_sps[ i ]
for( j = 0, pocBase = PicOrderCntVal; j < NiunEntricsInList| i || Rplsldx| i | |; j++) {
if( !lt_rcf_pic_flag[ ¡ || Rplsldxl ¡ | ][ j | ) {
RefPicPocList[ i )| j ] = pocBase - delta_poc_st| i || Rplsldxl i | ][ j |
if(hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a RefPicPocList[ i ][ j ]) ReíPicListl i ] [ j | = picA
el se
RcfPicList| i || j | = “ninguna imagen de referencia’’
pocBase = RcfPicPocList[ i J[ j J
} else {
if( hay una referencia picA en el DPB con PicOrderCntVal & ( Ma.\LtPicOrdcrCntLsb| i ] - 1)
igual a poc_lsb_lt| i || Rplsldxl i 11| j | )
ReíPicListl i | | j | = picA
else
ReíPicListl i ][ j ] = “ninguna imagen de referencia”
>
)
Usando el mismo ref_pic_list_sps_flag para las listas 0 y 1 de imágenes de referencia.
En una realización alternativa de la descripción, en lugar de usar dos indicadores para indicar si la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia se derivan basándose en estructuras de sintaxis ref_pic_list_struct( ) en el SPS activo, se usa un indicador para ambas listas de imágenes de referencia. Esta alternativa restringe que ambas listas de imágenes de referencia se deriven basándose en ref_pic_list_struct( ) en el SPS activo o se deriven basándose en estructuras de sintaxis ref_pic_list_struct( ) que se incluyen directamente en las cabeceras de segmentos de la imagen actual. Para soportar esta característica, se necesitan los siguientes cambios:
slice_header( ) {Descriptor
Una ref_pic list_sps_flag igual a 1 especifica que las listas de imágenes de referencia de la imagen actual se derivan basándose en las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) en el SPS activo. ref_pic list_sps_flag igual a 0 especifica que las listas de imágenes de referencia de la imagen actual se derivan basándose en las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) que se incluyen directamente en las cabeceras de segmentos de la imagen actual. Cuando num_ref_pic_lists_in_sps[ 0 ] o num_ref_pic_lists_in_sps[ 1 ] sea igual a 0, el valor de ref_pic_list_sps_flag será igual a 0. pic_lists_in_sps[ 1] es igual a 0, el valor de ref_pic_list_sps_flag será igual a 0.
Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = 0; i < 2; i++) {
if( ref_pic_list_sps_flag )
Rplsldxf i 1 = rcfj)ic_list_idxl i 1
clsc
Rplsldxf i | = num_rcf_pic_lists_in_sps[ i ]
for( j = 0, pocBase = PicOrderCntVal: j < NumEntriesInListl i |[ Rplsldxf i | ]; j++) {
if( !lt_ref_pic_flag[ i j| Rplsld\| i | || j | ) {
RcfPicPocList[ i |[ j ] = pocBasc - delta_poc_sl[ i || Rplsldxf i ] ][ j ]
ií(hay una imagen de referencia picAen el DPBcon PicOrderCntVal Igual a RefP cPocList[ i ][j ]) RefPicListf i 11 j | = picA
else
RcfPicLislf i II j | = 'ninguna imagen de referencia”
pocBasc = RcfPicPocListf i ](j |
} clsc {
if( hay una referencia picA en el DPB con PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 )
igual a poc_lsb_lt[ i || Rplsld.\| i ] ]| j | )
ReflPicLisl[ i ][j ] = pie A
else
RcfPicList[ i ]T j ] = “ninguna imagen de referencia”
}
}
}
Señalización del Bit Más Significativo (MSB) del POC delta para las entradas de la imagen de referencia a largo plazo.
En una realización alternativa de la descripción, en lugar de usar bits adicionales para representar LSB del POC de entradas de imagen de referencia a largo plazo en ref_piclist_struct( ), el ciclo de MSB del POC se señaliza para diferenciar imágenes de referencia a largo plazo. Cuando se señaliza, la información del ciclo de MSB del POC se señaliza para cada entrada en ref_piclist_struct( ) que se refiere a una imagen de referencia a largo plazo. La estructura de sintaxis ref_piclist_struct( ) no se señaliza en SPS, sino solo en las cabeceras de segmentos. Para soportar esta característica, se necesitan los siguientes cambios:
La estructura de sintaxis ref_pic_list_struct( listIdx, ItrpFlag ) estará presente en una cabecera de segmento. Cuando está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ) especifica la lista de imágenes de referencia listIdx de la imagen actual (la imagen que contiene el segmento). num_strp_entries[ listIdx ] especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, , ltrpFlag ). num_ltrp_entries[ listIdx ] especifica el número de entradas LTRP en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ). Cuando no está presente, el valor de num _ltrp_entries[ listIdx ][ rplsIdx ] se infiere que es igual a 0.
La variable NumEntriesInList[ listIdx ] se deriva de la siguiente manera:
NumRefPicEntriesInRpl[listIdx] = num_strp_entries[listIdx] num_ltrp_entries[listIdx]
El valor de NumRefPicEntries[ listIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, ambos inclusive. lt_ref_picflag[ listIdx ][ i ] igual a 1 especifica que la i-ésima entrada en la sintaxis ref_pic_list_struct( listIdx, ltrpFlag ) es una entrada LTRP. lt_ref_pic_flag[ listIdx ][ i ] igual a 0 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ) es una entrada STRP. Cuando no está presente, se infiere que el valor de lt_ref_pic flag listIdx ][ i ] es igual a 0. Es un requisito de conformidad del flujo de bits que la suma de lt_ref_pic_flag[ listIdx ][ i ] para todos los valores de i en el intervalo de 0 a NumRefPicEntries[ listIdx ] - 1, ambos inclusive, será igual a num-_ltrp_entries[ listIdx ]. delta_poc_st[ listIdx ][ i ], cuando la i-ésima entrada es la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imagen de la imagen actual y la imagen a la que hace referencia la i-ésima entrada o, cuando la i-ésima entrada es una entrada STRP pero no la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imagen de las imágenes a las que hace referencia la i-ésima entrada y la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ). El valor de delta_poc_st[ listIdx ] [ i ] estará en el intervalo de -215 a 215 - 1, ambos inclusive. poc_lsb_lt[ listIdx][ i ] especifica el valor del módulo de recuento de orden de imagen MaxLtPicOrderCntLsb de la imagen a la que se refiere la i-ésima entrada en la estructura de sintaxis ref_pic list_struct( listIdx, ItrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][ i ] es Log2( MaxPicOrderCntLsb ) bits. delta_poc_msb_present_flag[ listIdx ][ i ] igual a 1 especifica que delta_poc_msb_cycle_lt[ listIdx ][ i ] está presente. delta_poc_msb_present_ flag[ listIdx ][ i ] igual a 0 especifica que delta_poc_msb_cycle_lt[ listIdx ][ i ] no está presente. Cuando num_ltrp_entries[ listIdx ] es mayor que 0 y hay más de una imagen de referencia en el DPB en el momento en que se decodifica esta cabecera de segmento para el cual el módulo MaxPicOrderCntLsb de PicOrderCntVal es igual a poc_lsb_lt[ listIdx ][ i ], delta_poc_msb_present_flag[ listIdx ][ i ] será igual a 1. Cuando no está presente, se infiere que el valor de delta_poc_msb_cycle_lt[ listIdx ][ i ] es igual a 0. delta_poc_msb_cycle_lt[ listIdx ][ i ] se usa para determinar el valor de los bits más significativos del valor de recuento de orden de imagen de la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ). Cuando delta_poc_msb_cycle_lt[ listIdx ][ i ] no está presente, se infiere que es igual a 0. Cambios en el proceso de decodificación para el recuento de orden de imagen:
Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( j = 0. pocBasc = PicOrderCntVal: j < NumEntricsInList| i | : j++) {
if( !lt_ref_pic_flag[ i 1 [ j ] ) {
RefPicPocList[ i || j | = pocBasc - delta j k k st| i ] | j )
if(hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a RefPicPocList[ i ][ j ] ) RcfPicList| i || j | = pie A
clsc
RcfPicList| i II j | = “ninguna imagen de referencia”
pocBasc = RcfPicPocList[ i |[ j ]
} else {
if( dcltn poc nisb cyclc lil i ][ j ] es igual a o &&
hay una imagen de referencia picA en el DPB con PicOrderCntVal &
( MaxfetPicOrderC'ntLsb - 1) igual a poc_lsb_lt| i | | j | )
RefPicList) i ]l j | = picA
else if( delta_poc_msb_cycle_lt| i J| j | es igual a 1 &&
hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a
( MaxPicOrderCntLsb * dclta_poc _msb_cyclcjt[ i ][ j 1) poc lsb ll[ i ]| j ] ) ) RefPicListJ i ][ j 1 = picA
else
RefPicList| i ]| j ] = “ninguna imagen de referencia”
}
}
Alternativamente, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] puede expresarse como delta de delta de manera que la construcción de la lista de imágenes de referencia se puede actualizar de la siguiente manera: las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = 0; i < 2: i++) {
prcvMsbCyclc = 0
for(j= 0. pocBnsc = PicOrderCntVal. j < NuniEntricsInList| i | (8-5)ift 'lt_rcf_pic_flag[<1>1 [ j ] ) {
RctPicPocListl i || j | = podíase - delta_poc_st| i |
íi(hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a RefPicPocList[ i ][j ])RcfPicList| i || j | “ picA
else
ReiPícLísti i || j | =“ninguna imagen de referencia”
pocBasc = RefPicPocList| i ][ j ]
} else {
íf( delta poc imb cyclc ltl i ][ j |es igual a o &&
hay una referencia picA en el DPB con PicOrdciCntVal &
( MaxLtPicOrdcrCmLsb - 1 ) igual a poc_lsb_h|<1>1| j | )
RcfPicListl i || j ] — picA
else if( dclta_poc_msb_cyclc_U| i ]| j es igual a l &&
hay una referencia picA en el DPB con PicOrderCntVal igual a
( MaxPicOrdcrCntLsb * ( dclla_poc_n*sb_cyclc_lt| i || j | prcvMsbCyclc) )
+ pocjsbjtl<1>1| j | ) 11
RcfPicListl i || j | = picA
prcvMsbCyclc = dclia_poc_msb_cyclc_lt| i || j |
} else
RcfPicListl i|[ j 1 - “ninguna imagen de referencia”
>
;
}
Es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ][ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que hace referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que la de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se usará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. Una entrada<s>T<r>P en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o de un segmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre el PicOrderCntVal de la imagen actual y el PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 y setOfRefPics será el mismo para todos los segmentos de una imagen.
Cada STRP se identifica por su valor PicOrderCntVal. Para cada LTRP, si se hace referencia a él por una entrada en RefPicList[ 0 ] o RefPicList[ 1 ] con delta_poc_msb_present_flag[ listIdx ][ i ] igual a 1, se identifica por su valor PicOrderCntVal, de lo contrario, se identifica por los LSB de Log2( MaxPicOrderCntLsb ) de su valor PicOrderCntVal.
Alternativa 1 de señalización del MSB del POC delta para las entradas de imágenes de referencia a largo plazo.
Esta realización proporciona una alternativa a la realización descrita en la sección anterior. Similar a la idea en la sección anterior, en lugar de usar bits adicionales para representar LSB del POC de imagen de referencia a largo plazo en ref_pic_list_struct( ), el ciclo de<m>S<b>del POC se señaliza para diferenciar imágenes de referencia a largo plazo. Sin embargo, en esta alternativa, cuando se señaliza, la información del ciclo de MSB del POC no se señaliza dentro de ref_pic_list_struct( ), en cambio, cuando se necesita información del ciclo de MSB del POC, se señaliza en la cabecera de segmento. La estructura de sintaxis ref_pic_list_struct( ) se señalizará en el SPS y en las cabeceras de segmentos.
Un delta_poc_msb_present_flag[ i ][ j ] igual a 1 especifica que delta_poc_msb_cycle_lt[ i ][ j ] está presente. delta_poc_msb_present_flag[ i ][ j ] igual a 0 especifica que delta_poc_msb_cycle_lt[ i ][ j ] no está presente. Cuando NumLtrpEntries[ i ] es mayor que 0 y para la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1) hay más de una imagen de referencia en el DPB en el momento en que se decodifica esta cabecera de segmento para el cual el módulo MaxPicOrderCntLsb de PicOrderCntVal es igual a poc_lsb_lt[ i ][ rplsIdx ][ jj ], donde jj es el índice de entrada de la entrada en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1 ) que es la j-ésima entrada LTRP en la estructura de sintaxis f_pic_list_struct( i, rplsIdx, 1 ), delta_poc_msb_present_flag[ i ][ j ] será igual a 1. Cuando no está presente, el valor de delta_poc_msb_cycle_lt[ i ][ j ] se infiere que es igual a 0. delta_poc_msb_cycle_lt[ i ][ j ] se usa para determinar el valor de los bits más significativos del valor de recuento de orden de imagen de la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1 ). Cuando delta_poc_msb_cycle_lt[ i ][ j ] no está presente, se infiere que es igual a 0.
slice tor
Un delta_poc_msb_present_flag[ i ][ j ] igual a 1 especifica que delta_poc_msb_cycle_lt[ i ][ j ] está presente. delta_poc_msb_present_flag[ i ][ j ] igual a 0 especifica que delta_poc_msb_cycle_lt[ i ][ j ] no está presente. Cuando NumLtrpEntries[ i ] es mayor que 0 y hay más de una imagen de referencia en el DPB en el momento en que se decodifica esta cabecera de segmento para el cual el módulo MaxPicOrderCntLsb de PicOrderCntVal es igual a poc_lsb_lt[ i ][ rplsIdx ][ j ], delta_poc_msb_present_flag[ i ][ j ] será igual a 1. Cuando no está presente, se infiere que el valor de delta_poc _msb_cycle_lt[ i ][ j ] es igual a 0. delta_poc _msb_cycle_lt[ i ][ j ] se usa para determinar el valor de los bits más significativos del valor de recuento de orden de imagen de la i-ésima entrada en la estructura de sintaxis ref_pic_list _struct( i, rplsIdx, 1). Cuando delta_poc_msb_cycle_lt[ i ][ j ] no está presente, se infiere que es igual a 0. poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imagen MaxPicOrderCntLsb de la imagen a la que se refiere la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] es Log2( MaxPicOrderCntLsb ) bits.
Cambios en el proceso de decodificación para el recuento de orden de imagen:
Para el diseño 1 de cabecera de segmento, las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = 0; i < 2; i+ ) {
if( rcf_pic_list_sps_flag[ i ] )
Rplsldx[ i ] = ref_pic_list_idx[ i ]
else
Rplsld\| i 1 = num refj)ic_lists_in_sps| i |
msbCycleldx = O
for( j =0. pocBasc = PicOrdcrCntVal; j < NumEntriesInList| i ]| Rplsld\| i | ];j++ ) {
i f ( !lt_rcf_p¡c_ílag| i || Rplsld\[ i | |( j | ) {
RcfPicPocListl i || j | = pocBasc - deltaj>oc st| i || Rplsldx| i 11| j |
if(hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a RefPicPocList[ i ][ j ]) RcfPicListl i || j | = pie A
clse
RcfPicListl i || j | = “ninguna imagen de referencia”
pocBasc = RcfPicPocListl i |[ j |
} else {
if( dclta_poc_msb_cycle_lt[ i || msbCycleldx | es igual a 0 & &
hay una imagen de referencia picA en el DPB con PicOrdcrCntVal & ( MaxfetPicOrderCnlLsb - 1 ) igual a poc_lsb_ll| i || Rplsldx| i | || j | ) RcfPicListl i Jl j | = picA
elsc if( dclta_poc_msb_c\cle_lt| i || msbCycleldx | es igual a 1 & &
hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a
( MaxPicOrderCntLsb *
dclta jjoc msb_cyclc_l msbCycleldx | ) poc_lsb_lt| i || Rplsldx| i | || j | ) ) {
RcfPicListl i = picA
msbCyclcIdx- -} clsc
RcfPicListl i ][ j 1 = “ninguna imagen de referencia”
I
í
Alternativamente, para el diseño 1 de segmento de cabecera, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] puede expresarse como delta de delta de manera que la construcción de la lista de imágenes de referencia se puede actualizar de la siguiente manera: las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = O; i < 2; i++) {
if( rcf_pic_list_sps_flag[ i ] )
Rplsldx| i | = rcfpic_list_idx| i |
clsc
Rplsldxf i | = num rcf_pic_lists_in_sps[ i ]
pcvMsbCyclc = O
msbCycleldx = O
for( j = 0. pocBasc = PicOrdcrCntVnl; j < NumEntricsInList[ i |[ Rplsldx[ i ) ]: j++) {
if( !lt_rcf_pic_flag[ i |[ Rplsldxl i ] ][ j 1) {
RcfPicPocListf i lf j | = pocBasc - delta_poc_st[ i lf Rplsldx[ i ] 1 f j ]
if(hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a RefPicPocList[ i ][ j ]) RefPicList| i || j ] = pie A
clsc
RefPicList[ i J[ j ] = “ninguna imagen de referencia”
pocBase = RefPicPocList| i j| j |
} else {
if( deltajjoc_msb_cycle_lt| i || msbCycleldx | es igual a () &&
hay una imagen de referencia picA en el DPB con PicOrderCntVal &
( MaxLtPicOrdcrCntLsb - 1 ) igual a poc_lsb_lt[ i | | Rplsldxl i ] ]| j ] )
RcfPicListl i || j | = picA
clsc if( deltajxx:_msb_cyclcU| i || msbCvclcIdx | es igual a 1 &&
hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a
( MaxPicOrderCntLsb * ( deltajxjc_nisb_cycle_lt[ i | | msbCycleldx ] prevMsbCycle) poc_lsb_lt| i || Rplsldx[ i 11| j | ) ) {
RcfPicListl i || j ] = picA
prevMsbCycle = delta_poc_msb_cyclc_lt| i |[ msbCycleldx ]
msbCyclcídx-H-} else
RefPicList| i || j ] =“ninguna imagen de referencia”
S
}
}
Para el diseño 2 de cabecera de segmento, las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = 0; i < 2; í-H-) {
if( ref pie list_sps _flag[ i 1)
Rplsldxl iJ= rcf_pic_list_id\| i |
else
Rplsldxl iJ= mim_ref_pic_lists_m_sps[ i ]
for( j = 0. pocBase = PicOrdcrCnlVal:j< NumEntriesInListl i || Rplsldxl iJ]:j++){
if( !lt ref pie flag[ i || Rplsldxl i ] ] [ j ] ) {
RefPicPocListl ij [ j ]= pocBasc - dclta_poc_st| i || Rplsldxli] ][j ]
ífíhay una imagen de referencia picA en el DPB con PicOrderCntVal igual a RefPicPocListl i ][ j 1)RcfPicListl11| j | = picA
clsc
RcfPicLíst[ i || j ] =“ninguna imagen de referencia”
pocBase = RefPicPocListl i || j ]
) else (
if( delta_poc_msb_cycle_lt[ i ]|j]es igual a o&&
hay una imagen de referencia picA en el DPB con PicOrderCntVal &
( MaxttPicOiderCntLsb - 1 )igual apoc_lsb_lt[ i |[ Rplsldxl i 11| j | :
RefPicListJ i || j | = picA
else if( delta_poc_msb_cycle_lt[ iJI j Jes igual a 1&.&
hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a (
MaxPicOrdcrCntLsb *
delta_poc_msb_cycle_lt| i || j | ) poc_lsb_lt| i || Rplsldx| i 11| j | ) ) RefPicListf i H j ] = picA
clsc
RefPicListl i II j ] = “ninguna imagen de referencia”
}
>
}
Alternativamente, para el diseño 2 de cabecera de segmento, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] puede expresarse como delta de delta de manera que la construcción de la lista de imágenes de referencia se puede actualizar de la siguiente manera: las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = 0; i < 2; i++) {
if( ref_pic_list_sps_flag[ i 1 )
Rplsldxf i ] = ref_pic_list_idx[ i ]
else
Rp]sldx[ i ] = num rcbpicjistsinspsf i ]
prevMsbCycle = 0
for( j = 0, pocBasc = PicOrderCntVal; j < NiimEntriesinLislf i lf Rplsldxf i ] l; j++) {
if( Mt_rcf_pic_flag[ i lf Rplsldxf í 1 ][j ] ){
RcíPicPocListf i lf j 1 = pocBase - delta_poc_st[ i ][ Rplsldxf i 1 ]f j ]
iífhay una imagen de referencia picAen el DPB con PicOrderCntVal igual a RefPIcPocListf i ][j ]) RcfPicListf i ]f j ] = picA
else
RefPicListf i Jf j ] = “ninguna imagen de referencia"
pocBasc = RefPicPocLisil i II j 1
} clsc {
íR dclla_poc_msb_cyclc_lt[ i || j | es igual a 0 &&
hay una imagen de referencia picAen el DPB con PicOrdcrCnlVal &
( MaxUPicOrdcrCmLsb - l ) igual a poc_lsb_1t| i || Rplsldx| i 1II j 1) RcfPicListf i ]f j ] = picA
clsc if( deltajx)c_nisb_cyclejt[ i |[ msbCycleldx | es igual a 1 &&
hay una imagen de referencia picAen el DPB con PicOrderCntVal igual a
( MaxPicOrdcrCntLsb * ( dclia_poc_msb_cycleJif i ][j 1
prevMsbCycle ) poc lsb ltf i ][ Rplsldxf i 1 lf j 1)) í
RcfPicListf i lf j 1 = picA
prevMsbCycle = delta_poc_msb_cycle_lt[ i J [ j ]
} else
RefPicListf i ]f j ] - 'ninguna imagen de referencia"
}
>
}
Es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ][ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que hace referencia cada entrada activa en RefPicListf 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que la de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicListf 0 ] o RefPicListf 1 ] no se usará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: una entrada inactiva en RefPicListf 0 ] o RefPicListf 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicListf 0 ] o RefPicListf 1 ]. Una entrada<s>T<r>P en RefPicListf 0 ] o RefPicListf 1 ] de un segmento de una imagen y una entrada LTRP en RefPicListf 0 ] o RefPicListf 1 ] del mismo segmento o de un segmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicListf 0 ] o RefPicListf 1 ]. No habrá ninguna entrada LTRP en RefPicListf 0 ] o RefPicListf 1 ] para la que la diferencia entre el PicOrderCntVal de la imagen actual y el PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicListf 0 ] y todas las entradas en RefPicListf 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 y setOfRefPics será el mismo para todos los segmentos de una imagen.
Cada STRP se identifica por su valor PicOrderCntVal. Para cada LTRP, si se hace referencia a él por una entrada en RefPicListf 0 ] o RefPicListf 1 ] con delta_poc_msb_present _flagf i ]f j ] igual a 1, se identifica por su valor PicOrderCntVal, de lo contrario, se identifica por los LSB de Log2( MaxPicOrderCntLsb ) de su valor PicOrderCntVal.
Alternativa 2 de señalización del MSB del POC delta para las entradas de imágenes de referencia a largo plazo.
En una realización alternativa de la descripción, la descripción descrita en la primera realización o la segunda realización se puede combinar con las realizaciones descritas anteriormente y nombradas "Señalización del MSB del POC delta para entradas de imagen de referencia a largo plazo" y "Alternativa 1 de señalización del MSB del POC delta para entradas de imagen de referencia a largo plazo", respectivamente. Los aspectos de las descripciones que se combinarán son la señalización de adicional_lt_poc_lsb (es decir, de la primera realización o la segunda realización) e información del ciclo de MSB del POC (es decir, de la realización descrita anteriormente y nombrada "Señalización de MSB del POC delta para entradas de imagen de referencia a largo plazo" o "Alternativa 1 de señalización de MSB del POC delta para entradas de imagen de referencia a largo plazo"). Un ejemplo de cómo puede realizarse la combinación, combinando la primera realización y la realización descrita anteriormente y nombrada "Alternativa 1 de señalización de MSB del POC delta para entradas de imagen de referencia a largo plazo", se describe de la siguiente manera:
Un delta_poc_msb_present_flag[ i ][ j ] igual a 1 especifica que delta_poc_msb_cycle_lt[ i ][ j ] está presente. delta_poc_msb_present_flag[ i ][ j ] igual a 0 especifica que delta_poc_msb_cycle_lt[ i ][ j ] no está presente. Cuando NumLtrpEntries[ i ] es mayor que 0 y para la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1) hay más de una imagen de referencia en el DPB en el momento en que se decodifica esta cabecera de segmento para el cual el módulo MaxPicOrderLtCntLsb de PicOrderCntVal es igual a poc_lsb_lt[ i ][ rplsIdx ][ jj ], donde jj es el índice de entrada en la entrada en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1 ) que es la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1 ), delta_poc_msb_present_flag[ i ][ j ] será igual a 1. Cuando no está presente, el valor de delta_poc_msb_cycle_lt[ i ][ j ] se infiere que es igual a 0. delta_poc_msb_cycle_lt[ i ][ j ] se usa para determinar el valor de los bits más significativos del valor de recuento de orden de imagen de la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1 ). Cuando delta_poc_msb_cycle_lt[ i ][ j ] no está presente, se infiere que es igual a 0.
Cambios en el proceso de decodificación para el recuento de orden de imagen:
Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = O; i < 2; i++) {
if( rcf pie list sps flag| i ))
Rplsldx[ i ] = ref_pic_lia_idx[ i ]
elsc
Rplsldx[ i | = num_ref_pic_Iias_in_sps| i ]
nisbCycleldx = 0
for( j = 0. pocBasc = PicOrderCntVal: j < NumEntriesInListf i ][ RplsIdx! i ] ]; j++) {
if( !lt_rcf_pic_flag[ i || Rplsldx| i | ][ j ] ) {
RcfPicPocListl i || j | = pocBasc - delta_poc_st| i || Rplsldx| i 11[ j ]
if(hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a RefPicPocList[ i ][ j ]) RcfPicLial i ][ j ] = pie A
elsc
RcfPicListl i || j | = “ninguna imagen de referencia”
pocBase= RefPicPocI.ist[ i || j |
} else {
if( deltaj)oc_msb_cyclcJt[ i ][ nisbCycleldx | es igual a 0& &
(hay una imagen de referencia picA en el DPB con PicOrderCntVal & ( MaxLtPicOrderC'ntLsb- 1 ) igual a poc Isb lt|<1>1| Rplsldx| i | || j | ) RcfPicLial i ][ j ] = picA
clse if( dcltajjoc_msb_cyclc_lt| i ]| nisbCycleldx | es igual a 1 &&
hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a ( MaxLlPicOrderCnlLsb *
delta_pocjiisb_cyclc_lt| i |[ nisbCycleldx | ) poc_lsb_lt[ i ][ Rplsldx[ i ] || j ] ) ) {
RcfPicLial i | | j ] = picA
msbCycleldx-H-} else
RefPicList[ i ] [ j ] = “ninguna imagen de referencia"
/
}
}
Alternativamente, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] puede expresarse como delta de delta de manera que la construcción de la lista de imágenes de referencia se puede actualizar de la siguiente manera: las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera: for( i = 0; i < 2; i+ ) {
if( ref_pic_list sps_flag[ i ] )
Rplsldx| i ] = ref_pic_list_idx[ i ]
else
Rplsldx[ i ] = num_ref_pic_lists_in_sps[ i ]
prevMsbCycle = 0
msbCyclcIdx = O
for( j = O, pocBasc = PicOrdcrCntVal: j < NumEntricslnList[ i ][ Rplsldx[ i ] |; j++) {
if( !lt_ref_pic_flag| i ][ Rplsldx| i | J| j | ) {
RefPicPocListl i | | j ] = pocBase-delta_poc_st| i || Rplsldx| i | )| j |
if(hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a RefPicPocList[ i ][ j ]) RefPicListl i Jl j J = pie A
else
RcfPicLisl[ i ][ j ] = “ninguna imagen de referencia”
pocBase = RefPicPocListl i J| j |
) else {
if( delta_poc_msb_cycle_ltl i H msbCycleldxJes igual a o &&
hay una imagen de referencia picA en el DPB con PicOrderCntVal &
( MaxLtPicOrdcrCntLsb - 1 ) igual a poc_lsb_lt[ i |[ Rplsldxl i ) |[ j J ) RefPicLislf i ][ j ] = picA
else if( delta_poc_msb_cycle_lt[ i || msbCycleldx | es igual a 1 &&
hay una imagen de referencia picA en el DPB con PicOrderCntVal igual a
( MaxLtPicOrderCntLsb * ( deltajX K insb cycleJt[ i Jl msbCycleldx J prevMsbCycle ) poc_lsb_lt[ i Jl RplsldxJ i J ][ j ] ) ) {
RcfPicListJ i Jl j J = picA
prevMsbCycle = delta_poc_msb_cycle_lt[ i || msbCycleldx ]
msbCycleldx-H-} else
RefPicListl i ]| j ] = “ninguna imagen de referencia”
}
>
>
Es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ][ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que hace referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que la de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se usará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. Una entrada<s>T<r>P en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o de un segmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre el PicOrderCntVal de la imagen actual y el PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 y setOfRefPics será el mismo para todos los segmentos de una imagen.
Cada STRP se identifica por su valor PicOrderCntVal. Para cada LTRP, si se hace referencia a él por una entrada en RefPicList[ 0 ] o RefPicList[ 1 ] con delta_poc_msb_present _flag[ i ][ j ] igual a 1, se identifica por su valor PicOrderCntVal, de lo contrario, se identifica por los LSB de Log2( MaxLtPicOrderCntLsb ) de su valor PicOrderCntVal.
Señalizar siempre las listas de imágenes de referencia en cabeceras de segmentos con diferenciación entre imágenes de referencia a corto y largo plazo.
Esta sección describe otra realización alternativa de la descripción. La descripción es relativa al último WD de VVC (es decir, solo se describe el delta relativo al último WD de VVC en JVET-K1001-v1, mientras que los textos en el último WD de VVC que no se mencionan a continuación se aplican como son). Esta realización alternativa se resume de la siguiente manera: las estructuras de lista de imágenes de referencia se señalizan solo en cabeceras de segmentos. Tanto las imágenes de referencia a corto plazo como las imágenes de referencia a largo plazo se identifican por sus LSB de POC, que se pueden representar por números de bits que son diferentes del número de bits usados para representar los<l>S<b>de POC señalizados en cabeceras de segmentos para derivación de valores de POC. Además, el número de bits usados para representar los LSB de POC para identificar imágenes de referencia a corto plazo e imágenes de referencia a largo plazo puede ser diferente.
Sintaxis de cabecera de unidad NAL.
Sintaxis RBSP del conjunto de parámetros de secuencia.
Sintaxis RBSP del conjunto de parámetros de imagen.
Sintaxis de cabecera de segmento.
Sintaxis de la estructura de lista de imágenes de referencia.
Semántica de cabecera de unidad NAL.
Un forbidden_zero_bit será igual a 0. nal_unit_type especifica el tipo de estructura de datos RBSP contenida en la unidad NAL.
Tabla 7-1 - Códigos de tipo de unidad NAL y clases de tipo de unidad NAL
El nuh_temporal_id_plus1 menos 1 especifica un identificador temporal para la unidad NAL. El valor de nuh_temporal_id_plus1 no será igual a 0. La variable TemporalId se especifica de la siguiente manera: TemporalId = nuh_temporal _id_plus1 - 1.
Cuando nal_unit_type es igual a IRAP_NUT, el segmento codificado pertenece a una imagen IRAP, y TemporalId será igual a 0. El valor de TemporalId será el mismo para todas las unidades NAL de VCL de una unidad de acceso. El valor de TemporalId de una imagen codificada o de una unidad de acceso es el valor de TemporalId de las unidades NAL de VCL de la imagen codificada o de la unidad de acceso. El valor de TemporalId para las unidades NAL no VCL se limita de la siguiente manera: si nal_unit_type es igual a SPS_NUT, TemporalId será igual a 0 y TemporalId de la unidad de acceso que contiene la unidad NAL será igual a 0. De lo contrario, si nal_unit_type es igual a EOS_NUT o EOB_NUT, TemporalId será igual a 0. De lo contrario, TemporalId será mayor o igual que TemporalId de la unidad de acceso que contiene la unidad NAL. Cuando la unidad NAL es una unidad<n>A<l>no<v>C<l>, el valor de TemporalId es igual al valor mínimo de los valores de TemporalId de todas las unidades de acceso a las que se aplica la unidad NAL no VCL. Cuando nal_unit_type es igual a PPS_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso que contiene, ya que todos los conjuntos de parámetros de imagen (PPS) se incluirán al comienzo de un flujo de bits, en donde la primera imagen codificada tiene TemporalId igual a 0. Cuando nal_unit_type es igual a PREFIX_SEI_NUT o SUFFIX_SEI_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso que contiene, ya que una unidad NAL de información de mejora suplementaria (SEI) contiene información que se aplica a un subconjunto de flujo de bits que incluye unidades de acceso para las que los valores de TemporalId son mayores que TemporalId de la unidad de acceso que contiene la unidad NAL de SEI. nuh_reserved_zero_7bits será igual a '0000000'. Otros valores de nuh_reserved_zero_7bits serán especificados en el futuro por la ITU-T | ISO/IEC. Los decodificadores ignorarán (es decir, eliminarán del flujo de bits y descartarán) las unidades NAL con valores de nuh_reserved_zero_7bits no iguales a '0000000'.
Semántica RBSP del conjunto de parámetros de secuencia.
Un log2_max_pic_order_cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se usa en el proceso de decodificación para el recuento de orden de imagen de la siguiente manera:
MaxPicOrderCntLsb = 2' lo^-n^-P^onfer^aj^niinusí+4 >
El valor de log2_max_pic_order_cnt_lsb_minus4 estará en el intervalo de 0 a 12, ambos inclusive. sps_max_dec_pic_buffering_minus1 más 1 especifica el tamaño máximo requerido del búfer de imágenes decodificadas para la CVS en unidades de búferes de almacenamiento de imágenes. El valor de sps_max_dec_pic_buffering _minus1 estará en el intervalo de 0 a MaxDpbSize - 1, ambos inclusive, donde MaxDpbSize es como se especifica en otro lugar. additional_st_poc_lsb especifica el valor de la variable MaxStPicOrderCntLsb que se usa en el proceso de decodificación para las listas de imágenes de referencia de la siguiente manera:
MaxStPicOrderClltLsb =2^^■0^ _ma)¿_pic_0riler_cnt_lsb_minus4 4 additional_st_poc_lsb )
El valor de additional_st_poc_lsb estará en el intervalo de 0 a 32 - log2_max_pic_order_cnt_lsb_minus4 - 4, , ambos inclusive. long_term_ref_pics_flag igual a 0 especifica que no se use ningún LTRP para interpredicción de ninguna imagen codificada en la CVS. long_term_ref_pics_flag igual a 1 especifica que se usarán LTRPs para la interpredicción de una o más imágenes codificadas en la CVS. additional_lt_poc_lsb especifica el valor de la variable MaxLtPicOrderCntLsb que se usa en el proceso de decodificación para las listas de imágenes de referencia de la siguiente manera:
M a x L t P i c O r d e r C n t L s b = 2 ^ ° ^ ~ m x ^ c~°ráer~cnt~ ^ ~ ^ us4 4 additional_st_poc_lsb additional_lt_poc_lsb)
El valor de additional_lt_poc_lsb estará en el intervalo 0 y 32 - log2_max_pic_order_cnt_lsb_minus4 - 4 -additional_st_poc_lsb, ambos inclusive. Cuando no está presente, el valor de additional_lt_poc_lsb se infiere que es igual a 0.
Semántica RBSP del conjunto de parámetros de imagen.
Un num_ref_idx_default_active_minus1[ i ] más 1, cuando i es igual a 0, especifica el valor inferido de la variable NumRefIdxActive[ 0 ] para los segmentos P o B con num_ref_idx_active_override_flag igual a 0, y, cuando i es igual a 1, especifica el valor inferido de NumRefIdxActive[ 1 ] para los segmentos B con num_ref_idx_active_override_flag igual a 0. El valor de num_ref_idx_default_active_minus1[ i ] estará en el intervalo de 0 a 14, ambos inclusive.
Semántica de cabecera de segmento.
Cuando está presente, el valor de cada uno de los elementos de sintaxis de cabecera de segmento slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todas las cabeceras de segmentos de una imagen codificada. slice_type especifica el tipo de codificación del segmento según la Tabla 7-3.
Tabla 7-3 - Asociación de nombres a slice_type
Cuando nal_unit_type es igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type será igual a 2.
Un slice_pic_order_cnt_lsb especifica el módulo de recuento de orden de imagen MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice_pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de slice_pic_order_cnt_lsb estará en el intervalo de 0 a MaxPicOrderCntLsb - 1, ambos inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se infiere que slice_pic_order_cnt_lsb es igual a 0. num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num_ref_idx_active _minus1[ 0 ] está presente para los segmentos P y B y que el elemento de sintaxis num_ref_idx_active_minus1[ 1 ] está presente para los segmentos B. num_ref_idx_active_override_flag igual a 0 especifica que los elementos de sintaxis num_ref_idx_active_minus1[ 0 ] y idx_active_minus1 [ 1 ] no están presentes. num_ref_idx_active_minus1[ i ], cuando está presente, especifica el valor de la variable NumRefIdxActive[ i ] de la siguiente manera:
NumRefldx Active [ i ] = num_ref_idx_active_minusl[ i ] 1
El valor de num_ref_idx_active_minus1[ i ] estará en el intervalo de 0 a 14, ambos inclusive. El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista de imágenes de referencia i que se usará para decodificar el segmento. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se usará ningún índice de referencia para la lista de imágenes de referencia i para decodificar el segmento. Para i igual a 0 o 1, cuando el segmento actual es un segmento B y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1[ i ] 1. Cuando el segmento actual es un segmento P y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[ 0 ] es igual a num_ref_idx_default_active_minus1[ 0 ] 1. Cuando el segmento actual es un segmento P, se infiere que NumRefIdxActive[ 1 ] es igual a 0. Cuando el segmento actual es un segmento I, tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] se infieren que son iguales a 0. Alternativamente, para i igual a 0 o 1, lo siguiente se aplica después de lo anterior: sea rplsIdx1 igual a ref_pic_list_sps_flag[ i ] ? ref_pic_list_idx[ i ] : num_ref_pic_lists_in_sps[ i ], y numRpEntries[ i ] sea igual a num_strp_entries[ i ][ rplsIdx1 ] num_ltrp_entries[ i ][ rplsIdx1 ]. Cuando NumRefIdxActive[ i ] es mayor que numRpEntries[ i ], el valor de NumRefIdxActive[ i ] se establece igual a numRpEntries[ i ].
Semántica de estructura de lista de imágenes de referencia.
La estructura de sintaxis ref_pic_list_struct( listldx, ItrpFlag ) estará presente en una cabecera de segmento. Cuando está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct( listldx, ItrpFlag ) especifica la lista de imágenes de referencia listIdx de la imagen actual (la imagen que contiene el segmento). num_strp_entries[ listIdx ] especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct( listldx, ltrpFlag ). num_ltrp_entries[ listIdx ] especifica el número de entradas LTRP en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ). Cuando no está presente, el valor de num_ltrp_entries[ listIdx ] se infiere que es igual a 0. La variable NumEntriesInList[ listIdx ] se deriva de la siguiente manera:
NumEntriesInList[ listldx ] = num_strp_entries[ listldx ] num_ltrp_entries[ listldx ]
El valor de NumEntriesInList[ listIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, ambos inclusive. lt_ref_pic_flag[ listIdx ][ i ] igual a 1 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ) es una entrada LTRP. lt_ref_pic_flag[ listIdx ][i] igual a 0 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listldx, ltrpFlag ) es una entrada STRP. Cuando no está presente, el valor de lt_ref_pic_flag[ listIdx ][ i ] se infiere que es igual a 0. Es un requisito de conformidad del flujo de bits que la suma de lt_ref_pic_flag[ listIdx ][ i ] para todos los valores de i en el intervalo de 0 a NumEntriesInList[ listIdx ] - 1, ambos inclusive, sea igual a num_ltrp_entries[ listIdx ]. poc_lsb_st[ listIdx ][ i ], cuando lt_ref_pic_flag[ listIdx ][ i ] es igual a 0, especifica el valor del módulo de recuento de orden de imagen MaxStPicOrderCntLsb de la imagen a la que se refiere la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_st[ listIdx ][ i ] es Log2( MaxStPicOrderCntLsb ) bits. poc_lsb_lt[ listIdx ][ i ], cuando lt_ref_pic_flag[ listIdx ][ i ] es igual a 1, especifica el valor del módulo de recuento de orden de imagen MaxLtPicOrderCntLsb de la imagen a la que se hace referencia por la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][ i ] es Log2( MaxLtPicOrderCntLsb ) bits.
Se analiza el proceso de decodificación.
Proceso general de decodificación.
El proceso de decodificación funciona de la siguiente manera para la imagen actual CurrPic: la decodificación de las unidades NAL se especifica a continuación. Los procesos siguientes especifican los siguientes procesos de decodificación usando elementos de sintaxis en la capa de cabecera de segmento y superiores: se derivan variables y funciones relacionadas con el recuento de orden de imagen. Esto debe invocarse solo para el primer segmento de una imagen. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se invoca el proceso de decodificación para la construcción de listas de imágenes de referencia para derivación de la lista 0 de imágenes de referencia (RefPicList[ 0 ]) y la lista 1 de imágenes de referencia (RefPicList[ 1 ]). Se invoca el proceso de decodificación para el marcado de imágenes de referencia, en donde las imágenes de referencia se marcan como "no usadas como referencia" o "usadas como referencia a largo plazo". Esto debe invocarse solo para el primer segmento de una imagen. Se invocan los procesos de decodificación para codificar unidades de árbol, escalar, transformar, filtrar en bucle, etc. Después de que se hayan decodificado todos los segmentos de la imagen actual, la imagen decodificada actual se marca como "usada como referencia a corto plazo".
Proceso de decodificación de la unidad NAL.
Las entradas a este proceso son unidades NAL de la imagen actual y sus unidades NAL no VCL asociadas. Las salidas de este proceso son las estructuras de sintaxis RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis RBSP de la unidad NAL y, a continuación, analiza la estructura de sintaxis RBSP.
Proceso de decodificación de segmentos.
Proceso de decodificación para el recuento de orden de imagen.
La salida de este proceso es PicOrderCntVal, el recuento de orden de imagen de la imagen actual. Los recuentos de orden de imagen se usan para identificar imágenes, para derivar parámetros de movimiento en modo de fusión y predicción de vectores de movimiento, y para la verificación de conformidad del decodificador. Cada imagen codificada está asociada con una variable de recuento de orden de imagen, denominada PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se derivan de la siguiente manera: sea prevTid0Pic la imagen anterior en el orden de decodificación que tenga TemporalId igual a 0. La variable prevPicOrderCntLsb se establece igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece igual a PicOrderCntMsb de prevTid0Pic. La variable PicOrderCntMsb de la imagen actual se deriva de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece igual a 0. De lo contrario, PicOrderCntMsb se deriva de la siguiente manera:
if( ( slice_pic_order_cnt_lsb < prevPicOrderCntLsb ) &&
( ( prevPicOrderCntLsb - slice_pic_order_cnt_lsb ) >= ( MaxPicOrderCntLsb / 2 ) ) ) PicOrderCntMsb = prevPicOrderCntMsb MaxPicOrderCntLsb
else if( (slice_pic_order_cnt_lsb > prevPicOrderCntLsb ) &&
( ( slice_pic_order_cnt_lsb - prevPicOrderCntLsb ) > ( MaxPicOrderCntLsb / 2 ) ) ) PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb
else
PicOrderCntMsb = prevPicOrderCntMsb
PicOrderCntVal se deriva de la siguiente manera:
PicOrderCntVal = PicOrderCntMsb slice _pic_order_cnt_lsb
Todas las imágenes IRAP tendrán PicOrderCntVal igual a 0, ya que slice_pic_order_cnt_lsb se infiere que es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se establecen ambos igual a 0. El valor de PicOrderCntVal estará en el intervalo de -231 a 231 - 1, ambos inclusive. En una CVS, los valores de PicOrderCntVal para dos imágenes codificadas cualesquiera no serán los mismos. En cualquier momento durante el proceso de decodificación, los valores de PicOrderCntVal & ( MaxStPicOrderCntLsb - 1 ) para dos imágenes de referencia cualesquiera en el DPB no serán los mismos. En cualquier momento durante el proceso de decodificación, los valores de PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 ) para dos imágenes de referencia cualesquiera en el DPB no serán los mismos.
La función PicOrderCnt( picX ) se especifica de la siguiente manera:
PicOrderCnt( p icX ) = PicOrderCntVal de la imagen picX
La función DiffPicOrderCnt( picA, picB ) se especifica de la siguiente manera:
DiffPicOrderCnt( picA, picB ) = PicOrderCnt( picA) - PicOrderCnt( picB )
El flujo de bits no contendrá datos que den como resultado valores de DiffPicOrderCnt( picA, picB ) usados en el proceso de decodificación que no estén en el intervalo de -215a 215 - 1, ambos inclusive. Sea X la imagen actual e Y y Z sean otras dos imágenes en la misma CVS, se considera que Y y Z están en la misma dirección de orden de salida de X cuando DiffPicOrderCnt( X, Y ) y DiffPicOrderCnt( X, Z ) son positivos o ambos son negativos.
Proceso de decodificación para construcción de listas de imágenes de referencia.
Este proceso se invoca al principio del proceso de decodificación para cada segmento de una imagen no IRAP. Las imágenes de referencia se abordan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Cuando se decodifica un segmento I, no se usa ninguna lista de imágenes de referencia en la decodificación de los datos del segmento. Cuando se decodifica un segmento P, solo se usa la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos del segmento. Cuando se decodifica un segmento B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se usan en la decodificación de los datos del segmento. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se derivan las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ]. Las listas de imágenes de referencia se usan en el marcado de imágenes de referencia o en la decodificación de los datos del segmento. Para un segmento I de una imagen no IRAP que no es el primer segmento de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se derivarán para verificar la conformidad del flujo de bits, pero su derivación no es necesaria para la decodificación de la imagen o las imágenes actuales que siguen a la imagen actual en el orden de decodificación. Para un segmento P que no es el primer segmento de una imagen, RefPicList[ 1 ] se derivará para verificar la conformidad del flujo de bits, pero su derivación no es necesaria para la decodificación de la imagen o las imágenes actuales que siguen a la imagen actual en el orden de decodificación.
Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera: for( i= 0; i< 2; i++) {
for( j = 0; j < NumEntriesIiiList[ i];j++ ) {
if( lt_ref_pic_flag[ i ] [ j ] ) í
if(hay una imagen de referencia picA en el DPB con PicOrderCntVal & (MaxLtPIcOrderCntLsb - 1 ) igual a poc_lsb_U| i ][ j ] J
RefPicList| i 11 j J = picA
else
RcfPicList[ ¡ || j | = 'ninguna imagen de referencia”
}
>
}
for( i = 0; i < 2; i++ ) {
for( j = 0 ; j < NumEntriesInList[ i];j+ ) {
if( !lt_ref_pic_flíigl i Jlj | ) {
if( hay una imagen de referencia a corto plazo picA en el DPB
con PicOrdcrCnlVal & ( MaxStPicOrdcrCnlLsb - 1 ) igual a poc_lsb_st[ i ][ j ] ) RefPieLisL| i 11 jJ= picA
else
RcfPícList[ i || j 1 = “ninguna imagen de referencia”
í
>
■ii
Para cada i igual a 0 o 1, se aplica lo siguiente:
las primeras entradas NumRefIdxActive[ i ] en RefPicList[ i ] se denominan entradas activas en RefPicList[ i ], y las demás entradas en RefPicList[ i ] se denominan entradas inactivas en RefPicList[ i ]. Cada entrada en RefPicList[ i ][ j ] para j en el intervalo de 0 a NumEntriesInList[ i ] - 1, ambos inclusive, se denomina entrada STRP si lt_ref_pic_flag[ i ][ j ] es igual a 0, y entrada LTRP de lo contrario. Es posible que se haga referencia a una imagen particular tanto en una entrada en RefPicList[ 0 ] como en una entrada en RefPicList[ 1 ]. También es posible que se haga referencia a una imagen particular por más de una entrada en RefPicList[ 0 ] o por más de una entrada en RefPicList[ 1 ]. Las entradas activas en RefPicList[ 0 ] y las entradas activas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que se usarán para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en el orden de decodificación. Las entradas inactivas en RefPicList[ 0 ] y las entradas inactivas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que no se usarán para la interpredicción de la imagen actual pero se usarán en la interpredicción para una o más imágenes que siguen a la imagen actual en el orden de decodificación. Puede haber una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que sean iguales a "ninguna imagen de referencia" porque las imágenes correspondientes no están presentes en el DPB. Cada entrada inactiva en RefPicList[ 0 ] o RefPicList[ 0 ] que es igual a "ninguna imagen de referencia" debe ignorarse. Se debe inferir una pérdida de imagen no intencional para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que es igual a "ninguna imagen de referencia".
Es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ] no será menor que NumRefIdxActive[ i ]. La imagen a la que hace referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que la de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se usará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o de un segmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre el PicOrderCntVal de la imagen actual y el PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 y setOfRefPics será el mismo para todos los segmentos de una imagen.
Proceso de decodificación para el marcado de imágenes de referencia.
Este proceso se invoca una vez por imagen, después de la decodificación de una cabecera de segmento y del proceso de decodificación para la construcción de la lista de imágenes de referencia para el segmento, pero antes de la decodificación de los datos del segmento. Este proceso da como resultado que una o más imágenes de referencia en el DPB se marquen como "no usadas como referencia" o "usadas como referencia a largo plazo". Una imagen decodificada en el DPB puede marcarse como "no usada como referencia", "usada como referencia a corto plazo" o "usada como referencia a largo plazo", pero solo una de estas tres en un momento dado durante el funcionamiento del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando proceda. Cuando se hace referencia a una imagen como "usada como referencia", esto se refiere colectivamente a que la imagen se marca como "usada como referencia a corto plazo" o "usada como referencia a largo plazo" (pero no ambas). Cuando la imagen actual es una imagen IRA<p>, todas las imágenes de referencia actualmente en el DPB (si las hay) se marcan como "no usadas como referencia". Los STRP se identifican por los LSB de Log2( MaxStPicOrderCntLsb ) de sus valores PicOrderCntVal. Los LTRP se identifican por los LSB de Log2( MaxLtPicOrderCntLsb ) de sus valores PicOrderCntVal.
Se aplica lo siguiente: para cada entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ], cuando la imagen referida es un STRP, la imagen se marca como "usada como referencia a largo plazo". Cada imagen de referencia en el DPB a la que no se hace referencia en ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no usada como referencia".
Señalizar siempre las listas de imágenes de referencia en cabeceras de segmentos con diferenciación entre imágenes de referencia a corto y largo plazo.
Esta sección describe otra realización alternativa de la descripción. La descripción es relativa al último WD de VVC (es decir, solo se describe el delta relativo al último WD de VVC en JVET-K1001-v1, mientras que los textos en el último WD de VVC que no se mencionan a continuación se aplican como son). Esta realización alternativa se resume de la siguiente manera: las estructuras de lista de imágenes de referencia se señalizan solo en cabeceras de segmentos. No se hace distinción entre imágenes de referencia a corto y largo plazo. Todas las imágenes de referencia se denominan solo imágenes de referencia. Las imágenes de referencia se identifican por sus LSB de POC, que se representarán por un número de bits que es diferente del número de bits usados para representar los LSB de POC señalizados en cabeceras de segmento para derivación de valores de POC.
Abreviaturas: Se aplica el texto de la cláusula 4 de WD de VVC.
Sintaxis de cabecera de unidad NAL.
Sintaxis RBSP del conjunto de parámetros de secuencia.
Sintaxis RBSP del conjunto de parámetros de imagen.
Sintaxis de cabecera de segmento.
Sintaxis de la estructura de lista de imágenes de referencia.
Semántica de cabecera de unidad NAL.
Un forbidden_zero_bit será igual a 0. nal_unit_type especifica el tipo de estructura de datos RBSP contenida en la unidad NAL.
Tabla 7-1 - Códigos de tipo de unidad NAL y clases de tipo de unidad NAL
Un nuh_temporal_id_plus1 menos 1 especifica un identificador temporal para la unidad NAL. El valor de nuh_temporal_id_plus1 no será igual a 0. La variable TemporalId se especifica de la siguiente manera:
TemporalId= nuh_temporal_id_plusl - 1
Cuando nal_unit_type es igual a IRAP_NUT, el segmento codificado pertenece a una imagen IRAP, y TemporalId será igual a 0. El valor de TemporalId será el mismo para todas las unidades NAL de VCL de una unidad de acceso. El valor de TemporalId de una imagen codificada o de una unidad de acceso es el valor de TemporalId de las unidades NAL de VCL de la imagen codificada o de la unidad de acceso. El valor de TemporalId para las unidades NAL no VCL se limita de la siguiente manera:
Si nal_unit type es igual a SPS_NUT, TemporalId será igual a 0 y el TemporalId de la unidad de acceso que contiene la unidad NAL será igual a 0. De lo contrario, si nal_unit_type es igual a EOS_NUT o EOB_n Ut , TemporalId será igual a 0. De lo contrario, TemporalId será mayor o igual al TemporalId de la unidad de acceso que contiene la unidad NAL. Cuando la unidad NAL es una unidad NAL no<v>C<l>, el valor de TemporalId es igual al valor mínimo de los valores de TemporalId de todas las unidades de acceso a las que se aplica la unidad NAL no VCL. Cuando nal_unit_type es igual a PPS_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso que contiene, ya que todos los conjuntos de parámetros de imagen (PPS) se incluirán al comienzo de un flujo de bits, en donde la primera imagen codificada tiene TemporalId igual a 0. Cuando nal_unit_type es igual a PREFIX_SEI_NUT o SUFFIX_SEI_NUT, TemporalId será mayor o igual que TemporalId de la unidad de acceso que contiene, ya que una unidad NAL de SEI contiene información que se aplica a un subconjunto de flujo de bits que incluye unidades de acceso para las que los valores de TemporalId son mayores que el TemporalId de la unidad de acceso que contiene la unidad NAL de SEI. nuh_reserved_zero_7bits será igual a '0000000'. Otros valores de nuh_reserved_zero_7bits serán especificados en el futuro por la ITU-T | ISO/IEC. Los decodificadores ignorarán (es decir, eliminarán del flujo de bits y descartarán) las unidades NAL con valores de nuh_reserved_zero_7bits no iguales a '0000000'.
Semántica RBSP del conjunto de parámetros de secuencia.
Un log2_max_pic_order_cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se usa en el proceso de decodificación para el recuento de orden de imagen de la siguiente manera:
MaxPicOrderClllLsb = 2' ^Jiiaxjc.order^aJsbjninû 4 )
El valor de log2_max_pic_order_cnt_lsb_minus4 estará en el intervalo de 0 a 12, ambos inclusive. sps_max_dec_pic_buffering_minus1 más 1 especifica el tamaño máximo requerido del búfer de imágenes decodificadas para la CVS en unidades de búferes de almacenamiento de imágenes. El valor de sps_max_dec_pic_buffering _minus1 estará en el intervalo de 0 a MaxDpbSize - 1, ambos inclusive, donde MaxDpbSize es como se especifica en otro lugar. additional_ref_poc_lsb especifica el valor de la variable MaxRefPicOrderCntLsb que se usa en el proceso de decodificación para las listas de imágenes de referencia de la siguiente manera:
MaxRefPicOrderCntLsb — 2'<I0g2_ in a x j3ic_0rder_cntjsb_minus4 4>+<additional_ref_poc_lsb)>
El valor de additional_ref_poc_lsb estará en el intervalo 0 y 32 - log2_max_pic_order_cnt_lsb_minus4 - 4, ambos inclusive.
Semántica RBSP del conjunto de parámetros de imagen.
Un num_ref_idx_default_active_minus1[ i ] más 1, cuando i es igual a 0, especifica el valor inferido de la variable NumRefIdxActive[ 0 ] para los segmentos P o B con num_ref_idx_active_override_flag igual a 0, y, cuando i es igual a 1, especifica el valor inferido de NumRefIdxActive[ 1 ] para los segmentos B con num_ref_idx_active_override_flag igual a 0. El valor de num_ref_idx_default_active_minus1[ i ] estará en el intervalo de 0 a 14, ambos inclusive.
Semántica de cabecera de segmento.
Cuando está presente, el valor de cada uno de los elementos de sintaxis de cabecera de segmento slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todas las cabeceras de segmentos de una imagen codificada.... slice_type especifica el tipo de codificación del segmento según la Tabla 7-3.
Tabla 7-3 - Asociación de nombres a slice_type
Cuando nal_unit_type es igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type será igual a 2.... slice_pic_order_cnt_lsb especifica el módulo de recuento de orden de imagen MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice_pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de slice_pic_order_cnt_lsb estará en el intervalo de 0 a MaxPicOrderCntLsb - 1, ambos inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se infiere que slice_pic_order_cnt_lsb es igual a 0. num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num_ref_idx_active _minus1[ 0 ] está presente para los segmentos P y B y que el elemento de sintaxis num_ref_idx_active_minus1[ 1 ] está presente para los segmentos B. num_ref_idx_active_override_flag igual a 0 especifica que los elementos de sintaxis num_ref_idx_active_minus1[ 0 ] y idx_active_minus1 [ 1 ] no están presentes. num_ref_idx_active_minus1[ i ], cuando está presente, especifica el valor de la variable NumRefIdxActive[ i ] de la siguiente manera:
NumRefldx Active [ i ] = num_ref_idx_active_minusl[ i ] 1
El valor de num_ref_idx_active_minus1[ i ] estará en el intervalo de 0 a 14, ambos inclusive. El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista de imágenes de referencia i que se usará para decodificar el segmento. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se usará ningún índice de referencia para la lista de imágenes de referencia i para decodificar el segmento. Para i igual a 0 o 1, cuando el segmento actual es un segmento B y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1[ i ] 1. Cuando el segmento actual es un segmento P y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[ 0 ] es igual a num_ref_idx_default_active_minus1[ 0 ] 1. Cuando el segmento actual es un segmento P, se infiere que NumRefIdxActive[ 1 ] es igual a 0. Cuando el segmento actual es un segmento I, tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] se infieren que son iguales a 0. Alternativamente, para i igual a 0 o 1, lo siguiente se aplica después de lo anterior: sea rplsIdx1 igual a ref_pic_list_sps_flag[ i ] ? ref_pic_list_idx[ i ] : num_ref_pic_lists_in_sps[ i ], y numRpEntries[ i ] sea igual a num_strp_entries[ i ][ rplsIdx1 ] num_ltrp_entries[ i ][ rplsIdx1 ]. Cuando NumRefIdxActive[ i ] es mayor que numRpEntries[ i ], el valor de NumRefIdxActive[ i ] se establece igual a numRpEntries[ i ].
Semántica de estructura de lista de imágenes de referencia.
La estructura de sintaxis ref_pic_list_struct( listIdx ) estará presente en una cabecera de segmento. Cuando está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct( listIdx ) especifica la lista de imágenes de referencia listIdx de la imagen actual (la imagen que contiene el segmento). num_ref_entries[ listIdx ] especifica el número de entradas en la estructura de sintaxis ref_pic_list_struct( listIdx ). La variable NumEntriesInList[ listIdx ] se deriva de la siguiente manera:
NumRefPicEntriesInRpl[ listIdx ] = num ref entries [ listIdx ]
El valor de NumRefPicEntries[ listIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, ambos inclusive. poc_ref_lsb[ listIdx ][ i ] especifica el valor del módulo de recuento de orden de imagen MaxRefPicOrderCntLsb de la imagen a la que se refiere la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][ i ] es Log2( MaxRefPicOrderCntLsb ) bits.
Se analiza el proceso de decodificación.
Proceso general de decodificación.
El proceso de decodificación funciona de la siguiente manera para la imagen actual CurrPic: la decodificación de las unidades NAL se especifica a continuación. Los procesos siguientes especifican los siguientes procesos de decodificación usando elementos de sintaxis en la capa de cabecera de segmento y superiores: se derivan variables y funciones relacionadas con el recuento de orden de imagen. Esto debe invocarse solo para el primer segmento de una imagen. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se invoca el proceso de decodificación para la construcción de listas de imágenes de referencia para derivación de la lista 0 de imágenes de referencia (RefPicList[ 0 ]) y la lista 1 de imágenes de referencia (RefPicList[ 1 ]). Se invoca el proceso de decodificación para el marcado de imágenes de referencia, en donde las imágenes de referencia se marcan como "no usadas como referencia". Esto debe invocarse solo para el primer segmento de una imagen. Se invocan los procesos de decodificación para codificar unidades de árbol, escalar, transformar, filtrar en bucle, etc. Después de que se hayan decodificado todos los segmentos de la imagen actual, la imagen decodificada actual se marca como "usada como referencia".
Proceso de decodificación de la unidad NAL.
Las entradas a este proceso son unidades NAL de la imagen actual y sus unidades NAL no VCL asociadas. Las salidas de este proceso son las estructuras de sintaxis RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis RBSP de la unidad NAL y, a continuación, analiza la estructura de sintaxis RBSP.
Proceso de decodificación de segmentos.
Proceso de decodificación para el recuento de orden de imagen.
La salida de este proceso es PicOrderCntVal, el recuento de orden de imagen de la imagen actual. Los recuentos de orden de imagen se usan para identificar imágenes, para derivar parámetros de movimiento en modo de fusión y predicción de vectores de movimiento, y para la verificación de conformidad del decodificador. Cada imagen codificada está asociada con una variable de recuento de orden de imagen, denominada PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se derivan de la siguiente manera: sea prevTid0Pic la imagen anterior en el orden de decodificación que tenga TemporalId igual a 0. La variable prevPicOrderCntLsb se establece igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece igual a PicOrderCntMsb de prevTid0Pic. La variable PicOrderCntMsb de la imagen actual se deriva de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece igual a 0. De lo contrario, PicOrderCntMsb se deriva de la siguiente manera:
if( ( slice_pic_order_cnt_lsb < prevPicOrderCntLsb ) &&
( ( prevPicOrderCntLsb - slice_pic_order_cnt_lsb ) >= ( MaxPicOrderCntLsb / 2 ) ) ) PicOrderCntMsb = prevPicOrderCntMsb MaxPicOrderCntLsb
else if( (slice_pic_order_cnt_lsb > prevPicOrderCntLsb ) &&
( ( slice_pic_order_cnt_lsb - prevPicOrderCntLsb ) > ( MaxPicOrderCntLsb / 2 ) ) ) PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb
else
PicOrderCntMsb = prevPicOrderCntMsb
PicOrderCntVal se deriva de la siguiente manera:
PicOrderCntVal = PicOrderCntMsb slice pie order cnt lsb
Todas las imágenes IRAP tendrán PicOrderCntVal igual a 0, ya que slice_pic_order_cnt_lsb se infiere que es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se establecen ambos igual a 0. El valor de PicOrderCntVal estará en el intervalo de -231 a 231 - 1, ambos inclusive. En una CVS, los valores de PicOrderCntVal para dos imágenes codificadas cualesquiera no serán los mismos. En cualquier momento durante el proceso de decodificación, los valores de PicOrderCntVal & (MaxRefPicOrderCntLsb - 1 ) para dos imágenes de referencia cualesquiera en el DPB no serán los mismos.
La función PicOrderCnt( picX ) se especifica de la siguiente manera:
PicOrderCnt( picX ) = PicOrderCntVal de la imagen picX
La función DiffPicOrderCnt( picA, picB ) se especifica de la siguiente manera:
DifEPicOrderCnt( picA, picB ) = PicOrderCnt( picA) - PicOrderCnt( picB )
El flujo de bits no contendrá datos que den como resultado valores de DiffPicOrderCnt( picA, picB ) usados en el proceso de decodificación que no estén en el intervalo de -215 a 215 - 1, ambos inclusive. Sea X la imagen actual e Y y Z sean otras dos imágenes en la misma CVS, se considera que Y y Z están en la misma dirección de orden de salida de X cuando DiffPicOrderCnt( X, Y ) y DiffPicOrderCnt( X, Z ) son positivos o ambos son negativos.
Proceso de decodificación para construcción de listas de imágenes de referencia.
Este proceso se invoca al principio del proceso de decodificación para cada segmento de una imagen no IRAP. Las imágenes de referencia se abordan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Cuando se decodifica un segmento I, no se usa ninguna lista de imágenes de referencia en la decodificación de los datos del segmento. Cuando se decodifica un segmento P, solo se usa la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos del segmento. Cuando se decodifica un segmento B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se usan en la decodificación de los datos del segmento. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se derivan las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ]. Las listas de imágenes de referencia se usan en el marcado de imágenes de referencia o en la decodificación de los datos del segmento. Para un segmento I de una imagen no IRAP que no es el primer segmento de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se derivarán para verificar la conformidad del flujo de bits, pero su derivación no es necesaria para la decodificación de la imagen o las imágenes actuales que siguen a la imagen actual en el orden de decodificación. Para un segmento P que no es el primer segmento de una imagen, RefPicList[ 1 ] se derivará para verificar la conformidad del flujo de bits, pero su derivación no es necesaria para la decodificación de la imagen o las imágenes actuales que siguen a la imagen actual en el orden de decodificación. Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
for( i = 0; i < 2; i ) {
for( j = 0, pocBasc = PicOrderCntVal; j < NumEntriesInList[ i ]; j++) {
if( hay una referencia picA en el DPB con PicOrderCntVal & ( MaxRefPicOrderCntLsb - 1 ) igual a poc_ref_lsb[ i ][ j ] )
RcfPicListf i ][ j ] = picA
el se
RefPicListl i J[ j ) = “ninguna imagen de referencia’’
}
}
Para cada i igual a 0 o 1, las primeras entradas NumRefIdxActive[ i ] de RefPicList[ i ] se denominan entradas activas de RefPicList[ i ], y las demás entradas de RefPicList[ i ] se denominan entradas inactivas de RefPicList[ i ]. Es posible que se haga referencia a una imagen particular tanto en una entrada en RefPicList[ 0 ] como en una entrada en RefPicList[ 1 ]. También es posible que se haga referencia a una imagen particular por más de una entrada en RefPicList[ 0 ] o por más de una entrada en RefPicList[ 1 ]. Las entradas activas en RefPicList[ 0 ] y las entradas activas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que se usarán para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en el orden de decodificación. Las entradas inactivas en RefPicList[ 0 ] y las entradas inactivas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que no se usarán para la interpredicción de la imagen actual pero se usarán en la interpredicción para una o más imágenes que siguen a la imagen actual en el orden de decodificación. Puede haber una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que sean iguales a "ninguna imagen de referencia" porque las imágenes correspondientes no están presentes en el DPB. Cada entrada inactiva en RefPicList[ 0 ] o RefPicList[ 0 ] que es igual a "ninguna imagen de referencia" debe ignorarse. Se debe inferir una pérdida de imagen no intencional para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que es igual a "ninguna imagen de referencia".
Es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ] no será menor que NumRefIdxActive[ i ]. La imagen a la que hace referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que la de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se usará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se puede especificar además la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre el PicOrderCntVal de la imagen actual y el PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 y setOfRefPics será el mismo para todos los segmentos de una imagen.
Proceso de decodificación para el marcado de imágenes de referencia.
Este proceso se invoca una vez por imagen, después de la decodificación de una cabecera de segmento y del proceso de decodificación para la construcción de la lista de imágenes de referencia para el segmento, pero antes de la decodificación de los datos del segmento. Este proceso da como resultado que una o más imágenes de referencia en el DPB se marquen como "no usadas como referencia". Una imagen decodificada en el DPB puede marcarse como "no usada como referencia" o "usada como referencia", pero solo una de estas dos en un momento dado durante el funcionamiento del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando proceda. Cuando la imagen actual es una imagen IRAP, todas las imágenes de referencia actualmente en el DPB (si las hay) se marcan como "no usadas como referencia". Las imágenes de referencia en el DPB se identifican por los LSB de Log2( MaxRefPicOrderCntLsb ) de sus valores PicOrderCntVal. Cada imagen de referencia en el DPB a la que no se hace referencia en ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no usada como referencia".
Otra realización alternativa más.
Esta sección describe una realización alternativa al enfoque especificado anteriormente que se denomina "señalizar siempre de listas de imágenes de referencia en cabeceras de segmento con diferenciación entre imágenes de referencia a corto y largo plazo". En esta realización alternativa, en la cabecera de segmento, se señalizará un ciclo de MSB del POC para cada entrada LTRP, de manera similar como en HEVC o como en los enfoques descritos anteriormente, y se elimina la siguiente restricción: en cualquier momento durante el proceso de decodificación, los valores de PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 ) para dos imágenes de referencia cualesquiera en el DPB no serán los mismos.
La FIG. 6 es un diagrama esquemático de un dispositivo 600 de codificación de vídeo (por ejemplo, un codificador 20 de vídeo o un decodificador 30 de vídeo) según una realización de la descripción. El dispositivo 600 de codificación de vídeo es adecuado para implementar las realizaciones descritas como se describen en la presente memoria. El dispositivo 600 de codificación de vídeo comprende puertos 610 de entrada y unidades de recepción (Rx) 620 para recibir datos; un procesador, unidad lógica o unidad de procesamiento central (CPU) 630 para procesar los datos; unidades transmisoras (Tx) 640 y puertos 650 de salida para transmitir los datos; y una memoria 660 para almacenar los datos. El dispositivo 600 de codificación de vídeo también comprende componentes ópticos a eléctricos (OE) y componentes eléctricos a ópticos (EO) acoplados a los puertos 610 de entrada, a las unidades 620 de recepción, a las unidades 640 de transmisión y a puertos 650 de salida para la salida o entrada de señales ópticas o eléctricas.
El procesador 630 se implementa por hardware y software. El procesador 630 se implementará como uno o más chips de CPU, núcleos (por ejemplo, como un procesador multinúcleo), una matriz de puertas programares en campo (FPGA), circuitos integrados de aplicación específica (ASIC), y procesadores de señales digitales (DSP). El procesador 630 está en comunicación con los puertos 610 de entrada, las unidades 620 de recepción, las unidades 640 de transmisión, los puertos 650 de salida y la memoria 660. El procesador 630 comprende un módulo 670 de codificación. El módulo 670 de codificación implementa las realizaciones descritas anteriormente. Por ejemplo, el módulo 670 de codificación implementa, procesa, prepara o proporciona las diversas funciones de red. La inclusión del módulo 670 de codificación por lo tanto proporciona una mejora sustancial a la funcionalidad del dispositivo 600 de codificación de vídeo y efectúa una transformación del dispositivo 600 de codificación de vídeo a un estado diferente. De manera alternativa, el módulo 670 de codificación se implementa como instrucciones almacenadas en la memoria 660 y ejecutadas por el procesador 630.
El dispositivo 600 de codificación de vídeo también incluye dispositivos 680 de entrada y/o salida (E/S) para comunicar datos hacia y desde un usuario. Los dispositivos 680 de E/S pueden incluir dispositivos de salida, tales como una pantalla para visualizar datos de vídeo, altavoces para emitir datos de audio, etc. Los dispositivos 680 de E/S también pueden incluir dispositivos de entrada, tales como un teclado, ratón, bola de seguimiento, etc. , y/o interfaces correspondientes para interactuar con tales dispositivos de salida.
La memoria 660 comprende uno o más discos, unidades de cinta y unidades de estado sólido y se usará como un dispositivo de almacenamiento de datos de desborde (overflow), para almacenar programas cuando tales programas se seleccionan para su ejecución y para almacenar instrucciones y datos que se leen durante la ejecución del programa. La memoria 660 será volátil y/o no volátil y será de solo lectura (ROM), memoria de acceso aleatorio (RAM), memoria ternaria de contenido direccionable (TCAM), y/o memoria estática de acceso aleatorio (SRAM).
La FIG. 7 es un diagrama esquemático de una realización de un medio 700 de codificación. En una realización, los medios 700 de codificación se implementan en un dispositivo 702 de codificación de vídeo (por ejemplo, un codificador 20 de vídeo o un decodificador 30 de vídeo). El dispositivo 702 de codificación de vídeo incluye medios 701 de recepción. Los medios 701 de recepción están configurados para recibir una imagen para codificar o para recibir un flujo de bits para decodificar. El dispositivo 702 de codificación de vídeo incluye medios 707 de transmisión acoplados a los medios 701 de recepción. Los medios 707 de transmisión están configurados para transmitir el flujo de bits a un decodificador o para transmitir una imagen decodificada a un medio de visualización (por ejemplo, uno de los dispositivos 680 de E/S).
El dispositivo 702 de codificación de vídeo incluye unos soportes 703 de almacenamiento. Los soportes 703 de almacenamiento están acoplados a al menos uno de los medios 701 de recepción o a los medios 707 de transmisión. Los soportes 703 de almacenamiento están configurados para almacenar instrucciones. El dispositivo 702 de codificación de vídeo también incluye medios 705 de procesamiento. Los medios 705 de procesamiento están acoplados a los soportes 703 de almacenamiento. Los medios 705 de procesamiento están configurados para ejecutar las instrucciones almacenadas en los soportes 703 de almacenamiento para realizar los métodos descritos en la presente memoria.

Claims (4)

  1. REIVINDICACIONES 1. Un método para decodificar un flujo de bits de vídeo codificado implementado por un decodificador de vídeo para su uso en la decodificación de vídeo basándose en el estándar VVC, caracterizado por que, el método comprende: obtener una estructura de sintaxis de lista de imágenes de referencia, ref_pic_list_struct (listIdx, rplsIdx), para un segmento actual del flujo de bits de vídeo codificado, en donde ref_pic_list_struct (listIdx, rplsIdx) se define como
    en donde ref_pic_list_struct (listIdx, rplsIdx) contiene un número de entradas, y ref_pic_list_struct (listIdx, rplsIdx) comprende un primer parámetro listIdx y un segundo parámetro rplsIdx, en donde rplsIdx especifica un índice de una estructura de sintaxis de lista de imágenes de referencia, listIdx tiene un valor para especificar una lista de imágenes de referencia; en donde el valor de listIdx es igual a 0 o 1, en donde la estructura de sintaxis de lista de imágenes de referencia se representa en un SPS y especifica un candidato para lista de imágenes de referencia a corto plazo listIdx, y la imagen actual se refiere a cada imagen que 1) tiene uno o más segmentos que contienen ref_pic_list_idx[ listIdx ] igual a un índice en la lista de las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) incluidas en el SPS, y 2) está en una CVS que tiene el SPS como el SPS activo, num_strp_entries[ listIdx ][ rplsIdx ] especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ), delta_poc_st[ listIdx ][ rplsIdx ][ i ] especifica la diferencia entre los valores de recuento de orden de imagen de la imagen actual y la imagen a la que se refiere i-ésima cuando la entrada i-ésima es la primera entrada STRP en la estructura sintáctica ref_pic_list_struct( listIdx, rplsIdx ), o delta_poc_st[ listIdx ][ rplsIdx ][ i ] especifica la diferencia entre los valores de recuento de orden de imagen de las imágenes a las que hace referencia la entrada i-ésima y la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) cuando la entrada i-ésima es una entrada STRP pero no la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ); obtener un número predeterminado de entradas activas en una lista de imágenes de referencia para el segmento actual; construir una lista de imágenes de referencia para el segmento actual, en donde la lista de imágenes de referencia contiene un número de entradas activas y un número de entradas inactivas; establecer el número de entradas activas en la lista de imágenes de referencia igual al número de entradas de la estructura de sintaxis de lista de imágenes de referencia cuando el número predeterminado de entradas activas en la lista de imágenes de referencia sea mayor que el número de entradas en la estructura de sintaxis de lista de imágenes de referencia; obtener, basándose en al menos una entrada activa de la lista de imágenes de referencia, al menos un bloque reconstruido del segmento actual, obtener un indicador de sustitución de la cabecera del segmento, en donde el establecimiento del número de entradas activas en la lista de imágenes de referencia igual al número de entradas en la estructura de lista de imágenes de referencia se realiza a condición de que un valor del indicador de sustitución sea falso, en donde un orden de entradas en la estructura de sintaxis de lista de imágenes de referencia es el mismo que un orden de imágenes de referencia correspondientes en la lista de imágenes de referencia, en donde al menos una entrada activa de la lista de imágenes de referencia se usa para la interpredicción de al menos un bloque reconstruido, en donde las entradas inactivas no se usan para la interpredicción de la imagen actual.
  2. 2. El método de cualquiera de la reivindicación 1, en donde el segmento actual es un segmento P o un segmento B.
  3. 3. Un decodificador que comprende circuitos de procesamiento para llevar a cabo el método según cualquiera de las reivindicaciones 1 o 2.
  4. 4. Un producto de programa informático que comprende código de programa para realizar el método según cualquiera de las reivindicaciones 1 a 2 cuando se ejecuta en un ordenador o un procesador.
ES19850237T 2018-08-17 2019-08-16 Reference picture management in video coding Active ES3010144T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862719360P 2018-08-17 2018-08-17
PCT/US2019/046934 WO2020037278A1 (en) 2018-08-17 2019-08-16 Reference picture management in video coding

Publications (1)

Publication Number Publication Date
ES3010144T3 true ES3010144T3 (en) 2025-04-01

Family

ID=69525847

Family Applications (4)

Application Number Title Priority Date Filing Date
ES19850237T Active ES3010144T3 (en) 2018-08-17 2019-08-16 Reference picture management in video coding
ES19850236T Active ES3062309T3 (en) 2018-08-17 2019-08-16 Reference picture management in video coding
ES19850047T Active ES2981233T3 (es) 2018-08-17 2019-08-16 Gestión de imágenes de referencia en codificación de video
ES19850149T Active ES3014003T3 (en) 2018-08-17 2019-08-16 Reference picture management in video coding

Family Applications After (3)

Application Number Title Priority Date Filing Date
ES19850236T Active ES3062309T3 (en) 2018-08-17 2019-08-16 Reference picture management in video coding
ES19850047T Active ES2981233T3 (es) 2018-08-17 2019-08-16 Gestión de imágenes de referencia en codificación de video
ES19850149T Active ES3014003T3 (en) 2018-08-17 2019-08-16 Reference picture management in video coding

Country Status (25)

Country Link
US (16) US12015761B2 (es)
EP (11) EP4336832A3 (es)
JP (15) JP7547319B2 (es)
KR (15) KR102610092B1 (es)
CN (14) CN113412620A (es)
AU (1) AU2019322914B2 (es)
BR (6) BR112021002501A2 (es)
CA (1) CA3109799C (es)
CL (1) CL2021000397A1 (es)
DK (2) DK3831064T3 (es)
ES (4) ES3010144T3 (es)
FI (1) FI3831064T3 (es)
HU (2) HUE066343T2 (es)
IL (1) IL280944B2 (es)
MX (9) MX2021001743A (es)
MY (1) MY207383A (es)
NZ (1) NZ773625A (es)
PH (1) PH12021550312A1 (es)
PL (4) PL3831055T3 (es)
PT (2) PT3831064T (es)
SG (6) SG11202100647TA (es)
SI (1) SI3831064T1 (es)
UA (1) UA128290C2 (es)
WO (6) WO2020037272A1 (es)
ZA (2) ZA202100951B (es)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7088606B2 (ja) 2018-04-02 2022-06-21 エスゼット ディージェイアイ テクノロジー カンパニー リミテッド 動画処理方法、画像処理装置、プログラム、符号化デバイス、及び復号化デバイス
KR102610092B1 (ko) 2018-08-17 2023-12-04 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩의 참조 픽처 관리
US11463736B2 (en) * 2018-09-21 2022-10-04 Sharp Kabushiki Kaisha Systems and methods for signaling reference pictures in video coding
CN113170203B (zh) * 2018-12-10 2024-07-26 夏普株式会社 用于在视频编码中发送信号通知参考图片的系统和方法
CN117156127B (zh) * 2019-01-02 2026-02-10 Oppo广东移动通信有限公司 对视频信号进行编解码的方法和设备以及计算机可读介质
CN119052469A (zh) * 2019-01-28 2024-11-29 Op方案有限责任公司 扩展长期参考图片保留的在线和离线选择
US11395006B2 (en) * 2019-03-06 2022-07-19 Tencent America LLC Network abstraction layer unit header
US11516468B2 (en) * 2019-03-12 2022-11-29 Sony Group Corporation Image decoding device, image decoding method, image encoding device, and image encoding method
WO2021187375A1 (en) * 2020-03-18 2021-09-23 Sharp Kabushiki Kaisha Systems and methods for applying deblocking filters in video coding
KR102850346B1 (ko) * 2020-03-19 2025-08-25 바이트댄스 아이엔씨 레퍼런스 픽처 순서에 대한 제약들
US12132887B2 (en) * 2020-03-31 2024-10-29 Sharp Kabushiki Kaisha Video decoding apparatus, video coding apparatus, video decoding method, and video coding method
JP7741795B2 (ja) * 2020-04-02 2025-09-18 シャープ株式会社 動画像復号装置、動画像復号方法及び動画像符号化装置
CA3136422A1 (en) * 2020-05-20 2021-11-20 Tencent America LLC Techniques for random access point indication and picture output in coded video stream
US11558630B2 (en) 2020-05-20 2023-01-17 Tencent America LLC Techniques for random access point indication and picture output in coded video stream
CN119052501A (zh) * 2020-05-21 2024-11-29 阿里巴巴集团控股有限公司 用于进行视频数据处理的计算机实现方法、装置及存储介质
US11695938B2 (en) * 2021-01-05 2023-07-04 Dish Network Technologies India Private Limited Method and apparatus for thumbnail generation for a video device
CN116781907A (zh) * 2022-03-11 2023-09-19 华为技术有限公司 编解码方法及电子设备
EP4533800A4 (en) * 2022-05-31 2026-04-15 Sharp Kk SYSTEMS AND METHODS FOR SIGNALING INFORMATION FROM A LIST OF REFERENCE IMAGES IN A VIDEO ENCODING
WO2024126057A1 (en) * 2022-12-16 2024-06-20 Interdigital Ce Patent Holdings, Sas Reference picture marking process based on temporal identifier
CN116095330A (zh) * 2023-01-10 2023-05-09 鹏城实验室 一种动态位深的编解码方法及相关装置
WO2025009941A1 (ko) * 2023-07-05 2025-01-09 엘지전자 주식회사 영상 복호화 방법, 영상 부호화 방법 및 비트스트림을 전송하는 방법
KR20250078118A (ko) 2023-11-24 2025-06-02 주식회사 엘지에너지솔루션 배터리 관리 장치 및 그 충전 제어 방법
CN119094792B (zh) * 2024-11-06 2025-02-14 武汉凌久微电子有限公司 一种短期参考图像参数集解析方法及码流更新方法

Family Cites Families (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MXPA06002211A (es) * 2003-08-26 2006-05-19 Thomson Licensing Metodo y aparato para reducir al minimo el numero de imagenes de referencia utilizadas para inter-codificacion.
FI115589B (fi) * 2003-10-14 2005-05-31 Nokia Corp Redundanttien kuvien koodaaminen ja dekoodaaminen
US8948256B2 (en) * 2006-10-13 2015-02-03 Thomson Licensing Reference picture list management syntax for multiple view video coding
WO2009023091A2 (en) * 2007-08-15 2009-02-19 Thomson Licensing Methods and apparatus for motion skip mode in multi-view coded video using regional disparity vectors
WO2010086500A1 (en) 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
US8693539B2 (en) 2009-03-26 2014-04-08 Panasonic Corporation Coding method, error detecting method, decoding method, coding apparatus, error detecting apparatus, and decoding apparatus
US20120044322A1 (en) * 2009-05-01 2012-02-23 Dong Tian 3d video coding formats
KR101752418B1 (ko) * 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US20130271571A1 (en) * 2010-12-27 2013-10-17 Telefonaktiebolaget L M Ericsson (Publ) Method and Arrangement for Processing of Encoded Video
AU2012205813B2 (en) * 2011-01-14 2016-07-07 Vidyo, Inc. High layer syntax for temporal scalability
US9008176B2 (en) * 2011-01-22 2015-04-14 Qualcomm Incorporated Combined reference picture list construction for video coding
US8934552B2 (en) * 2011-03-31 2015-01-13 Qualcomm Incorporated Combined reference picture list construction and mapping
CN103621091A (zh) * 2011-04-26 2014-03-05 Lg电子株式会社 管理参考图片列表的方法及使用该方法的装置
ES2595732T3 (es) * 2011-06-30 2017-01-03 Telefonaktiebolaget Lm Ericsson (Publ) Señalización de imágenes de referencia
US9521418B2 (en) 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
US10034018B2 (en) * 2011-09-23 2018-07-24 Velos Media, Llc Decoded picture buffer management
US10075733B2 (en) 2011-09-29 2018-09-11 Sharp Kabushiki Kaisha Image decoding device, image decoding method, and image encoding device
US9451284B2 (en) * 2011-10-10 2016-09-20 Qualcomm Incorporated Efficient signaling of reference picture sets
US9264717B2 (en) 2011-10-31 2016-02-16 Qualcomm Incorporated Random access with advanced decoded picture buffer (DPB) management in video coding
JP5768662B2 (ja) * 2011-10-31 2015-08-26 富士通株式会社 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
US10003817B2 (en) * 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
EP3576412B1 (en) * 2011-11-08 2021-09-01 Nokia Technologies Oy Reference picture handling
US20130114710A1 (en) * 2011-11-08 2013-05-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by prediction using reference picture list, and method and apparatus for decoding video by performing compensation using reference picture list
US10440389B2 (en) * 2011-11-11 2019-10-08 Lg Electronics Inc. Method and device for transmitting image information, and decoding method and device using same
US9386309B2 (en) * 2011-11-18 2016-07-05 Google Technology Holdings LLC Explicit way for signaling a collocated picture for high efficiency video coding (HEVC) using a single reference list
US9392235B2 (en) 2011-11-18 2016-07-12 Google Technology Holdings LLC Explicit way for signaling a collocated reference picture for video coding
US9485503B2 (en) * 2011-11-18 2016-11-01 Qualcomm Incorporated Inside view motion prediction among texture and depth view components
US9258559B2 (en) * 2011-12-20 2016-02-09 Qualcomm Incorporated Reference picture list construction for multi-view and three-dimensional video coding
KR102053028B1 (ko) * 2012-01-17 2019-12-06 텔레폰악티에볼라겟엘엠에릭슨(펍) 참조영상 리스트 처리
US8867852B2 (en) * 2012-01-19 2014-10-21 Sharp Kabushiki Kaisha Decoding a picture based on a reference picture set on an electronic device
US20130188709A1 (en) 2012-01-25 2013-07-25 Sachin G. Deshpande Video decoder for tiles with absolute signaling
US11445172B2 (en) * 2012-01-31 2022-09-13 Vid Scale, Inc. Reference picture set (RPS) signaling for scalable high efficiency video coding (HEVC)
US9369710B2 (en) * 2012-02-06 2016-06-14 Qualcomm Incorporated Reference picture list modification for video coding
US20150071351A1 (en) * 2012-04-15 2015-03-12 Samsung Electronics Co., Ltd. Inter prediction method in which reference picture lists can be changed and apparatus for the same
MY172302A (en) * 2012-04-15 2019-11-21 Samsung Electronics Co Ltd Method and apparatus for determining reference images for inter-prediction
WO2013162980A2 (en) * 2012-04-23 2013-10-31 Google Inc. Managing multi-reference picture buffers for video data coding
KR102106536B1 (ko) 2012-04-25 2020-05-06 삼성전자주식회사 다시점 비디오 예측을 위한 참조픽처세트를 이용하는 다시점 비디오 부호화 방법 및 그 장치, 다시점 비디오 예측을 위한 참조픽처세트를 이용하는 다시점 비디오 복호화 방법 및 그 장치
US9762903B2 (en) 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding
US9319679B2 (en) * 2012-06-07 2016-04-19 Qualcomm Incorporated Signaling data for long term reference pictures for video coding
US9838685B2 (en) * 2012-06-15 2017-12-05 Google Technology Holdings LLC Method and apparatus for efficient slice header processing
US9591303B2 (en) 2012-06-28 2017-03-07 Qualcomm Incorporated Random access and signaling of long-term reference pictures in video coding
US9332255B2 (en) * 2012-06-28 2016-05-03 Qualcomm Incorporated Signaling long-term reference pictures for video coding
CN108347606B (zh) * 2012-07-01 2022-08-19 夏普株式会社 电子设备及方法
WO2014008402A1 (en) * 2012-07-05 2014-01-09 Vid Scale, Inc. Layer dependency and priority signaling design for scalable video coding
US9167248B2 (en) * 2012-07-13 2015-10-20 Qualcomm Incorporated Reference picture list modification for video coding
US9398284B2 (en) * 2012-08-16 2016-07-19 Qualcomm Incorporated Constructing reference picture lists for multi-view or 3DV video coding
US20140056356A1 (en) * 2012-08-21 2014-02-27 Motorola Mobility Llc Method and apparatus for efficient signaling of weighted prediction in advanced coding schemes
WO2014039778A2 (en) * 2012-09-07 2014-03-13 Vid Scale, Inc. Reference picture lists modification
KR102238567B1 (ko) * 2012-09-19 2021-04-08 퀄컴 인코포레이티드 디스패리티 벡터 유도를 위한 화상들의 선택
US9584825B2 (en) * 2012-09-27 2017-02-28 Qualcomm Incorporated Long-term reference picture signaling in video coding
KR102414518B1 (ko) * 2012-09-28 2022-06-29 엘지전자 주식회사 영상 복호화 방법 및 이를 이용하는 장치
US9479782B2 (en) * 2012-09-28 2016-10-25 Qualcomm Incorporated Supplemental enhancement information message coding
CN108540813B (zh) * 2012-09-28 2021-03-16 杜比国际公司 图像解码装置
CN110545421B (zh) * 2012-10-12 2022-11-22 韩国电子通信研究院 图像编码/解码方法和使用其的装置
KR102381380B1 (ko) * 2012-11-21 2022-04-01 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
WO2014089805A1 (en) * 2012-12-13 2014-06-19 Mediatek Singapore Pte. Ltd. A new reference management method for video coding
US9992513B2 (en) 2012-12-21 2018-06-05 Sony Corporation Image processing efficient transmission or reception of encoded information
US10021388B2 (en) * 2012-12-26 2018-07-10 Electronics And Telecommunications Research Institute Video encoding and decoding method and apparatus using the same
KR20140087971A (ko) * 2012-12-26 2014-07-09 한국전자통신연구원 계층적 비디오 부호화에서 다중참조계층을 적용한 화면간 부/복호화 방법 및 그 장치
JPWO2014103529A1 (ja) * 2012-12-28 2017-01-12 シャープ株式会社 画像復号装置、およびデータ構造
JP6209772B2 (ja) * 2013-01-15 2017-10-11 華為技術有限公司Huawei Technologies Co.,Ltd. シグナリングを用いたビデオデコーダ
KR102273025B1 (ko) * 2013-03-06 2021-07-05 삼성전자주식회사 선택적인 노이즈제거 필터링을 이용한 스케일러블 비디오 부호화 방법 및 그 장치, 선택적인 노이즈제거 필터링을 이용한 스케일러블 비디오 복호화 방법 및 그 장치
US9532067B2 (en) * 2013-04-05 2016-12-27 Sharp Kabushiki Kaisha Decoding of inter-layer reference picture set and reference picture list construction
WO2014162739A1 (en) * 2013-04-05 2014-10-09 Sharp Kabushiki Kaisha Decoding of inter-layer reference picture set and reference picture list construction
WO2015006922A1 (en) * 2013-07-16 2015-01-22 Mediatek Singapore Pte. Ltd. Methods for residual prediction
US9860529B2 (en) 2013-07-16 2018-01-02 Qualcomm Incorporated Processing illumination compensation for video coding
US9560358B2 (en) * 2013-07-22 2017-01-31 Qualcomm Incorporated Device and method for scalable coding of video information
GB2516824A (en) 2013-07-23 2015-02-11 Nokia Corp An apparatus, a method and a computer program for video coding and decoding
CN105453562B (zh) * 2013-07-30 2018-12-25 株式会社Kt 支持多个层的图像编码和解码方法以及使用该方法的装置
CN105453563B (zh) * 2013-07-30 2019-08-16 株式会社Kt 支持多个层的图像编码和解码方法以及使用该方法的装置
JP6393317B2 (ja) 2013-10-10 2018-09-19 シャープ株式会社 復号方法及び符号化方法
US20150103912A1 (en) 2013-10-11 2015-04-16 Electronics And Telecommunications Research Institute Method and apparatus for video encoding/decoding based on multi-layer
US9674544B2 (en) * 2013-11-25 2017-06-06 Qualcomm Incorporated POC value design for multi-layer video coding
US9654774B2 (en) * 2013-12-12 2017-05-16 Qualcomm Incorporated POC value design for multi-layer video coding
US10110925B2 (en) * 2014-01-03 2018-10-23 Hfi Innovation Inc. Method of reference picture selection and signaling in 3D and multi-view video coding
WO2015101716A1 (en) 2014-01-03 2015-07-09 Nokia Technologies Oy Parameter set coding
US9866869B2 (en) * 2014-03-17 2018-01-09 Qualcomm Incorporated POC value design for multi-layer video coding
US10432928B2 (en) 2014-03-21 2019-10-01 Qualcomm Incorporated Using a current picture as a reference for video coding
US9788007B2 (en) 2014-06-20 2017-10-10 Qualcomm Incorporated Profile, tier, level for the 0-th output layer set in video coding
US10412387B2 (en) 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
WO2016048834A1 (en) * 2014-09-26 2016-03-31 Vid Scale, Inc. Intra block copy coding with temporal block vector prediction
US9918105B2 (en) 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
GB2531271A (en) * 2014-10-14 2016-04-20 Nokia Technologies Oy An apparatus, a method and a computer program for image sequence coding and decoding
CA2977526C (en) * 2015-02-27 2020-02-18 Arris Enterprises Llc Modification of unification of intra block copy and inter signaling related syntax and semantics
AU2016253924B2 (en) * 2015-04-29 2018-11-01 Hfi Innovation Inc. Method and apparatus for intra block copy reference list construction
US10638140B2 (en) 2015-05-29 2020-04-28 Qualcomm Incorporated Slice level intra block copy and other video coding improvements
CN107615762B (zh) 2015-05-29 2020-06-26 寰发股份有限公司 一种管理解码图像缓存器并解码视频比特流的方法及装置
US10516891B2 (en) * 2015-11-20 2019-12-24 Intel Corporation Method and system of reference frame caching for video coding
US10555002B2 (en) * 2016-01-21 2020-02-04 Intel Corporation Long term reference picture coding
FI20165114A7 (fi) * 2016-02-17 2017-08-18 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
US11095898B2 (en) * 2016-03-28 2021-08-17 Lg Electronics Inc. Inter-prediction mode based image processing method, and apparatus therefor
KR102353778B1 (ko) * 2016-10-11 2022-01-20 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
EP3535977A4 (en) * 2016-11-01 2020-05-20 Nokia Technologies Oy APPARATUS, METHOD, AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
US20190364298A1 (en) * 2016-11-22 2019-11-28 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium having bitstream stored thereon
US11095907B2 (en) * 2017-03-27 2021-08-17 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
US10679415B2 (en) 2017-07-05 2020-06-09 Qualcomm Incorporated Enhanced signaling of regions of interest in container files and video bitstreams
US10652571B2 (en) 2018-01-25 2020-05-12 Qualcomm Incorporated Advanced motion vector prediction speedups for video coding
US10638133B2 (en) 2018-01-31 2020-04-28 Qualcomm Incorporated Delta quantization parameter (QP) coding options for video
KR102610092B1 (ko) 2018-08-17 2023-12-04 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩의 참조 픽처 관리
EP4164227A1 (en) 2018-09-12 2023-04-12 Huawei Technologies Co., Ltd. A video encoder, a video decoder and corresponding methods
CN113170203B (zh) 2018-12-10 2024-07-26 夏普株式会社 用于在视频编码中发送信号通知参考图片的系统和方法
EP3928512A4 (en) 2019-03-11 2022-06-22 Huawei Technologies Co., Ltd. STEP BY DECODE REFRESHMENT IN VIDEO ENCODING
US10986353B2 (en) * 2019-03-15 2021-04-20 Tencent America LLC Decoded picture buffer management for video coding
EP3954124A4 (en) * 2019-05-12 2022-08-03 Beijing Bytedance Network Technology Co., Ltd. SIGNALING FOR REFERENCE FRAME RESCAN
US11418813B2 (en) * 2019-09-20 2022-08-16 Tencent America LLC Signaling of inter layer prediction in video bitstream
CN121531144A (zh) * 2019-10-25 2026-02-13 夏普株式会社 用于在视频编码中发送信号通知图片信息的系统和方法
US12088848B2 (en) 2019-12-11 2024-09-10 Sharp Kabushiki Kaisha Systems and methods for signaling output layer set information in video coding
CN115362673B (zh) * 2020-02-14 2025-12-02 抖音视界有限公司 视频比特流中的并置图片指示
US11496771B2 (en) 2020-02-24 2022-11-08 Qualcomm Incorporated Reference picture list and collocated picture signaling in video coding
AR121124A1 (es) * 2020-02-29 2022-04-20 Beijing Bytedance Network Tech Co Ltd Señalización condicional de elementos de sintaxis en una cabecera de imagen
US11743503B2 (en) * 2020-05-14 2023-08-29 Qualcomm Incorporated Reference picture list constraints and signaling in video coding
CN119052501A (zh) * 2020-05-21 2024-11-29 阿里巴巴集团控股有限公司 用于进行视频数据处理的计算机实现方法、装置及存储介质
WO2021236903A1 (en) 2020-05-21 2021-11-25 Bytedance Inc. Signaling of gradual decoding refresh and reference picture lists
WO2021242716A1 (en) 2020-05-26 2021-12-02 Bytedance Inc. Identification of inter-layer reference pictures in coded video
WO2021239085A1 (en) * 2020-05-28 2021-12-02 Beijing Bytedance Network Technology Co., Ltd. Reference picture list signaling in video coding
US11882270B2 (en) * 2020-06-09 2024-01-23 Hfi Innovation Inc. Method and apparatus for video coding with constraints on reference picture lists of a RADL picture
JP7649730B2 (ja) 2021-11-04 2025-03-21 株式会社日立製作所 異常検出装置、異常検出システム、及び異常検出方法

Also Published As

Publication number Publication date
US20240214555A1 (en) 2024-06-27
CN114584775B (zh) 2023-04-11
PH12021550312A1 (en) 2021-10-11
KR102844156B1 (ko) 2025-08-07
BR112021002491A2 (pt) 2021-08-10
KR20230165889A (ko) 2023-12-05
CA3109799A1 (en) 2020-02-20
JP2021534676A (ja) 2021-12-09
US11477438B2 (en) 2022-10-18
JP2023085317A (ja) 2023-06-20
UA128290C2 (uk) 2024-05-29
JP7223118B2 (ja) 2023-02-15
MX2024010756A (es) 2024-09-10
KR102610094B1 (ko) 2023-12-04
US20210258568A1 (en) 2021-08-19
EP3831064A4 (en) 2021-10-06
EP3831070B1 (en) 2025-11-26
JP2021534670A (ja) 2021-12-09
KR20210041062A (ko) 2021-04-14
KR20230169440A (ko) 2023-12-15
KR102830936B1 (ko) 2025-07-04
MX2021001744A (es) 2021-07-16
EP3831054C0 (en) 2024-11-27
JP2021534671A (ja) 2021-12-09
JP2023086737A (ja) 2023-06-22
US20230128843A1 (en) 2023-04-27
US11956420B2 (en) 2024-04-09
JP7645303B2 (ja) 2025-03-13
SI3831064T1 (sl) 2024-06-28
JP2023065392A (ja) 2023-05-12
US20210168359A1 (en) 2021-06-03
ES2981233T3 (es) 2024-10-07
EP4507302A3 (en) 2025-04-09
DK3831064T3 (da) 2024-05-13
US20210258567A1 (en) 2021-08-19
PT3831064T (pt) 2024-05-10
HUE069899T2 (hu) 2025-04-28
JP7564090B2 (ja) 2024-10-08
CN114584774A (zh) 2022-06-03
PL3831064T3 (pl) 2024-06-03
CN114205590A (zh) 2022-03-18
EP4507302A2 (en) 2025-02-12
KR20250107940A (ko) 2025-07-14
JP2024180395A (ja) 2024-12-26
MY207383A (en) 2025-02-25
ZA202110257B (en) 2024-10-30
CN114501018B (zh) 2024-01-09
US12413712B2 (en) 2025-09-09
AU2019322914B2 (en) 2023-06-29
CN112585973A (zh) 2021-03-30
MX2024008569A (es) 2024-07-22
US12015761B2 (en) 2024-06-18
US12483695B2 (en) 2025-11-25
PL3831070T3 (pl) 2026-03-09
JP2021534673A (ja) 2021-12-09
JP7730757B2 (ja) 2025-08-28
US11997257B2 (en) 2024-05-28
AU2019322914A1 (en) 2021-03-18
KR102610089B1 (ko) 2023-12-04
US20240406374A1 (en) 2024-12-05
MX2021001743A (es) 2021-06-23
MX2021001838A (es) 2021-05-13
WO2020037276A1 (en) 2020-02-20
KR20210036401A (ko) 2021-04-02
CN114554196B (zh) 2023-04-28
EP4336832A2 (en) 2024-03-13
EP4550787A2 (en) 2025-05-07
EP3831056A1 (en) 2021-06-09
CN113141784A (zh) 2021-07-20
EP3831054B1 (en) 2024-11-27
US12268570B2 (en) 2025-04-08
KR20230170122A (ko) 2023-12-18
KR20210036402A (ko) 2021-04-02
CN114554196A (zh) 2022-05-27
EP3831057A4 (en) 2021-09-22
EP3831064B1 (en) 2024-02-07
JP7830382B2 (ja) 2026-03-16
CN118660154A (zh) 2024-09-17
US12506862B2 (en) 2025-12-23
EP4723633A2 (en) 2026-04-08
EP3831057A1 (en) 2021-06-09
WO2020037274A1 (en) 2020-02-20
SG11202101407QA (en) 2021-03-30
CN112567746A (zh) 2021-03-26
IL280944B1 (en) 2024-08-01
EP3831070A4 (en) 2022-02-16
US12058317B2 (en) 2024-08-06
US12581060B2 (en) 2026-03-17
CN112585974A (zh) 2021-03-30
CN114584775A (zh) 2022-06-03
EP3831054A1 (en) 2021-06-09
KR102610093B1 (ko) 2023-12-04
MX2024001656A (es) 2024-02-27
ES3062309T3 (en) 2026-04-09
HUE066343T2 (hu) 2024-07-28
KR102659936B1 (ko) 2024-04-22
US11979553B2 (en) 2024-05-07
ZA202100951B (en) 2023-07-26
KR20210036398A (ko) 2021-04-02
CN114697663B (zh) 2024-01-30
KR102609949B1 (ko) 2023-12-04
EP4336832A3 (en) 2024-05-22
JP7830383B2 (ja) 2026-03-16
US20240259553A1 (en) 2024-08-01
CN114205590B (zh) 2023-06-06
US20250254288A1 (en) 2025-08-07
CN114697663A (zh) 2022-07-01
SG11202101404WA (en) 2021-03-30
KR20240058947A (ko) 2024-05-03
US20260039803A1 (en) 2026-02-05
EP4550787A3 (en) 2025-07-02
EP3831055A4 (en) 2021-10-13
BR112021002483A2 (pt) 2021-07-27
EP4507301A3 (en) 2025-04-09
US20210176489A1 (en) 2021-06-10
PL3831055T3 (pl) 2025-03-10
NZ773625A (en) 2022-12-23
BR112021002499A2 (pt) 2021-07-27
KR20210036399A (ko) 2021-04-02
PT3831055T (pt) 2025-02-24
US12574502B2 (en) 2026-03-10
EP3831055B1 (en) 2024-11-27
SG11202100647TA (en) 2021-02-25
JP2025019072A (ja) 2025-02-06
JP7547319B2 (ja) 2024-09-09
JP7577150B2 (ja) 2024-11-01
IL280944A (en) 2021-04-29
DK3831055T3 (da) 2025-03-03
KR20250106333A (ko) 2025-07-09
JP2024032732A (ja) 2024-03-12
JP2023088995A (ja) 2023-06-27
EP3831056A4 (en) 2021-10-13
JP2021534668A (ja) 2021-12-09
SG11202101399VA (en) 2021-03-30
BR112021002832A2 (pt) 2021-05-04
IL280944B2 (en) 2024-12-01
JP2023095886A (ja) 2023-07-06
CL2021000397A1 (es) 2021-12-10
US20210185308A1 (en) 2021-06-17
WO2020037272A1 (en) 2020-02-20
KR20230169439A (ko) 2023-12-15
WO2020037278A1 (en) 2020-02-20
EP3831054A4 (en) 2021-10-13
US20240130835A1 (en) 2024-04-25
KR20250139889A (ko) 2025-09-23
EP4507301A2 (en) 2025-02-12
ES3014003T3 (en) 2025-04-16
KR102827866B1 (ko) 2025-06-30
CN120547324A (zh) 2025-08-26
WO2020037277A1 (en) 2020-02-20
KR102861658B1 (ko) 2025-09-17
WO2020037273A1 (en) 2020-02-20
EP3831055A1 (en) 2021-06-09
BR112021002486A2 (pt) 2021-07-27
KR102844154B1 (ko) 2025-08-07
KR102844155B1 (ko) 2025-08-07
CN114584774B (zh) 2023-05-09
US20210168360A1 (en) 2021-06-03
MX2024003663A (es) 2024-04-15
CN113412620A (zh) 2021-09-17
US20240244184A1 (en) 2024-07-18
CN112567744A (zh) 2021-03-26
JP7556846B2 (ja) 2024-09-26
SG11202100648RA (en) 2021-02-25
FI3831064T3 (fi) 2024-05-08
JP7278366B2 (ja) 2023-05-19
JP7543461B2 (ja) 2024-09-02
CA3109799C (en) 2024-04-23
MX2024008568A (es) 2024-07-22
JP2021534677A (ja) 2021-12-09
JP7802719B2 (ja) 2026-01-20
EP3831056B1 (en) 2024-11-27
EP3831070A1 (en) 2021-06-09
PL3831056T3 (pl) 2025-03-10
KR20210036400A (ko) 2021-04-02
KR102610092B1 (ko) 2023-12-04
CN114501018A (zh) 2022-05-13
US11758123B2 (en) 2023-09-12
BR112021002501A2 (pt) 2021-07-27
MX2021001745A (es) 2021-07-16
US20240414321A1 (en) 2024-12-12
US11991349B2 (en) 2024-05-21
JP2023095887A (ja) 2023-07-06
EP3831064A1 (en) 2021-06-09
SG11202101406PA (en) 2021-03-30
US20220201284A1 (en) 2022-06-23
KR20230169435A (ko) 2023-12-15

Similar Documents

Publication Publication Date Title
ES3010144T3 (en) Reference picture management in video coding
ES2981234T3 (es) Candidato de señalización para estructuras de listas de imágenes de referencia
BR122024004063A2 (pt) Gerenciamento de imagens de referência em codificação de vídeo
BR112021004667B1 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR122023006719B1 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR122024016988A2 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR112021004662B1 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes