ES3014003T3 - Reference picture management in video coding - Google Patents

Reference picture management in video coding Download PDF

Info

Publication number
ES3014003T3
ES3014003T3 ES19850149T ES19850149T ES3014003T3 ES 3014003 T3 ES3014003 T3 ES 3014003T3 ES 19850149 T ES19850149 T ES 19850149T ES 19850149 T ES19850149 T ES 19850149T ES 3014003 T3 ES3014003 T3 ES 3014003T3
Authority
ES
Spain
Prior art keywords
picture
refpiclist
list
pic
slice
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
ES19850149T
Other languages
English (en)
Inventor
Ye-Kui Wang
Fnu Hendry
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 ES3014003T3 publication Critical patent/ES3014003T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51—Motion estimation or motion compensation
    • H04N19/58—Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • A—HUMAN NECESSITIES
    • A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61C—DENTISTRY; APPARATUS OR METHODS FOR ORAL OR DENTAL HYGIENE
    • A61C7/00—Orthodontics, i.e. obtaining or maintaining the desired position of teeth, e.g. by straightening, evening, regulating, separating, or by correcting malocclusions
    • A61C7/002—Orthodontic computer assisted systems
    • A—HUMAN NECESSITIES
    • A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61C—DENTISTRY; APPARATUS OR METHODS FOR ORAL OR DENTAL HYGIENE
    • A61C7/00—Orthodontics, i.e. obtaining or maintaining the desired position of teeth, e.g. by straightening, evening, regulating, separating, or by correcting malocclusions
    • A61C7/02—Tools for manipulating or working with an orthodontic appliance
    • A—HUMAN NECESSITIES
    • A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61C—DENTISTRY; APPARATUS OR METHODS FOR ORAL OR DENTAL HYGIENE
    • A61C7/00—Orthodontics, i.e. obtaining or maintaining the desired position of teeth, e.g. by straightening, evening, regulating, separating, or by correcting malocclusions
    • A61C7/08—Mouthpiece-type retainers or positioners, e.g. for both the lower and upper arch
    • B—PERFORMING OPERATIONS; TRANSPORTING
    • B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29C—SHAPING 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/00—Shaping 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/26—Component parts, details or accessories; Auxiliary operations
    • B29C51/30—Moulds
    • B—PERFORMING OPERATIONS; TRANSPORTING
    • B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29C—SHAPING 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/00—Shaping 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/26—Component parts, details or accessories; Auxiliary operations
    • B29C51/46—Measuring, controlling or regulating
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103—Selection of coding mode or of prediction mode
    • H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46—Embedding additional information in the video signal during the compression process
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46—Embedding additional information in the video signal during the compression process
    • H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46—Embedding additional information in the video signal during the compression process
    • H04N19/467—Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43—Processing 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/44—Processing 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/44004—Processing 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
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43—Processing 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/44—Processing 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/44008—Processing 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
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43—Processing 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/441—Acquiring end-user identification, e.g. using personal code sent by the remote control or by inserting a card
    • B—PERFORMING OPERATIONS; TRANSPORTING
    • B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29L—INDEXING SCHEME ASSOCIATED WITH SUBCLASS B29C, RELATING TO PARTICULAR ARTICLES
    • B29L2031/00—Other particular articles
    • B29L2031/753—Medical equipment; Accessories therefor
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00—General purpose image data processing
    • G06T1/60—Memory 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

Se proporciona un método para decodificar un flujo de bits de vídeo codificado. El método incluye analizar el encabezado de un segmento del segmento actual representado en el flujo de bits de vídeo codificado. El encabezado de segmento incluye una estructura de lista de imágenes de referencia. El método también incluye derivar, a partir de dicha estructura, una lista de imágenes de referencia del segmento actual; y, a partir de dicha lista, obtener 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 divulgación está relacionada en general con técnicas para la gestión de imágenes de referencia en la codificación de vídeo. Más específicamente, esta divulgación describe técnicas para la construcción de listas de imágenes de referencia y el marcado de imágenes de referencia.
Antecedentes
La cantidad de datos de vídeo necesarios para representar incluso un vídeo relativamente corto puede ser considerable, lo que puede dar lugar a dificultades cuando los datos han de transmitirse en continuo o comunicarse 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, porque los recursos de memoria son limitados. Los dispositivos de compresión de vídeo a menudo usansoftwarey/ohardwareen la fuente 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 la 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.
HANNUKSELA (NOKIA) M M ET AL, "AHG21: On reference picture list construction and reference picture marking", no. JCTVC-G643, (20111124), 7. JCT-VC MEETING; 20111121 - 20111130; GENEVA; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ),, URL: http://phenix.intevry.fr/jct/doc_end_user/documents/7_Geneva/wg11JCTVC-G643-v3.zip JCTVC-G643r2.doc, (20111124), XP030230939, divulga un enfoque para utilizar 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 libre.
HANNUKSELA (NOKIA) M M ET AL, "AHG21: On reference picture list construction and reference picture marking", no. JCTVC-G643, (20111124), 7. JCT-VC MEETING; 20111121 - 20111130; GENEVA; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND 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_w ith _JC TV C -G641r2_reduced.doc, (20111124), XP030230935, divulga un enfoque para utilizar 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 libre.
El documento US 2013/114742 A1 divulga un proceso de marcado de imágenes de referencia y un proceso de gestión de listas de imágenes de referencia.
Compendio
El objetivo de la presente invención es que un primer aspecto está relacionado con un método para decodificar un flujo de bits de vídeo codificado. El método comprende analizar un encabezado de porción de una porción(slice)actual representada en el flujo de bits de vídeo codificado, en donde el encabezado de porción comprende una estructura de lista de imágenes de referencia; obtener, sobre la base de la estructura de lista de imágenes de referencia, una lista de imágenes de referencia de la porción actual; y obtener, sobre la base de la lista de imágenes de referencia, al menos un bloque reconstruido de la porción actual. Este objetivo se resuelve mediante las reivindicaciones independientes adjuntas, y en las reivindicaciones dependientes adjuntas se enumeran realizaciones y mejoras adicionales de la invención. En adelante, hasta la "breve descripción de los dibujos", las 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. Los términos como "implementación", "diseño", "opcionalmente", "preferiblemente", "escenario", "aspecto" o similares se refieren a realizaciones adicionales como se reivindica, y los términos y expresiones como "ejemplo", "... aspecto según un ejemplo", "la divulgación describe" o "la divulgació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 dan a conocer características adicionales de la invención. En lo que sigue, las partes de la descripción y los dibujos que se refieren a realizaciones que no están abarcadas por las reivindicaciones no se presentan como realizaciones de la invención, sino como ejemplos útiles para comprender la invención.
El método proporciona técnicas que simplifican y hacen más eficaz 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 divulgación, se hace referencia ahora a la breve descripción siguiente, considerada en conexión con los dibujos adjuntos y la descripción detallada, en donde los números de referencia iguales representan partes iguales.
La Figura 1 es un diagrama de bloques que ilustra un sistema de codificación ejemplar que utiliza técnicas de predicción bilateral.
La Figura 2 es un diagrama de bloques que ilustra un codificador de vídeo ejemplar que implementa técnicas de predicción bilateral.
La Figura 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador de vídeo que implementa técnicas de predicción bilateral.
La Figura 4 es un diagrama esquemático que ilustra un conjunto de imágenes de referencia (RPS, por sus siglas en inglés) que tiene una imagen con entradas en todos los subconjuntos del RPS.
La Figura 5 es una realización de un método de decodificación de un flujo de bits de vídeo codificado.
La Figura 6 es un diagrama esquemático de un dispositivo de codificación de vídeo.
La Figura 7 es un diagrama esquemático de una realización de un medio 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 deben entenderse en adelante, cuando se describen y se explican con referencia a los dibujos, como "no reivindicadas" o "que no forman parte de la invención".
Descripción detallada
La Figura 1 es un diagrama de bloques que ilustra un sistema 10 de codificación ejemplar que utiliza técnicas de codificación de vídeo como se describe en la presente memoria. Como se muestra en la Figura 1, el sistema 10 de codificación incluye un dispositivo 12 de origen que proporciona datos de vídeo codificados que han de 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 tiponotebook(por ejemplo, ordenador portátil), ordenadores tipo tableta, módulos de conexión, aparatos telefónicos tales como los, así llamados, teléfonos "inteligentes", las, así llamadas, "pizarras electrónicas", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión en continuo de vídeo o similares. En algunos casos, el dispositivo 12 de origen y el dispositivo 14 de destino están equipados para la comunicación inalámbrica.
El dispositivo 14 de destino recibe los datos de vídeo codificados que se han de decodificar 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 del 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 posibilitar 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ámbrica o por cable, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión físicas. 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 del dispositivo 12 de origen al dispositivo 14 de destino.
En algunos ejemplos, los datos codificados se envían desde una interfaz 22 de salida a un dispositivo de almacenamiento. De manera similar, se accede a los datos codificados desde el dispositivo de almacenamiento mediante una interfaz de entrada. El dispositivo de almacenamiento incluye cualquiera de diversos medios de almacenamiento de datos distribuidos o de acceso local, tales como un disco duro, discos Blu-ray, discos de vídeo digital (DVD), Memorias de Sólo Lectura de Disco Compacto (CD-ROM), memoriaflash,memoria volátil o no volátil, o cualquier otro medio 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 almacene 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 continuo 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 ejemplares incluyen un servidor web (por ejemplo, para un sitio web), un servidor de protocolo de transferencia de archivos (FTP , por sus siglas en inglés), dispositivos de almacenamiento conectados a la red (NAS, por sus siglas en inglés) 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, por sus siglas en inglés), módem por cable, etc.) o una combinación de ambos 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 continuo, una transmisión de descarga o una combinación de las mismas.
Las técnicas de esta divulgación no se limitan necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se aplican a la codificación de vídeo en apoyo de cualquiera de diversas aplicaciones multimedia, tales como radiodifusiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo en continuo por Internet, tales como transmisión dinámica adaptativa en continuo sobre HTTP (DASH, por sus siglas en inglés), vídeo digital codificado en un medio de almacenamiento de datos, decodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 de codificación está configurado para admitir transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como transmisión en continuo de vídeo, reproducción de vídeo, radiodifusión de vídeo y/o videotelefonía.
En el ejemplo de la Figura 1, el dispositivo 12 de origen incluye una fuente 18 de vídeo, un codificador 20 de vídeo y la interfaz 22 de salida. El dispositivo 14 de destino incluye una interfaz 28 de entrada, un decodificador 30 de vídeo y un dispositivo 32 de visualización. Según esta divulgació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 están configurados 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 desde una fuente de vídeo externa, 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 Figura 1 es simplemente un ejemplo. Las técnicas para la codificación de vídeo se realizan mediante cualquier dispositivo de codificación y/o decodificación de vídeo digital. Aunque las técnicas de esta divulgación generalmente se realizan mediante un dispositivo de codificación de vídeo, las técnicas también se realizan mediante un codificador/decodificador de vídeo, normalmente denominado "CODEC". Además, las técnicas de esta divulgación también se realizan mediante un preprocesador de vídeo. El codificador y/o el decodificador de vídeo son una unidad de procesamiento de gráficos (GPU, por sus siglas en inglés) 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 funcionan de manera sustancialmente simétrica, de modo que los dispositivos 12, 14 de origen y de destino incluyen cada uno componentes de codificación y decodificación de vídeo. Por lo tanto, el sistema 10 de codificación admite transmisión de vídeo unidireccional o bidireccional entre dispositivos 12, 14 de vídeo, por ejemplo, para transmisión en continuo de vídeo, reproducción de vídeo, radiodifusión de vídeo o videotelefonía.
La fuente 18 de vídeo del dispositivo 12 de origen incluye un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contenga vídeo capturado previamente y/o una interfaz de alimentación de vídeo para recibir vídeo de un proveedor de contenido de vídeo. Como alternativa adicional, la fuente 18 de vídeo genera datos basados en gráficos de ordenador como la fuente 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 la fuente 18 de vídeo es una cámara de vídeo, el dispositivo 12 de origen y el dispositivo 14 de destino forman unos, así llamados, teléfonos con cámara o videoteléfonos. Sin embargo, como se mencionó anteriormente, las técnicas descritas en esta divulgación son aplicables 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 codifica mediante el codificador 20 de vídeo. La información de vídeo codificada se envía luego mediante la interfaz 22 de salida a un medio 16 legible por ordenador.
El medio 16 legible por ordenador incluye medios transitorios, tales como una radiodifusión inalámbrica o una transmisión por red por cable, o medios de almacenamiento (es decir, medios de almacenamiento no transitorios), tales como un disco duro, una unidadflash,un disco compacto, un disco de vídeo digital, un 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 por red. De manera similar, un dispositivo informático de una instalación de producción de medios, tal como una instalación de impresión 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, se entiende que el medio 16 legible por ordenador incluye uno o más medios legibles por ordenador de diversas formas, en diversos 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, por sus siglas en inglés). El dispositivo 32 de visualización muestra los datos de vídeo decodificados a un usuario y comprende cualquiera de diversos dispositivos de visualización tales como un tubo de rayos catódicos (CRT, por sus siglas en inglés), una pantalla de cristal líquido (LCD, por sus siglas en inglés), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED, por sus siglas en inglés) 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, por sus siglas en inglés) actualmente en desarrollo y se ajustan al Modelo de Prueba HEVC (HM, por sus siglas en inglés). Otros estándares patentados o de la industria incluyen el estándar H.264 del Sector de Normalización de las Telecomunicaciones de la Unión Internacional de Telecomunicaciones (ITU-T, por sus siglas en inglés), también denominado Grupo de Expertos en Imágenes en Movimiento (MPEG, por sus siglas en inglés)-4, Parte 10, Codificación de Vídeo Avanzada (AVC, por sus siglas en inglés), H.265/HEVC o extensiones de tales 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 Figura 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 otroshardwareysoftware,para manejar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si corresponde, las unidades MUX-DEMUX se ajustan al protocolo multiplexor H.223 de ITU u otros protocolos, tales como el protocolo de datagramas de usuario (UDP, por sus siglas en inglés).
El codificador 20 de vídeo y el decodificador 30 de vídeo se implementan cada uno como cualquiera de diversos circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP, por sus siglas en inglés), circuitos integrados de aplicación específica (ASIC, por sus siglas en inglés), agrupaciones de puertas programables de campo (FPGA, por sus siglas en inglés), lógica discreta,software, hardware, firmwareo cualesquiera combinaciones de los mismos. Cuando las técnicas se implementan parcialmente ensoftware,un dispositivo almacena instrucciones para elsoftwareen un medio adecuado legible por ordenador no transitorio y ejecuta las instrucciones enhardwareusando uno o más procesadores para realizar las técnicas de esta divulgación. El codificador 20 de vídeo y el decodificador 30 de vídeo se incluyen cada uno en uno o más codificadores o decodificadores, cualquiera de los cuales está integrado 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 Figura 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 porciones 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) se refiere a cualquiera de varios modos de codificación basados en el espacio. Los intermodos, tales como la predicción unidireccional (también conocida como unipredicción) (modo P) o la predicción bidireccional (también conocida como bipredicción) (modo B), se refieren a cualquiera de varios modos de codificación basados en el tiempo.
Como se muestra en la Figura 2, el codificador 20 de vídeo recibe un bloque de vídeo actual dentro de un fotograma de vídeo que ha de ser codificado. En el ejemplo de la Figura 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 transformada, 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 conocida como 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 transformada inversa y el sumador 62. También se incluye un filtro de desbloqueo (no mostrado en la Figura 2) para filtrar los límites del bloque para eliminar los artefactos de bloqueo del vídeo reconstruido. Si se desea, el filtro de desbloqueo normalmente filtraría la salida del sumador 62. También se usan filtros adicionales (en bucle o postbucle) además del filtro de desbloqueo. Tales filtros no se muestran por brevedad, pero, si se desean, filtran 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 porción de vídeo que se ha de codificar. El fotograma o porción 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 porción que el bloque que se ha de codificar para proporcionar predicción espacial. El codificador 20 de vídeo realiza 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 divide bloques de datos de vídeo en subbloques, en función de la evaluación de esquemas de partición anteriores en pasadas de codificación anteriores. La unidad 48 de partición divide inicialmente un fotograma o porción en unidades de codificación más grandes (LCU, por sus siglas en inglés) y divide cada una de las LCU en unidades de subcodificación (sub-CU, por sus siglas en inglés) en función del 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 sub-CU. Las CU de nodo de hoja del árbol cuádruple incluyen una o más unidades de predicción (PU, por sus siglas en inglés) y una o más unidades de transformada (TU, por sus siglas en inglés).
La presente divulgació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 de los mismos 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 varía 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 división de la CU en una o más PU. Los modos de división difieren entre si la CU está codificada en modo directo o salteado, codificada en modo intrapredicción o codificada en modo interpredicción. Las PU se dividen para que no tengan forma cuadrada. Los datos de sintaxis asociados con una CU también describen la divisió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, en función de los resultados de error, y proporciona el bloque intracodificado 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 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 se está codificando dentro del fotograma actual (u otra unidad codificada). Un bloque predictivo es un bloque del que se comprueba que coincide estrechamente con el bloque que se ha de codificar, en términos de diferencia de píxeles, que se determina mediante la suma de la diferencia absoluta (SAD, por sus siglas en inglés), la suma de la diferencia cuadrática (SSD , por sus siglas en inglés) u otras métricas de diferencia. En algunos ejemplos, el codificador 20 de vídeo calcula valores para posiciones de píxeles de 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 fraccionarias 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 píxeles fraccionarios y emite un vector de movimiento con precisión de píxeles fraccionarios.
La unidad 42 de estimación de movimiento calcula un vector de movimiento para una PU de un bloque de vídeo en una porción intercodificada 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 en función del 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 están integradas 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 localiza 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 explica posteriormente. 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 en función de 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 la porción de vídeo para su uso por el decodificador 30 de vídeo al decodificar los bloques de vídeo de la porción 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 que se ha de usar para codificar un bloque actual. En algunos ejemplos, la unidad 46 de intrapredicción codifica un bloque actual usando diversos 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 para su uso a partir de los modos probados.
La unidad 46 de intrapredicción calcula valores de distorsión de tasa usando un análisis de distorsión de tasa para los diversos modos de intrapredicción probados y selecciona el modo de intrapredicción que 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, una cantidad de bits) utilizada para producir el bloque codificado. La unidad 46 de intrapredicción calcula relaciones a partir de las distorsiones y tasas para los diversos bloques codificados para determinar qué modo de intrapredicción presenta el mejor valor de distorsión de tasa para el bloque.
Además, la unidad 46 de intrapredicción se configura para codificar bloques de profundidad de un mapa de profundidad usando un modo de modelado de profundidad (DMM, por sus siglas en inglés). 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, por sus siglas en inglés). 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 configuran 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 índices de modo de intrapredicción y una pluralidad de tablas de índices de modo de intrapredicción modificadas (también denominadas tablas de mapeo de palabras código), definiciones de contextos de codificación para diversos bloques, e indicaciones de un modo de intrapredicción más probable, una tabla de índices de modo de intrapredicción y una tabla de índices de modo de intrapredicción modificada para su uso 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 transformada aplica una transformada, tal como una transformada de coseno discreta (DCT, por sus siglas en inglés) o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficiente de transformada residual. La unidad 52 de procesamiento de transformada realiza otras transformadas que son conceptualmente similares a la DCT. También podrían usarse transformadas de ondícula, transformadas de enteros, transformadas de subbanda u otros tipos de transformadas.
La unidad 52 de procesamiento de transformada aplica la transformada al bloque residual, produciendo un bloque de coeficientes de transformada residual. La transformada convierte la información residual de un dominio de valor de píxel en un dominio de transformada, tal como un dominio de frecuencia. La unidad 52 de procesamiento de transformada envía los coeficientes de transformada resultantes a la unidad 54 de cuantificación. La unidad 54 de cuantificación cuantifica los coeficientes de transformada para reducir aun más la tasa de bits. El proceso de cuantificación reduce la profundidad de bit asociada con algunos o la totalidad de 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 incluye los coeficientes de transformada cuantificados. Como alternativa, 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 transformada cuantificados. La unidad 56 de codificación de entropía realiza una codificación de longitud variable adaptativa según el contexto (CAVLC, por sus siglas en inglés), codificación aritmética binaria adaptativa según el contexto (CABAC, por sus siglas en inglés), codificación aritmética binaria adaptativa según el contexto basada en sintaxis (SBAC, por sus siglas en inglés), codificación de entropía de partición de intervalo de probabilidad (P IPE , por sus siglas en inglés) 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 transmite 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 transformada 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 lo usan 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 Figura 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 Figura 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 puede, en algunos ejemplos, realizar una pasada de decodificación generalmente recíproca a la pasada de codificación descrita con respecto al codificador 20 de vídeo (Figura 2). La unidad 72 de compensación de movimiento genera datos de predicción en función de 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 en función de 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 una porción de vídeo codificada 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 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 porción de vídeo y/o el nivel de bloque de vídeo.
Cuando la porción de vídeo se codifica como una porción intracodificada (I), la unidad 74 de intrapredicción genera datos de predicción para un bloque de vídeo de la porción de vídeo actual en función de un modo de intrapredicción señalizado y datos de bloques previamente decodificados del fotograma o imagen actual. Cuando el fotograma de vídeo se codifica como una porción intercodificada (por ejemplo, B, P o GPB), la unidad 72 de compensación de movimiento produce bloques predictivos para un bloque de vídeo de la porción de vídeo actual en función de los vectores de movimiento y otros elementos de sintaxis recibidos de la 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 por defecto en función de imágenes de referencia almacenadas en la memoria 82 de fotogramas de referencia.
La unidad 72 de compensación de movimiento determina información de predicción para un bloque de vídeo de la porción 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 predictivos 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, intrapredicción o interpredicción) usado para codificar los bloques de vídeo de la porción de vídeo, un tipo de porción de interpredicción (por ejemplo, porción B, porción P o porción GPB), información de construcción para una o más de las listas de imágenes de referencia para la porción, vectores de movimiento para cada bloque de vídeo intercodificado de la porción, estado de interpredicción para cada bloque de vídeo intercodificado de la porción y otra información para decodificar los bloques de vídeo en la porción de vídeo actual.
La unidad 72 de compensación de movimiento también realiza una interpolación basada en 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 configura para interpredecir 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 diversos estándares de codificación. Tales estándares de codificación de vídeo incluyen H.261 de ITU-T, ISO/IEC Grupo de Expertos en Imágenes en Movimiento (MPEG)-1 Parte 2, H.262 de ITU-T u Organización Internacional de Normalización (ISO, por sus siglas en inglés)/Comisión Electrotécnica Internacional (IEC , por sus siglas en inglés) MPEG-2 Parte 2, H.263 de ITU-T, ISO/IEC Mp E g -4 Parte 2, Codificación de Vídeo Avanzada (AVC), también conocida como H.264 de ITU-T o ISO/IEC MPEG-4 Parte 10, y Codificación de Vídeo de Alta Eficiencia (<h>E<v>C), también conocida como H.265 de ITU-T o MPEG-H Parte 2. La<a>V<c>incluye extensiones tales como Codificación de Vídeo Escalable (SVC, por sus siglas en inglés), Codificación de Vídeo Multivista (MVC, por sus siglas en inglés) y Codificación de Vídeo Multivista más Profundidad (MVC+D, por sus siglas en inglés) y AVC 3D (3D-AVC). La HEVC incluye extensiones tales como HEVC Escalable (SHVC, por sus siglas en inglés), HEVC Multivista (MV-HEVC, por sus siglas en inglés) 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 (JV ET , por sus siglas en inglés) de ITU-T e ISO/IEC. En el momento de escribir esta memoria, el último Borrador de Trabajo (WD, por sus siglas en inglés) de VVC está incluido en JVET-K1001-v1. El documento JVET-K0325-v3 de JV ET incluye una actualización de la sintaxis de alto nivel de VVC.
En general, la presente divulgación describe técnicas basadas en el subdesarrollo de la norma VVC. Sin embargo, las técnicas también se aplican a otras especificaciones de códecs de vídeo/medios.
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 en secuencias de vídeo. Para la codificación de vídeo basada en bloques, una porción de vídeo (por ejemplo, una imagen de vídeo o una parte de una imagen de vídeo) se divide en bloques de vídeo, que también se denominan bloques de árbol, bloques de árbol de codificación (CTB, por sus siglas en inglés), unidades de árbol de codificación (CTU, por sus siglas en inglés), unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en una porción intracodificada (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 una porción intercodificada (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 denominan fotogramas y las imágenes de referencia se denominan fotogramas de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para un bloque que se ha de codificar. Los datos residuales representan diferencias de píxeles entre el bloque original que se ha de 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 que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica según un modo de intracodificación y los datos residuales. Para una mayor compresión, los datos residuales se transforman del dominio de píxeles a un dominio de transformada, dando como resultado coeficientes de transformada residuales, que luego se cuantifican. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, se escanean para producir un vector unidimensional de coeficientes de transformada y se aplica codificación de entropía para lograr una compresión aun mayor.
En una especificación de códec de vídeo, las imágenes se identifican para múltiples propósitos, incluido el uso como imagen de referencia en la interpredicción, para la salida de imágenes del búfer de imágenes decodificadas (DPB, por sus siglas en inglés), para el cambio de escala de vectores de movimiento, para la predicción ponderada, etc. En AVC y HEVC, las imágenes se pueden identificar mediante recuento de orden de imágenes (POC, por sus siglas en inglés). En AVC y HEVC, las imágenes en el DPB se pueden marcar como "utilizadas para referencia a corto plazo", "utilizadas para referencia a largo plazo" o "no utilizadas para referencia". Una vez que una imagen ha sido marcada como "no utilizada para referencia", la imagen ya no se puede usar para la 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 plazo y a largo plazo. Una imagen de referencia se marca como "no utilizada para referencia" cuando ya no se necesita para la referencia de predicción. La conversión entre estos tres estados (a corto plazo, a largo plazo y no utilizada 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 (MMCO, por sus siglas en inglés) explícito. El proceso de ventana deslizante marca una imagen de referencia a corto plazo como "no utilizada para 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 , por sus siglas en inglés)). Las imágenes de referencia a corto plazo se almacenan en una forma de 'primera en entrar, primera en salir', de manera que las imágenes a corto plazo decodificadas más recientemente se conservan en el DPB.
El proceso de 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 utilizadas para referencia", marca todas las imágenes como "no utilizadas para referencia" o marca la imagen de referencia actual o una imagen de referencia a corto plazo existente como a largo plazo y luego asigna un índice de imagen a largo plazo a esa imagen de referencia a largo plazo.
En 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 haya decodificado una imagen.
HEVC introduce un enfoque diferente para la gestión de imágenes de referencia, denominado conjunto de imágenes de referencia (RPS, por sus siglas en inglés). 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 porción en particular se proporciona un conjunto completo de las imágenes de referencia utilizadas 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 sólo se señalizan cambios relativos en el DPB. Con el concepto RPS, no se necesita información de imágenes anteriores en orden de decodificación para mantener el estado correcto de las imágenes de referencia en el DPB.
En HEVC, el orden de decodificación de imágenes y las operaciones de DPB están modificados en comparación con AVC para aprovechar las ventajas del RPS y mejorar la resistencia a los errores. En AVC, las operaciones de marcado de imágenes y de 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 a partir de un encabezado de porción de la imagen actual, luego se aplican generalmente operaciones de marcado de imágenes y de búfer antes de decodificar la imagen actual.
Cada encabezado de porción en HEVC debe incluir parámetros para la señalización del RPS para la imagen que contiene las porciones. La única excepción es que no se señaliza ningún RPS para las porciones de Refresco de Decodificación Instantánea (IDR, por sus siglas en inglés). En cambio, se deduce que el RPS está vacío. Para las porciones I que no pertenecen a una imagen IDR, se proporciona un RPS, incluso si pertenecen a una imagen I, ya que hay imágenes que siguen a la imagen I en orden de decodificación que utilizan interpredicción de imágenes que precedían a la imagen I en 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 POC que representa el orden de salida. Los encabezados de porción contienen una palabra código de longitud fija, pic_order_cnt_lsb, que representa los bits menos significativos (LSB, por sus siglas en inglés) del valor POC completo, también conocidos como LSB de POC. La longitud de la palabra código se señaliza en el SP S y puede ser de entre 4 y 16 bits. El concepto RPS utiliza POC para identificar imágenes de referencia. Además de su propio valor POC, cada encabezado de porción contiene directamente o hereda del SPS una representación codificada de los valores 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, en orden tanto de decodificación como de salida, y que se utilizan 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 orden de decodificación, que suceden a la imagen actual en orden de salida, y que se utilizan en la interpredicción de la imagen actual. RefPicSetStFoll consiste en todas las imágenes de referencia a corto plazo que se utilizan en la interpredicción de una o más de las imágenes que siguen a la imagen actual en orden de decodificación y que no se utilizan en la interpredicción de la imagen actual. RefPicSetLtCurr consiste en todas las imágenes de referencia a largo plazo que se utilizan en la interpredicción de la imagen actual. RefPicSetLtF oll consiste en todas las imágenes de referencia a largo plazo que se utilizan en la interpredicción de una o más de las imágenes que siguen a la imagen actual en orden de decodificación y que no se utilizan en la interpredicción de la imagen actual.
El RPS se señaliza utilizando hasta tres bucles que iteran diferentes tipos de imágenes de referencia; imágenes de referencia a corto plazo con un valor POC más bajo que la imagen actual, imágenes de referencia a corto plazo con un valor POC más alto que la imagen actual, e imágenes de referencia a largo plazo. Además, se envía un señalizador (used_by_curr_pic_X_flag) para cada imagen de referencia que indica si la imagen de referencia es utilizada para 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 Figura 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 Figura 4, la imagen actual B14 contiene exactamente una imagen en cada uno de los cinco subconjuntos 402 (también conocidos como subconjuntos RPS). P8 es la imagen del subconjunto 402 denominada RefPicSetStCurrBefore porque la imagen está antes en orden de salida y la utiliza B14. P12 es la imagen del subconjunto 402 denominada RefPicSetStCurrAfter porque la imagen está después en orden de salida y la utiliza B14. P13 es la imagen del subconjunto 402 denominada RefPicSetStFoll porque la imagen es una imagen de referencia a corto plazo no utilizada por B14 (pero debe mantenerse en el DPB ya que la utiliza B15). P4 es la imagen del subconjunto 402 denominada RefPicSetLtCurr porque la imagen es una imagen de referencia a largo plazo utilizada por B14. I0 es la imagen del subconjunto 402 denominada RefPicSetLtFoll, ya que la imagen es una imagen de referencia a largo plazo no utilizada por la imagen actual (pero debe mantenerse en el DPB, ya que la utiliza B15).
La parte a corto plazo del RPS 400 se incluye directamente en el encabezado de porción. Como alternativa, el encabezado de porción contiene sólo un elemento de sintaxis que representa un índice, haciendo referencia a una lista predefinida de RPS enviados en el S P S activo. La parte a corto plazo del RPS 402 se puede señalizar utilizando cualquiera de dos esquemas diferentes; Inter RPS, como se describe posteriormente, o Intra RPS, como se describe aquí. Cuando se utiliza Intra RPS, 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 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 POC de la imagen actual menos uno.
Al codificar 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 Inter RPS. No hay problemas de robustez contra 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, por sus siglas en inglés). La sintaxis Inter RPS aprovecha el hecho de que el R PS de la imagen actual se puede predecir a partir del RPS de una imagen previamente decodificada. Esto se debe a que todas las imágenes de referencia de la imagen actual deben ser, bien imágenes de referencia de la imagen anterior, bien la propia imagen decodificada anteriormente. Sólo es necesario indicar cuáles de estas imágenes deben ser imágenes de referencia y utilizarse para la predicción de la imagen actual. Por lo tanto, la sintaxis comprende lo siguiente: un índice que apunta al RPS para su uso como predictor, un delta_POC que se ha de agregar 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 sólo se usan para la predicción de imágenes futuras.
Los codificadores que deseen aprovechar el uso de imágenes de referencia a largo plazo deben establecer el elemento de sintaxis SP S long_term_ref_pics_present_flag en uno. Las imágenes de referencia a largo plazo se pueden señalizar entonces en el encabezado de porción mediante palabras código de longitud fija, poc_lsb_lt, que representan los bits menos significativos del valor p Oc completo de cada imagen a largo plazo. Cada poc_lsb_lt es una copia de la palabra código pic_order_cnt_lsb que se señalizó para una imagen a largo plazo en particular. También es posible señalizar un conjunto de imágenes a largo plazo en el SP S como una lista de valores LSB de POC. Los LSB de POC para una imagen a largo plazo pueden señalizarse entonces en el encabezado de porción como un índice para esta lista.
El elemento de sintaxis delta_poc_msb_cycle_lt_minus1 se puede señalizar adicionalmente para posibilitar el cálculo de la distancia POC completa de una imagen de referencia a largo plazo en relación con la imagen actual. Se requiere que la palabra código delta_poc_msb_cycle_lt_minus1 esté señalizada para cada imagen de referencia a largo plazo que tenga el mismo valor LSB de POC que cualquier otra imagen de referencia en el RPS.
Para el marcado de imágenes de referencia en HEVC, normalmente habrá varias 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 tales, marcadas como "utilizadas para referencia". Otras imágenes no están disponibles para la predicción, pero están esperando la salida y, como tales, marcadas como "no utilizadas para referencia". Cuando se ha analizado el encabezado de porción, se lleva a cabo un proceso de marcado de imágenes antes de decodificar los datos de la porción. Las imágenes que están presentes en el DPB y marcadas como "utilizadas para referencia", pero que no están incluidas en el RPS, están marcadas como "no utilizadas para 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 used_by_curr_pic_X_flag es igual a cero. Sin embargo, cuando used_by_curr_pic_X_flag es en su lugar igual a uno, esta imagen de referencia estaba destinada a ser utilizada para la predicción en la imagen actual, pero falta. Entonces se infiere una pérdida de imagen no intencionada y el decodificador debe tomar las medidas apropiadas.
Después de decodificar la imagen actual, se marca como "utilizada para referencia a corto plazo".
A continuación, se expone la construcción de la lista de imágenes de referencia en HEVC. En HEVC, el término interpredicción se utiliza para denotar la predicción obtenida 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 utilizan para la 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 utilizarse para crear la señal de predicción.
Se utilizan una sola lista de imágenes de referencia, Lista 0, para una porción P y dos listas de imágenes de referencia, Lista 0 y Lista 1, para las porciones B. De manera similar a AVC, la construcción de la lista de imágenes de referencia en HEVC incluye la inicialización de la lista de imágenes de referencia y la modificación de la lista de imágenes de referencia.
En AVC, el proceso de inicialización para la Lista 0 es diferente para la porción P (para la que se utiliza el orden de decodificación) y las porciones B (para las que se utiliza el orden de salida). En HEVC, el orden de salida se utiliza en ambos casos.
La inicialización de la lista de imágenes de referencia crea la Lista 0 y la Lista 1 por defecto (si la porción es una porción 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 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 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 de RefPicSetStCurrBefore se insertan en la lista inicial, seguidas de las entradas de RefPicSetStCurrAfter. Posteriormente, se anexan las entradas de RefPicSetLtCurr, si están disponibles.
En HEVC, se repite el proceso anterior (se vuelven a agregar las imágenes de referencia que ya se han agregado 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 el encabezado de porción). 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, se modifica de manera que las imágenes de referencia para la imagen actual se organicen en cualquier orden, incluido el caso en que una imagen de referencia en particular aparezca en más de una posición de la lista, en función de los comandos de modificación de la lista de imágenes de referencia. Cuando el señalizador que indica la presencia de modificaciones de la lista se establece en uno, se señalizan 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 para la lista de imágenes de referencia para la imagen actual obtenida a partir de la señalización RPS. Esto es diferente de la modificación de la lista de imágenes de referencia en H.264/AVC, donde una imagen se identifica ya sea por el número de imagen (obtenida a partir 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 cambiar las demás.
No se permite que una lista de imágenes de referencia incluya ninguna imagen de referencia con un TemporalId mayor que 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 JCTVC-G643 de JCT-VC incluye un enfoque para utilizar 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 libre, 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, bien 1) los procesos de ventana deslizante y de MMCO, así como los procesos de inicialización y modificación de la lista de imágenes de referencia en AVC, bien 2) el conjunto de imágenes de referencia, así como los procesos de inicialización y modificación de la lista 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 la lista 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 posteriores. El enfoque HEVC no tiene el problema de pérdida de estado del DPB. Sin embargo, el enfoque HEVC implica un complejo proceso de señalización y obtenció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 utilizar 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 libre, 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 libre; 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 determinar el marcado entre "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo"; una descripción del subconjunto de listas de imágenes de referencia que posibilite la capacidad de especificar una lista de imágenes de referencia mediante la eliminación de imágenes de referencia de la cola de una determinada descripción de lista de imágenes de referencia anterior; el modo de copia de listas de imágenes de referencia posibilitado 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 para 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 POC en los encabezados de porción. Esto no es eficaz.
Con el fin de abordar los problemas enumerados anteriormente, en la presente memoria se divulgan las siguientes soluciones, cada una de las cuales puede aplicarse individualmente y algunas de las cuales pueden aplicarse en combinación. 1) El marcado de la imagen 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 la obtención de las dos listas de imágenes de referencia se señaliza en función de elementos de sintaxis y estructuras de sintaxis en el SPS , PPS y/o el encabezado de porción. 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 lista de imágenes de referencia pueden señalizarse en SP S y cada una de ellas puede ser referenciada por un índice desde el encabezado de porción. 1b.ii) Cada una de las listas 0 y 1 de imágenes de referencia se puede señalizar directamente en el encabezado de porción. 2) La información para la obtención de las dos listas de imágenes de referencia está señalizada para todos los tipos de porciones, es decir, porciones B (bipredictiva), P (unipredictiva) e I (intra). El término porción se refiere a una colección de unidades de árbol de codificación, tales como una porción en HEVC o el último WD de VVC; también se refiere a alguna otra colección de unidades de árbol de codificación, tales como un mosaico(tile)en HEVC. 3) Las dos listas de imágenes de referencia se generan para todos los tipos de porciones, es decir, porciones B, P e I. 4) Las dos listas de imágenes de referencia se construyen directamente sin utilizar un proceso de inicialización de lista de imágenes de referencia y un proceso de modificación de lista de imágenes de referencia. 5) En cada una de las dos listas de imágenes de referencia, las imágenes de referencia que se utilizan para la interpredicción de la imagen actual sólo pueden ser referenciadas por una serie 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 obtenerse ambos. 6) No se permite que a la imagen a la que hace referencia una entrada inactiva en una lista de imágenes de referencia haga referencia otra entrada en la lista de imágenes de referencia ni cualquier entrada en la otra lista de imágenes de referencia. 7) Las imágenes de referencia a largo plazo sólo se identifican mediante cierto número de LSB de POC, donde este número es mayor que el número de LSB de POC señalizados en los encabezados de porción para la obtención de valores POC, y este número se indica en el SPS . 8) Las estructuras de lista de imágenes de referencia se señalizan sólo en encabezados de porción, 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 están representados por números de bits que son diferentes del número de bits utilizado para representar los<l>S<b>de POC señalizados en encabezados de porción para la obtención de valores POC, y el número de bits utilizado para representar los LSB de POC para identificar imágenes de referencia a corto plazo e imágenes de referencia a largo plazo es diferente. 9) Las estructuras de lista de imágenes de referencia se señalizan sólo en encabezados de porción, 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 están representados por un número de bits que es diferente del número de bits utilizado para representar los<l>S<b>de POC señalizados en encabezados de porción para la obtención de valores POC.
Se proporciona una primera realización de la presente divulgación. La descripción es relativa al último WD de VVC. En esta realización, se señalizan en el SP S dos conjuntos de estructuras de lista de imágenes de referencia, uno para la lista 0 de imágenes de referencia y otro para la lista 1 de imágenes de referencia.
Se proporcionan definiciones de algunas de las expresiones utilizadas 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, por sus siglas en inglés) 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 utiliza para la interpredicción de una porción 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 porción 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 utilizan para la interpredicción de la imagen asociada o cualquier imagen que siga a la imagen asociada en orden de decodificación. Para decodificar los datos de una porción P, sólo se utiliza la lista 0 de imágenes de referencia para la interpredicción. Para decodificar los datos de una porción B, se utilizan ambas listas de imágenes de referencia para la interpredicción. Para decodificar los datos de una porción I, no se utiliza ninguna lista de imágenes de referencia para la interpredicción. Imagen de referencia a largo plazo (LTRP, por sus siglas en inglés): una imagen que se marca como "utilizada para referencia a largo plazo". Imagen de referencia a corto plazo (STRP , por sus siglas en inglés): una imagen que se marca como "utilizada para referencia a corto plazo".
Las expresiones "utilizada para referencia a corto plazo", "utilizada para referencia a largo plazo" o "no utilizada para referencia" se definen en VVC en la sección 8.3.3 Proceso de decodificación para el marcado de imágenes de referencia, se definen en HEVC en la sección 8.3.2 Proceso de decodificación para el conjunto de imágenes de referencia y se definen en AVC en la sección 7.4.3.3 Semántica de marcado de imágenes de referencia decodificadas. Tal como se utilizan en la presente memoria, las expresiones tienen el mismo significado.
A continuación se proporcionan la sintaxis y la semántica pertinentes para la primera realización.
Sintaxis de encabezado de unidad NAL.
Sintaxis de Carga Útil de Secuencia de Bytes sin Procesar (RBSP , por sus siglas en inglés) de conjunto de parámetros de secuencia.
Sintaxis de RBSP de conjunto de parámetros de imagen.
Sintaxis de encabezado de porción.
Sintaxis de estructura de lista de imágenes de referencia.
Semántica de encabezado 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 minus 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 como sigue: TemporalId = nuh_temporal_id_plus1 - 1. Cuando nal_unit_type es igual a IRAP_NUT, la porción codificada 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_N UT, 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 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 continente, ya que todos los conjuntos de parámetros de imagen (PPS, por sus siglas en inglés) se incluyen en el comienzo de un flujo de bits, en donde la primera imagen codificada tiene TemporalId igual a 0. Cuando nal_unit_type es igual a PR EF IX _SE I_N U T o SU FFIX_SEI_N U T, TemporalId es mayor o igual que TemporalId de la unidad de acceso continente, 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<s>E<i>. nuh_reserved_zero_7bits será igual a '0000000'. Otros valores de nuh_reserved_zero_7bits serán especificados en el futuro por ITU-T | ISO/IEC. Los decodificadores deberán ignorar (es decir, eliminar del flujo de bits y descartar) las unidades NAL con valores de nuh_reserved_zero_7bits no iguales a '0000000'.
Semántica de RBSP de conjunto de parámetros de secuencia.
Un log2_max_pic_order_ cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se utiliza en el proceso de decodificación para el recuento de orden de imágenes 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, inclusive. sps _max_dec_pic_buffering _minus1 plus 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, 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 usan 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, inclusive. Cuando no está presente, el valor de additional_lt_poc_lsb se deduce 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, 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 ) señalizada directamente en los encabezados de porción de una imagen actual.
Semántica de RBSP de conjunto de parámetros de imagen.
Un num_ref_idx_default_active_minus1 [ i ] plus 1, cuando i es igual a 0, especifica el valor deducido de la variable NumRefIdxActive[ 0 ] para las porciones P o B con num_ref_idx_active_override_flag igual a 0 y, cuando i es igual a 1, especifica el valor deducido de NumRefIdxActive[ 1 ] para las porciones 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, inclusive.
Semántica de encabezado de porción.
Cuando estén presentes, el valor de cada uno de los elementos de sintaxis de encabezado de porción slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todos los encabezados de porción de una imagen codificada.... slice_type especifica el tipo de codificación de la porción de acuerdo con 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 imágenes 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, inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se deduce que slice_pic_order_cnt_lsb es igual a 0. ref_pic_list_sps_flag[ i ] igual a 1 especifica que la lista i de imágenes de referencia de la imagen actual se obtiene sobre la base de una de las estructuras de sintaxis ref_piclist_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i en el SP S activo. ref_pic_list_sps _flag[ i ] igual a 0 especifica que la lista i de imágenes de referencia de la imagen actual se obtiene sobre la base de la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i que se incluye directamente en los encabezados de porción 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 que se incluye en el SP S activo, de la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i que se utiliza para la obtención de la lista i de imágenes de referencia de la imagen actual. El elemento de sintaxis ref_pic_list_idx[ i ] está representado por Ceil( Log2( num ref_pic_lists_in_sps[ i ] ) ) bits. Cuando no está presente, el valor de ref_pic_list_idx[ i ] se deduce que es igual a 0. El valor de ref_pic_list _idx[ i ] debe estar en el intervalo de 0 a num ref_pic_lists_in _sps[ i ] - 1, 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 porciones P y B y que el elemento de sintaxis num_ref_idx _active_minus1 [ 1 ] está presente para porciones 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 de 0 a 14, inclusive.
El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista i de imágenes de referencia que se utiliza para decodificar la porción. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se utiliza ningún índice de referencia para la lista i de imágenes de referencia para decodificar la porción. Para i igual a 0 o 1, cuando la porción actual es una porción B y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1 [ i ] 1. Cuando la porción actual es una porción P y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ 0 ] es igual a num _ref_idx_default_active_minus1 [ 0 ] 1. Cuando la porción actual es una porción P, se deduce que NumRefIdxActive[ 1 ] es igual a 0. Cuando la porción actual es una porción I, se deduce que tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] son iguales a 0.
Como alternativa, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: sea rplsIdx1 establecido igual a ref_pic_list _sps _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_piclist_struct( listIdx, rplsIdx, ltrpFlag ) está presente en un SP S o en un encabezado de porción. Dependiendo de si la estructura de sintaxis está incluida en un encabezado de porción o en un SPS , se aplica lo siguiente: si está presente en un encabezado de porción, la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) especifica la lista listIdx de imágenes de referencia de la imagen actual (la imagen que contiene la porción). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) especifica un candidato para la lista listIdx de imágenes de referencia, y la expresión "la imagen actual" en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tenga una o más porciones que contengan ref_pic_list_idx[ listIdx ] igual a un índice en la lista de las estructuras de sintaxis ref_piclist_struct( listIdx, rplsIdx, ltrpFlag ) incluidas en el SPS , y 2) esté en una CVS que tenga el SP S como SP S activo. num _strp_entries[ listIdx ][ rplsIdx ] especifica el número de entradas STR P en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ). num _ltrp_entries[ listIdx ][ rplsIdx ] especifica el número de entradas LTRP en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ). Cuando no está presente, se deduce que el valor de num _ltrp_entries[ listIdx ][ rplsIdx ] es igual a 0. La variable NumEntriesInList[ listIdx ][ rplsIdx ] se obtiene 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, inclusive. lt_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] igual a 1 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) es una entrada LTRP.
lt_ref_pic_flag[ listIdx ][ rplsldx ][ i ] igual a 0 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) es una entrada STRP . Cuando no está presente, se deduce que el valor de lt_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] es igual a 0. Es un requisito de conformidad de 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, inclusive, sea igual a num_ltrp_entries[ listIdx ][ rplsIdx ]. delta_poc_st[ listIdx ][ rplsIdx ][ i ], cuando la i-ésima entrada es la primera entrada STR P en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imágenes 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 imágenes de las imágenes a las que hacen referencia la i-ésima entrada y la entrada STR P 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, inclusive. poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxLtPicOrderCntLsb de la imagen a la que hace referencia la i-ésima entrada en la estructura de sintaxis ref_piclist_struct( listIdx, rplsIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] es Log2( MaxLtPicOrderCntLsb ) bits.
Se expone el proceso 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 posteriormente. Los procesos expuestos posteriormente especifican los siguientes procesos de decodificación utilizando elementos de sintaxis en la capa de encabezado de porción y superiores. Se obtienen variables y funciones relacionadas con el recuento de orden de imágenes. Es necesario invocar esto sólo para la primera porción de una imagen. Al comienzo del proceso de decodificación para cada porción de una imagen no-IRAP, se invoca el proceso de decodificación para la construcción de listas de imágenes de referencia para la obtenció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 utilizadas para referencia" o "utilizadas para referencia a largo plazo". Es necesario invocar esto sólo para la primera porción de una imagen. Se invocan los procesos de decodificación para codificar unidades de árbol, cambiar la escala, transformar, filtrar en bucle, etc. Después de que se hayan decodificado todas las porciones de la imagen actual, la imagen decodificada actual se marca como "utilizada para referencia a corto plazo".
Se expone 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 de RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis de RBSP de la unidad NAL y, a continuación, analiza la estructura de sintaxis de RBSP .
Se expone el proceso de decodificación de porciones, incluido el proceso de decodificación para el recuento de orden de imágenes. La salida de este proceso es PicOrderCntVal, el recuento de orden de imágenes de la imagen actual. Los recuentos de orden de imágenes se utilizan para identificar imágenes, para obtener parámetros de movimiento en modo de fusión y la 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 imágenes, denominada PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se obtienen de la siguiente manera: sea prevTid0Pic la imagen anterior en orden de decodificación que tenga TemporalId igual a 0. La variable prevPicOrderCntLsb se establece como igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece como igual a PicOrderCntMsb de prevTid0Pic.
La variable PicOrderCntMsb de la imagen actual se obtiene de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece como igual a 0. De lo contrario, PicOrderCntMsb se obtiene 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 obtiene 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 deduce que es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se establecen ambos como iguales a 0. El valor de PicOrderCntVal estará en el intervalo de -231 a 231 - 1, 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 ) utilizados en el proceso de decodificación que no estén en el intervalo de -215 a 215 - 1, inclusive. Sea X la imagen actual y sean Y y Z otras dos imágenes en la misma secuencia de vídeo codificada (CVS, por sus siglas en inglés), Y y Z se considera que están en la misma dirección de orden de salida de X cuando DiffPicOrderCnt( X, Y ) y DiffPicOrderCnt( X, Z ) son ambos positivos o ambos negativos.
Se expone 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 porción de una imagen no-IRAP. Las imágenes de referencia se direccionan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar una porción I, no se utiliza ninguna lista de imágenes de referencia en la decodificación de los datos de la porción. Al decodificar una porción P, sólo se utiliza la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos de la porción. Al decodificar una porción B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se utilizan en la decodificación de los datos de la porción. Al comienzo del proceso de decodificación para cada porción de una imagen no-IRAP, se obtienen las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos de la porción. Para una porción I de una imagen no-IRAP que no sea la primera porción de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se obtienen con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Para una porción P que no sea la primera porción de una imagen, RefPicList[ 1 ] se obtiene con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
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 otras 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, inclusive, se conoce como una entrada STR P si lt_ref_pic_flag[ i ][ RplsIdx[ i ] ][ j ] es igual a 0, y como una entrada LTRP de lo contrario. Es posible que a una imagen en particular hagan referencia tanto una entrada en RefPicList[ 0 ] como una entrada en RefPicList[ 1 ]. También es posible que a una imagen en particular hagan referencia más de una entrada en RefPicList[ 0 ] o 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 utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en 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 utilizan para la interpredicción de la imagen actual, pero se utilizan para la interpredicción de una o más imágenes que siguen a la imagen actual en orden de decodificación. Hay una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que son 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 sea igual a "ninguna imagen de referencia" debe ignorarse. Se debe deducir una pérdida de imagen no intencionada para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que sea igual a "ninguna imagen de referencia".
Es un requisito de conformidad de 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 haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica 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 STR P en RefPicList[ 0 ] o RefPicList[ 1 ] de una porción de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] de la misma porción o de una porción diferente de la misma imagen no se referirán a la misma imagen. A la imagen actual en sí misma no hará referencia 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 PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de 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 todas las porciones 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 decodificar un encabezado de porción y el proceso de decodificación para la construcción de listas de imágenes de referencia para la porción, pero antes de la decodificación de los datos de la porción. Este proceso da como resultado que una o más imágenes de referencia en el DPB se marquen como "no utilizadas para referencia" o "utilizadas para referencia a largo plazo". Una imagen decodificada en el DPB puede marcarse como "no utilizada para referencia", "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo", pero sólo una de estas tres en cualquier momento dado durante la operación del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando corresponda. Cuando se hace referencia a una imagen como marcada como "utilizada para referencia", esto se refiere colectivamente a que la imagen está marcada como "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo" (pero no ambas). Cuando la imagen actual es una imagen IRAP, todas las imágenes de referencia actualmente presentes en el DPB (si las hay) se marcan como "no utilizadas para referencia". Las STR P se identifican por sus valores PicOrderCntVal. Las LTRP se identifican mediante los Log2( MaxLtPicOrderCntLsb ) LSB de sus valores PicOrderCntVal. Se aplica lo siguiente: para cada entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ], cuando la imagen a la que se hace referencia es una STRP , la imagen se marca como "utilizada para referencia a largo plazo". Cada imagen de referencia en el DPB a la que no haga referencia ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no utilizada para referencia".
Se proporciona una descripción detallada de la segunda realización de la divulgación. Esta sección documenta una segunda realización de la divulgación como se describió anteriormente. La descripción es relativa al último WD de VVC. En esta realización, se señaliza en el SP S un conjunto de estructuras de lista de imágenes de referencia, compartido por la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia.
Sintaxis de RBSP de conjunto de parámetros de secuencia.
ü __________________________________
Sintaxis de RBSP de conjunto de parámetros de imagen.
_______________________________________________________
Sintaxis de encabezado de porción.
_______________________________________________________________________________________________________ Sintaxis de estructura de lista de imágenes de referencia.
___________________________________________________________________________________________________________________ Se expone la semántica del encabezado de unidad NAL.
Semántica de RBSP de conjunto de parámetros de secuencia.
Un log2_max_pic_order_ cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se utiliza en el proceso de decodificación para el recuento de orden de imágenes 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, inclusive. sps_max_dec_pic_buffering_minus1 plus 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, 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 SPS . El valor de num_ref_pic_lists_in_sps estará en el intervalo de 0 a 128, inclusive. Un decodificador debe asignar memoria para un número total de num_short_term_ref_pic_sets 2 estructuras de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ), ya que hay dos estructuras de sintaxis ref_pic list_struct( rplsIdx, ltrpFlag ) directamente señalizadas en los encabezados de porción de una imagen actual. 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 usan 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 utiliza 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_1sb )). El valor de additional_lt_poc_1sb estará en el intervalo de 0 a 32 - log2_max_pic_order _cnt_lsb_minus4 - 4, inclusive. Cuando no está presente, se deduce que el valor de additional _lt_poc_lsb es igual a 0.
Se expone la semántica de RBSP del conjunto de parámetros de imagen.
Semántica de encabezado de porción.
Cuando estén presentes, el valor de cada uno de los elementos de sintaxis de encabezado de porción slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todos los encabezados de porción de una imagen codificada. slice_type especifica el tipo de codificación de la porción de acuerdo con 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 imágenes 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, inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se deduce que slice_pic_order_cnt_lsb es igual a 0. ref_pic_list_sps_flag[ i ] igual a 1 especifica que la lista i de imágenes de referencia de la imagen actual se obtiene sobre la base de una de las estructuras de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) en el SP S activo. ref_pic_list _sps_flag[ i ] igual a 0 especifica que la lista i de imágenes de referencia de la imagen actual se obtiene sobre la base de la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) que se incluye directamente en los encabezados de porción 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 las estructuras de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) que se incluyen en el SP S activo, de la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) que se utiliza para la obtención de la lista i de imágenes de referencia de la imagen actual. El elemento de sintaxis ref_pic list_idx[ i ] está representado por Ceil( Log2( num _ref_pic_lists_in_sps ) ) bits. Cuando no está presente, se deduce que el valor de ref_pic_list_idx[ i ] 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 -1, 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 porciones P y B y que el elemento de sintaxis num_ref_idx_active_minus1 [ 1 ] está presente para porciones 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 de 0 a 14, inclusive. El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista i de imágenes de referencia que se utiliza para decodificar la porción. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se utiliza ningún índice de referencia para la lista i de imágenes de referencia para decodificar la porción. Para i igual a 0 o 1, cuando la porción actual es una porción B y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1 [ i ] 1. Cuando la porción actual es una porción P y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ 0 ] es igual a num_ref_idx_default_active_ minus1 [ 0 ] 1. Cuando la porción actual es una porción P, se deduce que NumRefIdxActive[ 1 ] es igual a 0. Cuando la porción actual es una porción I, se deduce que tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] son iguales a 0.
Como alternativa, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: sea rplsldxl establecido igual a ref_pic_list_sps_flag[ i ] ? ref_picjist_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 ) está presente en un SP S o en un encabezado de porción. Dependiendo de si la estructura de sintaxis está incluida en un encabezado de porción o en un SP S , se aplica lo siguiente: si está presente en un encabezado de porción, 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 la porción). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) especifica una lista de imágenes de referencia candidata, y la expresión "la imagen actual" en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tenga una o más porciones que contengan 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 tenga el SP S como SP S activo. num_strp_entries[ rplsIdx ] especifica el número de entradas STR P 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 ref_pic_list_struct( rplsIdx, ltrpFlag ). Cuando no está presente, se deduce que el valor de num _ltrp_entries[ rplsIdx ] es igual a 0.
La variable NumEntriesInList[ rplsIdx ] se obtiene 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, inclusive. lt_ref_pic_flag[ rplsIdx ][ i ] igual a 1 especifica que la i-ésima entrada en la estructura de 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 deduce que el valor de lt_ref_pic_flag[ rplsIdx ][ i ] es igual a 0. Es un requisito de conformidad de 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, 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 imágenes 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 imágenes de las imágenes a las que hacen referencia la i-ésima entrada y la entrada STR P anterior en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ). El valor de delta_poc_st[ rplsIdx ][ i ] estará en el intervalo de 0 a 215 - 1, inclusive. poc_lsb_lt[ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxLtPicOrderCntLsb de la imagen a la que hace referencia 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 divulgació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 divulgación.
Se proporciona el proceso de decodificación de porciones.
Proceso de decodificación para el recuento de orden de imágenes.
Se aplica el proceso de decodificación para el recuento de orden de imágenes especificado como parte de la descripción detallada de la primera realización de esta divulgación.
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 porción de una imagen no-IRAP. Las imágenes de referencia se direccionan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar una porción I, no se utiliza ninguna lista de imágenes de referencia en la decodificación de los datos de la porción. Al decodificar una porción P, sólo se utiliza la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos de la porción. Al decodificar una porción B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se utilizan en la decodificación de los datos de la porción. Al comienzo del proceso de decodificación para cada porción de una imagen no-IRAP, se obtienen las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos de la porción. Para una porción I de una imagen no-IRAP que no sea la primera porción de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se obtienen con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Para una porción P que no sea la primera porción de una imagen, RefPicList[ 1 ] se obtiene con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación.
Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
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 otras entradas en RefPicList[ i ] se denominan entradas inactivas en RefPicList[ i ]. Cada entrada RefPicList[ i ][ j ] para j en el intervalo de 0 a NumEntriesInList[ RplsIdx[ i ] ] - 1, inclusive, se conoce como una entrada STR P si lt_ref_pic_flag[ RplsIdx[ i ] ] [ j ] es igual a 0, y como una entrada LTRP de lo contrario. Es posible que a una imagen en particular hagan referencia tanto una entrada en RefPicList[ 0 ] como una entrada en RefPicList[ 1]. También es posible que a una imagen en particular hagan referencia más de una entrada en RefPicList[ 0 ] o 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 utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en 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 utilizan para la interpredicción de la imagen actual, pero se utilizan para la interpredicción de una o más imágenes que siguen a la imagen actual en orden de decodificación. Hay una o más entradas en RefPicList[ 0] o RefPicList[ 1 ] que son 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 sea igual a "ninguna imagen de referencia" debe ignorarse. Se debe deducir una pérdida de imagen no intencionada para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que sea igual a "ninguna imagen de referencia".
Es un requisito de conformidad de 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 haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el d P b y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica 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 STR P en RefPicList[ 0 ] o RefPicList[ 1 ] de una porción de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] de la misma porción o de una porción diferente de la misma imagen no se referirán a la misma imagen. A la imagen actual en sí misma no hará referencia 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 PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de 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 todas las porciones de una imagen.
Se expone el proceso de decodificación para el marcado de imágenes de referencia.
Este proceso se invoca una vez por imagen, después de decodificar un encabezado de porción y el proceso de decodificación para la construcción de listas de imágenes de referencia para la porción, pero antes de la decodificación de los datos de la porción. Este proceso da como resultado que una o más imágenes de referencia en el DPB se marquen como "no utilizadas para referencia" o "utilizadas para referencia a largo plazo". Una imagen decodificada en el DPB puede marcarse como "no utilizada para referencia", "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo", pero sólo una de estas tres en cualquier momento dado durante la operación del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando corresponda. Cuando se hace referencia a una imagen como marcada como "utilizada para referencia", esto se refiere colectivamente a que la imagen está marcada como "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo" (pero no ambas). Cuando la imagen actual es una imagen IRAP, todas las imágenes de referencia actualmente presentes en el DPB (si las hay) se marcan como "no utilizadas para referencia". Las STR P se identifican por sus valores PicOrderCntVal. Las LTRP se identifican mediante los Log2( MaxLtPicOrderCntLsb ) LSB de sus valores PicOrderCntVal.
Se aplica lo siguiente: para cada entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ], cuando la imagen a la que se hace referencia es una STRP , la imagen se marca como "utilizada para referencia a largo plazo". Cada imagen de referencia en el DPB a la que no haga referencia ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no utilizada para referencia".
La Figura 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 puede realizarse 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 realiza para mejorar el proceso de decodificación (por ejemplo, hacer el proceso de decodificación más eficaz, más rápido, etc., que los procesos de decodificación convencionales). Por lo tanto, como cuestión práctica, se puede mejorar el rendimiento de un códec, lo que conduce a una mejor experiencia de usuario.
En el bloque 502, se analiza un encabezado de porción de una porción actual representada en el flujo de bits de vídeo codificado. En una realización, el encabezado de porción comprende una estructura de lista de imágenes de referencia. 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 una lista de imágenes de referencia de la porción actual sobre la base de la estructura de lista de imágenes de referencia. En una realización, la lista de imágenes de referencia se denomina RefPictList[0] o RefPictList[1].
En el bloque 506, se obtiene al menos un bloque reconstruido de la porción actual sobre la base de la lista de imágenes de referencia. En una realización, el al menos un bloque reconstruido se utiliza para generar una imagen mostrada 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 utilizadas para la interpredicción. En una realización, la interpredicción es para una porción P o para una porción B.
En una realización, el encabezado de porción contiene un señalizador de conjunto de parámetros de secuencia (SPS) de lista de imágenes de referencia denominado ref_pic_list_sps_flag[ i ]. Cuando este señalizador es igual a 1, la iésima lista de imágenes de referencia, es decir, RefPictList[ i ], no se señaliza directamente en el encabezado de porción, sino que se hace referencia a la misma desde el SPS . Cuando este señalizador es igual a 0, la i-ésima lista de imágenes de referencia, es decir, RefPictList[ i ], se señaliza directamente en el encabezado de porción y no se hace referencia a la misma desde el SPS . En una realización, el encabezado de porción contiene un señalizador de anulación activa de índice de referencia numérica designado mediante num_ref_idx_active_override _flag. Cuando este señalizador es igual a 1, el número de entradas activas en cada lista de imágenes de referencia es el valor por defecto señalizado en el PPS . Cuando este señalizador es igual a 0, el número de entradas activas en cada lista de imágenes de referencia es el señalizado explícitamente en el encabezado de porción.
En una realización, la lista de imágenes de referencia se denomina 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 basadas en la primera y la segunda realizaciones.
Esta sección proporciona breves resúmenes de otras realizaciones alternativas de la divulgación. Los resúmenes son relativos a la descripción de la primera realización. Sin embargo, el concepto básico de la divulgación para las siguientes realizaciones alternativas también es aplicable para la implementación sobre la divulgación para la segunda realización. Tal implementación es con el mismo espíritu de cómo los aspectos se implementan sobre la primera realización.
Semántica del delta POC de las entradas de imágenes de referencia a corto plazo.
En una realización alternativa de la divulgación, la semántica del elemento de sintaxis que especifica el delta POC 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 utilizada en la presente memoria es relativa al presente borrador estándar (por ejemplo, el borrador de trabajo de VVC) donde sólo se muestra o describe el delta. El texto eliminado se indica mediante tachadura y cualquier texto agregado está resaltado.
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 imágenes de la imagen actual y la imagen a la que hace referencia la i-ésima entrada. El valor de delta_poc_st[ listIdx ][ rplsIdx ][ i ] estará en el intervalo de -215 a 215 -1, inclusive.
Es necesario actualizar la ecuación en el proceso de construcción de la lista de imágenes de referencia. Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Señalización de entradas de imágenes de referencia a largo plazo.
En una realización alternativa de la divulgació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 la obtención del índice de entrada correspondiente en la lista de imágenes de referencia final.
Sintaxis de RBSP de conjunto de parámetros de secuencia.
______________________________________________________________ Sintaxis de encabezado de porción.
_______________________________________________________________________________________ Sintaxis de estructura de lista de imágenes de referencia.
__________________________________________________________________ Sintaxis de estructura de lista de imágenes de referencia a largo plazo.
_____________________________________________________________________________________________________
Semántica de RBSP de conjunto de parámetros de secuencia.
Un num _ref_p ic jistsjt_in_sps especifica el número de estructuras de sintaxis ref_pic_list_lt_struct( ItRpIsIdx ) incluidas en el SPS . El valor de num_ref_pic_lists_lt_in_sps estará en el intervalo de 0 a 64, inclusive. Cuando no está presente, se deduce que el valor de num ref_pic_lists_lt_in_sps es igual a 0.
Semántica de encabezado de porción.
Un 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 SP S activo que se utiliza para la obtención de la lista i de imágenes de referencia de la imagen actual. El elemento de sintaxis ref_pic_list_lt_idx[ i ] está representado 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 a num_ref_pic_lists_lt_in_sps - 1, inclusive.
Semántica de estructura de lista de imágenes de referencia.
La estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) está presente en un SP S o en un encabezado de porción. Dependiendo de si la estructura de sintaxis está incluida en un encabezado de porción o en un SP S , se aplica lo siguiente: si está presente en un encabezado de porción, la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) especifica la lista listIdx de imágenes de referencia a corto plazo de la imagen actual (la imagen que contiene la porción). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct( listldx, rplsIdx ) especifica un candidato para la lista listIdx de imágenes de referencia a corto plazo, y la expresión "la imagen actual" en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tenga una o más porciones que contengan 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 s Ps , y 2) esté en una CVS que tenga el SP S como S P S activo. num_strp_entries[ listIdx ][ rplsIdx ] especifica el número de entradas STR P 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 STR P en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ), especifica la diferencia entre los valores de recuento de orden de imágenes 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 STR P en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ), especifica la diferencia entre los valores de recuento de orden de imágenes de las imágenes a las que hacen referencia la i-ésima entrada y la entrada STR P anterior en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ). El valor de delta_poc_st[ listIdx ][ rplsIdx ][ i ] estará en el intervalo de -215 a 215 - 1, 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 ) está presente en un SP S o en un encabezado de porción. Dependiendo de si la estructura de sintaxis está incluida en un encabezado de porción o en un SP S , se aplica lo siguiente: si está presente en un encabezado de porción, 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 la porción). 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 la expresión "la imagen actual" en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tenga una o más porciones que contengan 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 tenga el SP S como SP S 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 imágenes MaxLtPicOrderCntLsb de la imagen a la que hace referencia la iésima entrada en 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 de 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 la construcción de listas de imágenes de referencia.
Este proceso se invoca al principio del proceso de decodificación para cada porción de una imagen no-IRAP. Las imágenes de referencia se direccionan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar una porción I, no se utiliza ninguna lista de imágenes de referencia en la decodificación de los datos de la porción. Al decodificar una porción P, sólo se utiliza la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos de la porción. Al decodificar una porción B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se utilizan en la decodificación de los datos de la porción. Al comienzo del proceso de decodificación para cada porción de una imagen no-IRAP, se obtienen las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos de la porción. Para una porción I de una imagen no-IRAP que no sea la primera porción de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se obtienen con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Para una porción P que no sea la primera porción de una imagen, RefPicList[ 1 ] se obtiene con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
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 otras 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, inclusive, se conoce como una entrada STR P si lt_ref_pic_flag[ i ][ RplsIdx[ i ] ] [ j ] es igual a 0, y como una entrada LTRP de lo contrario. Es posible que a una imagen en particular hagan referencia tanto una entrada en RefPicList[ 0] como una entrada en RefPicList[ 1 ]. También es posible que a una imagen en particular hagan referencia más de una entrada en RefPicList[ 0 ] o 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 utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en 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 utilizan para la interpredicción de la imagen actual, pero se utilizan para la interpredicción de una o más imágenes que siguen a la imagen actual en orden de decodificación. Hay una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que son 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 sea igual a "ninguna imagen de referencia" debe ignorarse. Se debe deducir una pérdida de imagen no intencionada para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que sea igual a "ninguna imagen de referencia".
Es un requisito de conformidad de 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 haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica 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 STR P en RefPicList[ 0 ] o RefPicList[ 1 ] de una porción de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] de la misma porción o de una porción diferente de la misma imagen no se referirán a la misma imagen. A la imagen actual en sí misma no hará referencia 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 PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de 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 todas las porciones de una imagen.
Se expone la señalización del número de entradas de imágenes de referencia a corto plazo.
En una realización alternativa de la divulgació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 utilizando ue(v). Impone implícitamente una restricción tal que cada lista de imágenes de referencia contendrá al menos una imagen de referencia a corto plazo. Para acomodar esta idea se necesitan algunos cambios en relación con la primera realización.
Para la señalización de listas de imágenes de referencia en encabezados de porción, sólo se señaliza la lista de imágenes de referencia necesaria de acuerdo con el tipo de porción, es decir, una lista de imágenes de referencia (es decir, la lista 0 de imágenes de referencia) para las porciones 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 las porciones B. La sintaxis del encabezado de porción se cambia de la siguiente manera:
___________________________________________________________________________________________________________
Aplicando el cambio anterior en el encabezado de porción (es decir, la lista 0 de imágenes de referencia para las porciones I o P; la imagen 0 de referencia y la imagen 1 de referencia para las porciones B), se evitaría el esquema del problema en el que para una porción P sólo hay una imagen de referencia a corto plazo. Sin embargo, no se puede señalizar una imagen de referencia a corto plazo duplicada en la lista 0 de imágenes de referencia y en la lista 1 de imágenes de referencia, cuando la entrada en 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 debe ser igual a 0. La semántica de num_strp_entries_minus1 [ listIdx ][ rplsIdx ] se cambia de la siguiente manera: num_strp_entries_minus1[ listIdx ][ rplsIdx ] plus 1 especifica el número de entradas STR P en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ). La variable NumEntriesInList[ listIdx ][ rplsIdx ] se obtiene de la siguiente manera: NumRefPicEntriesInRp1[ listIdx ][ rplsIdx ] = num_strp_entries_minus1[ listIdx ][ rplsIdx] 1 num_ltrp_entries[ listIdx ][ rplsIdx ]. El valor de NumRefPicEntries[ listIdx ][ rplsIdx ] estará en el intervalo de 1 a sps_max_dec_pic_buffering_minus1, inclusive.
Permitir la inclusión de la imagen actual en listas de imágenes de referencia.
En una realización alternativa de la divulgación, se permite incluir la imagen actual en sus listas de imágenes de referencia. Para admitir esta característica, no se requiere ningún cambio de sintaxis y semántica en relación con esas descripciones en la primera y la segunda realizaciones. Sin embargo, las restricciones de conformidad de flujo de bits que se describen en el proceso de decodificación para la construcción de listas de imágenes de referencia tendrían que modificarse de la siguiente manera: es un requisito de conformidad de 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 haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el d P b y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica 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 STR P en RefPicList[ 0 ] o RefPicList[ 1 ] de una porción de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] de la misma porción o de una porción diferente de la misma imagen no se referirán a la misma imagen. Cuando una entrada en RefPicList[ i ] haga referencia a la imagen actual, para i igual a 0 o 1, el índice de entrada será menor que NumRefIdxActive[ i ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de RefPicList[ 1 ]. Si la imagen actual no se incluye en 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 todas las porciones 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 divulgación, se permite que el número de bits utilizados 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 admitir esta característica, se necesitan los siguientes cambios:
Un additional_lt_poc_lsb[ i ] especifica el valor de la variable MaxLtPicOrderCntLsb[ i ] que se utiliza en el proceso de decodificación para la lista listIdx de imágenes de referencia 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, inclusive. Cuando no está presente, se deduce que el valor de additional_lt_poc_lsb[ i ] es igual a 0.
Un poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxLtPicOrderCntLsb[ listIdx ] de la imagen a la que hace referencia 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 RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Utilización del mismo ref_pic_list_sps_flag para las listas 0 y 1 de imágenes de referencia.
En una realización alternativa de la divulgación, en lugar de utilizar dos señalizadores para indicar si la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia se obtienen sobre la base de estructuras de sintaxis ref_pic_list_struct( ) en el SPS activo, se utiliza un señalizador para ambas listas de imágenes de referencia. Tal alternativa restringe que, bien ambas listas de imágenes de referencia se obtengan sobre la base de ref_pic_list_struct( ) en el SP S activo, bien se obtengan sobre la base de estructuras de sintaxis ref_pic_list_struct( ) que se incluyen directamente en los encabezados de porción de la imagen actual. Para admitir esta característica, se necesitan los siguientes cambios:
Un ref_pic_list_sps_flag igual a 1 especifica que las listas de imágenes de referencia de la imagen actual se obtienen sobre la base de las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) en el SP S activo. ref_pic_list_sps_flag igual a 0 especifica que las listas de imágenes de referencia de la imagen actual se obtienen sobre la base de las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) que se incluyen directamente en los encabezados de porción de la imagen actual. Cuando num ref_pic_lists in sps[ 0 ] o num ref_pic_lists_in_sps[ 1 ] son iguales 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 RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Señalización del Bit Más Significativo (MSB, por sus siglas en inglés) de delta POC para entradas de imagen de referencia a largo plazo.
En una realización alternativa de la divulgación, en lugar de usar bits adicionales para representar LSB de POC de entradas de imagen de referencia a largo plazo en ref_pic_list_struct( ), se señaliza el ciclo de MSB de POC para diferenciar imágenes de referencia a largo plazo. Cuando se señaliza, la información del ciclo de MSB de POC se señaliza para cada entrada en ref_pic_list_struct( ) que haga referencia a una imagen de referencia a largo plazo. La estructura de sintaxis ref_pic_list_struct( ) no está señalizada en SPS , sino sólo en encabezados de porción. Para admitir esta característica, se necesitan los siguientes cambios:
______________________________________________________________________
La estructura de sintaxis ref_pic_list struct( listIdx, ItrpFlag ) está presente en un encabezado de porción. Cuando está presente en un encabezado de porción, la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ) especifica la lista listIdx de imágenes de referencia de la imagen actual (la imagen que contiene la porción). num_strp_entries[ listIdx ] especifica el número de entradas STR P 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, se deduce que el valor de num _ltrp_entries[ listIdx ][ rplsIdx ] es igual a 0.
La variable NumEntriesInList[ listIdx ] se obtiene 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, 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( listIdx, ltrpFlag ) es una entrada STRP . Cuando no está presente, se deduce que el valor de lt_ref_pic_flag[ listIdx ][ i ] es igual a 0. Es un requisito de conformidad de 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, inclusive, sea igual a num_ltrp_entries[ listIdx ]. delta_poc_st[ listIdx ][ i ], cuando la iésima entrada es la primera entrada STR P en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imágenes 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 imágenes de las imágenes a las que hacen referencia la i-ésima entrada y la entrada STR P 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, inclusive. poc_lsb_lt[ listIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxLtPicOrderCntLsb de la imagen a la que hace referencia 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( MaxPicOrderCntLsb ) bits. delta_poc_msb_present_flag[ listIdx ][ i ] igual a 1 especifica que delta_pocmsb_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 ] sea mayor de 0 y haya más de una imagen de referencia en el DPB en el momento en que se decodifica este encabezado de porción para la que el módulo MaxPicOrderCntLsb de PicOrderCntVal sea igual a poc_lsb_lt[ listIdx ][ i ], delta_poc_msb_present_flag[ listIdx ][ i ] será igual a 1. Cuando no está presente, se deduce que el valor de delta_poc_msb_cycle_lt[ listIdx ][ i ] es igual a 0. delta_pocmsb_cycle_lt[ listIdx ][ i ] se utiliza para determinar el valor de los bits más significativos del valor de recuento de orden de imágenes 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 deduce que es igual a 0. Cambios en el proceso de decodificación para el recuento de orden de imágenes:
Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Como alternativa, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] puede expresarse como delta de delta, de manera que la construcción de listas de imágenes de referencia se puede actualizar de la siguiente manera: las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Es un requisito de conformidad de 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 haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica 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 STR P en RefPicList[ 0 ] o RefPicList[ 1 ] de una porción de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] de la misma porción o de una porción diferente de la misma imagen no se referirán a la misma imagen. A la imagen actual en sí misma no hará referencia 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 PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de 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 todas las porciones de una imagen.
Cada STR P se identifica por su valor PicOrderCntVal. Para cada LTRP, si hace referencia a la misma 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 Log2( MaxPicOrderCntLsb ) l S b de su valor PicOrderCntVal.
Alternativa 1 de señalización de MSB de delta POC 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. De manera similar a la idea de la sección anterior, en lugar de usar bits adicionales para representar LSB de POC de imagen de referencia a largo plazo en ref_pic_list_struct(), se señaliza el ciclo de MSB de POC 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 de POC no se señaliza dentro de ref_piclist_struct( ), en cambio, cuando se necesita información del ciclo de MSB de POC, se señaliza en el encabezado de porción. La estructura de sintaxis ref_pic_list_struct( ) se señaliza en el SP S y en encabezados de porción.
____________________________________________________________________________________________________________
__________________________________________________________________________________________________________________
delta_pocmsb_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 ] sea mayor de 0 y para la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1) haya más de una imagen de referencia en el DPB en el momento en que se decodifica este encabezado de porción para las que el módulo MaxPicOrderCntLsb de PicOrderCntVal sea 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 ref_pic_list_struct( i, rplsIdx, 1 ), delta_poc_msb_present flag[ i ][ j ] será igual a 1. Cuando no está presente, se deduce que el valor de delta_poc_msb_cycle_lt[ i ][ j ] es igual a 0.
delta_poc_msb_cycle _lt[ i ][ j ] se utiliza para determinar el valor de los bits más significativos del valor de recuento de orden de imágenes 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 deduce que es igual a 0.
___________________________________________________________________________________________________________________
delta_pocmsb_present_flag[ i ][ j ] igual a 1 especifica que delta_poc_msb_cycle_lt[ i ][ j ] está presente. delta_pocmsb_present_flag[ i ][ j ] igual a 0 especifica que delta_poc_msb_cycle_lt[ i ][ j ] no está presente. Cuando NumLtrpEntries[ i ] sea mayor de 0 y haya más de una imagen de referencia en el DPB en el momento en que se decodifica este encabezado de porción para las que el módulo MaxPicOrderCntLsb de PicOrderCntVal sea igual a poc_lsb_lt[ i ][ rplsIdx ][ j ], delta_pocmsb_present_flag[ i ][ j ] será igual a 1. Cuando no está presente, se deduce que el valor de delta_poc_msb_cycle_lt[ i ][ j ] es igual a 0. delta_poc_msb_cycle_lt[ i ][ j ] se utiliza para determinar el valor de los bits más significativos del valor de recuento de orden de imágenes de la j-ésima entrada en la estructura de sintaxis ref_pic_list struct( i, rplsIdx, 1). Cuando delta_pocmsb_cycle_lt[ i ][ j ] no está presente, se deduce que es igual a 0. poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxPicOrderCntLsb de la imagen a la que hace referencia 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 imágenes:
Para el diseño 1 de encabezado de porción, las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Como alternativa, para el diseño 1 de encabezado de porción, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] puede expresarse como delta de delta, de manera que la construcción de listas de imágenes de referencia se puede actualizar de la siguiente manera: las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Para el diseño 2 de encabezado de porción, las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Como alternativa, para el diseño 2 de encabezado de porción, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] puede expresarse como delta de delta, de manera que la construcción de listas de imágenes de referencia se puede actualizar de la siguiente manera: las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Es un requisito de conformidad de 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 haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica 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 STR P en RefPicList[ 0 ] o RefPicList[ 1 ] de una porción de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] de la misma porción o de una porción diferente de la misma imagen no se referirán a la misma imagen. A la imagen actual en sí misma no hará referencia 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 PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de 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 todas las porciones de una imagen.
Cada STR P se identifica por su valor PicOrderCntVal. Para cada LTRP, si hace referencia a la misma 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 sus Log2( MaxPicOrderCntLsb ) LSB de su valor PicOrderCntVal.
Alternativa 2 de señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo.
En una realización alternativa de la divulgación, la divulgación descrita en la primera realización o la segunda realización se puede combinar con las realizaciones descritas anteriormente y denominadas "Señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo" y "Alternativa 1 de señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo", respectivamente. Los aspectos de las divulgaciones que se han de combinar son la señalización de additional_lt_poc_lsb (es decir, de la primera realización o la segunda realización) e información del ciclo de MSB de POC (es decir, de la realización descrita anteriormente y denominada "Señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo" o "Alternativa 1 de señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo"). Un ejemplo de cómo se puede hacer la combinación, que combina la primera realización y la realización descrita anteriormente y denominada "Alternativa 1 de señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo", se describe de la siguiente manera:
___________________________________________________________________________________________________________
delta_poc_msb_present_flag[ i ][ j ] igual a 1 especifica que delta_pocmsb_cycle_lt[ i ][ j ] está presente. delta_pocmsb_present_flag[ i ][ i ] igual a 0 especifica que delta_poc_msb_cycle_lt[ i ][ j ] no está presente. Cuando NumLtrpEntries[ i ] sea mayor de 0 y para la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1) haya más de una imagen de referencia en el DPB en el momento en que se decodifica este encabezado de porción para las que el módulo MaxPicOrderLtCntLsb de PicOrderCntVal sea 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 ref_pic_list_struct( i, rplsIdx, 1 ), delta_pocmsb_present_flag[ i ][ j ] será igual a 1. Cuando no está presente, se deduce que el valor de delta_poc_msb_cycle_lt[ i ] [ j ] es igual a 0. delta_poc_msb_cycle_lt[ i ][ j ] se utiliza para determinar el valor de los bits más significativos del valor de recuento de orden de imágenes 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 deduce que es igual a 0.
Cambios en el proceso de decodificación para el recuento de orden de imágenes:
Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Como alternativa, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] puede expresarse como delta de delta, de manera que la construcción de listas de imágenes de referencia se puede actualizar de la siguiente manera: las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Es un requisito de conformidad de 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 haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica 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 STR P en RefPicList[ 0 ] o RefPicList[ 1 ] de una porción de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] de la misma porción o de una porción diferente de la misma imagen no se referirán a la misma imagen. A la imagen actual en sí misma no hará referencia 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 PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de 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 todas las porciones de una imagen.
Cada STR P se identifica por su valor PicOrderCntVal. Para cada LTRP, si hace referencia a la misma 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 sus Log2( MaxLtPicOrderCntLsb ) LSB de su valor PicOrderCntVal.
Señalización siempre de listas de imágenes de referencia en encabezados de porción con diferenciación entre imágenes de referencia a corto y largo plazo.
Esta sección describe otra realización alternativa de la divulgación. La descripción es relativa al último WD de VVC (es decir, sólo 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 posteriormente 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 sólo en encabezados de porción. 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 están representados por números de bits que son diferentes del número de bits utilizado para representar los LSB de POC señalizados en encabezados de porción para la obtención de valores de POC. Además, los números de bits utilizados 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.
Sintaxis de encabezado de unidad NAL.
__________________________________
Sintaxis de RBSP de conjunto de parámetros de secuencia.
_________________________________________________
Sintaxis de RBSP de conjunto de parámetros de imagen.
_______________________________________________________
Sintaxis de encabezado de porción.
Sintaxis de estructura de lista de imágenes de referencia.
________________________________________________________
Semántica de encabezado de unidad NAL.
Un forbidden_zero_bit será igual a 0. nal_unit_type especifica el tipo de estructura de datos de 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 minus 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 como sigue: TemporalId = nuh_temporal_id_plus1 - 1.
Cuando nal_unit_type es igual a IRAP_NUT, la porción codificada 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_N UT, 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 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 continente, ya que todos los conjuntos de parámetros de imagen (PPS) se incluyen en el comienzo de un flujo de bits, en donde la primera imagen codificada tiene TemporalId igual a 0. Cuando nal_unit_type es igual a PR EFIX_SE I_N U T o SU FFIX _SEI_N U T, TemporalId es mayor o igual que TemporalId de la unidad de acceso continente, ya que una unidad NAL de información de mejora suplementaria (SEI, por sus siglas en inglés) 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 ITU-T | ISO/IEC. Los decodificadores deberán ignorar (es decir, eliminar del flujo de bits y descartar) las unidades NAL con valores de nuh_reserved_zero_7bits no iguales a '0000000'.
Semántica de RBSP de conjunto de parámetros de secuencia.
Un log2_max_pic_order_cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se utiliza en el proceso de decodificación para el recuento de orden de imágenes de la siguiente manera:
MaxPicOrderCntLsb — 2C°g2_in^ J3Íc_order_cntJsb_minus4 4 )
El valor de log2_max_pic_order_cnt_lsb_minus4 estará en el intervalo de 0 a 12, inclusive. sps _max_dec_pic_buffering_minus1 plus 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, inclusive, donde MaxDpbSize es como se especifica en otro lugar. additional_st_poc_lsb especifica el valor de la variable MaxStPicOrderCntLsb que se utiliza en el proceso de decodificación para las listas de imágenes de referencia de la siguiente manera:
MaxStPicOrderCntL sb = 2* Eg2 jnaxjic jarder_cnt2sbjninus44+ 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, inclusive. 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 usan 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* l°g2jnax_pic_order_cnt2sb_minus44+ additional_st_poc_lsb 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 -additional_st_poc_lsb, inclusive. Cuando no está presente, se deduce que el valor de additional_lt_poc_lsb es igual a 0.
Semántica de RBSP de conjunto de parámetros de imagen.
Un num_ref_idx_default_active_minus1[ i ] plus 1, cuando i es igual a 0, especifica el valor deducido de la variable NumRefIdxActive[ 0 ] para las porciones P o B con num_ref_idx_active_override_flag igual a 0 y, cuando i es igual a 1, especifica el valor deducido de NumRefIdxActive[ 1 ] para las porciones 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, inclusive.
Semántica de encabezado de porción.
Cuando estén presentes, el valor de cada uno de los elementos de sintaxis de encabezado de porción slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todos los encabezados de porción de una imagen codificada. slice_type especifica el tipo de codificación de la porción de acuerdo con la Tabla 7-3.
Tabla 7-3 - Asociación de nombres a slice_type
Cuando nal_unit_type sea 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 imágenes 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, inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se deduce 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 las porciones P y B y que el elemento de sintaxis num_ref_idx_active_minus1[ 1 ] está presente para las porciones 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 NumRefldxActive[ i ] de la siguiente manera:
NumRefIdxActive[ i ] = num_ref_idx_active_mmusl [ i ] 1
El valor de num_ref_idx_active_minus1[ i ] estará en el intervalo de 0 a 14, inclusive. El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista i de imágenes de referencia que se utiliza para decodificar la porción. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se utiliza ningún índice de referencia para la lista i de imágenes de referencia para decodificar la porción. Para i igual a 0 o 1, cuando la porción actual es una porción B y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1[ i ] 1. Cuando la porción actual es una porción P y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ 0 ] es igual a num_ref_idx_default_active_minus1[ 0 ] 1. Cuando la porción actual es una porción P, se deduce que NumRefIdxActive[ 1 ] es igual a 0. Cuando la porción actual es una porción I, se deduce que tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] son iguales a 0. Como alternativa, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: sea rplsIdx1 establecido como igual a ref_pic_list_sps_flag[ i ] ? ref_pic_list_idx[ i ] : num_ref_pic_lists_in_sps[ i ], y sea 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, ltrpFlag ) está presente en un encabezado de porción. Cuando está presente en un encabezado de porción, la estructura de sintaxis ref_pic_list_struct( listldx, ltrpFlag ) especifica la lista listIdx de imágenes de referencia de la imagen actual (la imagen que contiene la porción). num_strp_entries[ listIdx ] especifica el número de entradas STR P 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, se deduce que el valor de num_ltrp_entries[ listIdx ] es igual a 0. La variable NumEntriesInList[ listIdx ] se obtiene de la siguiente manera:
NumEntricsInListf listldx ] = num_strp_cntrics[ listldx ] num_ltrp_cntrics[ listldx ]
El valor de NumEntriesInList[ listIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, inclusive. It_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( listIdx, ltrpFlag ) es una entrada STRP . Cuando no está presente, se deduce que el valor de lt_ref_pic_flag[ listIdx ][ i ] es igual a 0. Es un requisito de conformidad de 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, 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 imágenes MaxStPicOrderCntLsb de la imagen a la que hace referencia 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 imágenes MaxLtPicOrderCntLsb de la imagen a la que hace referencia 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 expone 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 posteriormente. Los procesos expuestos posteriormente especifican los siguientes procesos de decodificación utilizando elementos de sintaxis en la capa de encabezado de porción y superiores: se obtienen variables y funciones en relación con el recuento de orden de imágenes. Es necesario invocar esto sólo para la primera porción de una imagen. Al comienzo del proceso de decodificación para cada porción de una imagen no-IRAP, se invoca el proceso de decodificación para la construcción de listas de imágenes de referencia para la obtenció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 utilizadas para referencia" o "utilizadas para referencia a largo plazo". Es necesario invocar esto sólo para la primera porción de una imagen. Se invocan los procesos de decodificación para codificar unidades de árbol, cambiar la escala, transformar, filtrar en bucle, etc. Después de que se hayan decodificado todas las porciones de la imagen actual, la imagen decodificada actual se marca como "utilizada para referencia a corto plazo".
Proceso de decodificación de unidades 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 de RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis de RBSP de la unidad NAL y, a continuación, analiza la estructura de sintaxis de RBSP .
Proceso de decodificación de porciones.
Proceso de decodificación para el recuento de orden de imágenes.
La salida de este proceso es PicOrderCntVal, el recuento de orden de imágenes de la imagen actual. Los recuentos de orden de imágenes se utilizan para identificar imágenes, para obtener parámetros de movimiento en modo de fusión y la 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 imágenes, denominada PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se obtienen de la siguiente manera: sea prevTid0Pic la imagen anterior en orden de decodificación que tenga TemporalId igual a 0. La variable prevPicOrderCntLsb se establece como igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece como igual a PicOrderCntMsb de prevTid0Pic. La variable PicOrderCntMsb de la imagen actual se obtiene de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece como igual a 0. De lo contrario, PicOrderCntMsb se obtiene de la siguiente manera:
PicOrderCntVal se obtiene de la siguiente manera:
PicOrderCntVal = PicOrderCntMsb slice_pic_order_cnt_lsb
Todas las imágenes IRAP tendrán PicOrderCntVal igual a 0, ya que se deduce que slice_pic_order_cnt_lsb es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se establecen ambos como iguales a 0. El valor de PicOrderCntVal estará en el intervalo de -231 a 231 - 1, 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 a corto plazo 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( 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 ) utilizados en el proceso de decodificación que no estén en el intervalo de -215 a 215 - 1, inclusive. Sea X la imagen actual y sean Y y Z otras dos imágenes en la misma CVS, Y y Z se considera que están en la misma dirección de orden de salida de X cuando DiffPicOrderCnt( X, Y ) y DiffPicOrderCnt( X, Z ) son ambos positivos o ambos negativos.
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 porción de una imagen no-IRAP. Las imágenes de referencia se direccionan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar una porción I, no se utiliza ninguna lista de imágenes de referencia en la decodificación de los datos de la porción. Al decodificar una porción P, sólo se utiliza la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos de la porción. Al decodificar una porción B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se utilizan en la decodificación de los datos de la porción. Al comienzo del proceso de decodificación para cada porción de una imagen no-IRAP, se obtienen las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos de la porción. Para una porción I de una imagen no-IRAP que no sea la primera porción de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se obtienen con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Para una porción P que no sea la primera porción de una imagen, RefPicList[ 1 ] se obtiene con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación.
Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
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 otras 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, inclusive, se conoce como una entrada STR P si lt_ref_pic_flag[ i ] [ j ] es igual a 0, y como una entrada LTRP de lo contrario. Es posible que a una imagen en particular hagan referencia tanto una entrada en RefPicList[ 0 ] como una entrada en RefPicList[ 1 ]. También es posible que a una imagen en particular hagan referencia más de una entrada en RefPicList[ 0 ] o 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 utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en 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 utilizan para la interpredicción de la imagen actual, pero se utilizan para la interpredicción de una o más imágenes que siguen a la imagen actual en orden de decodificación. Hay una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que son 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 sea igual a "ninguna imagen de referencia" debe ignorarse. Se debe deducir una pérdida de imagen no intencionada para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que sea igual a "ninguna imagen de referencia".
Es un requisito de conformidad de 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 haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica 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 STR P en RefPicList[ 0 ] o RefPicList[ 1 ] de una porción de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] de la misma porción o de una porción diferente de la misma imagen no se referirán a la misma imagen. A la imagen actual en sí misma no hará referencia 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 PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de 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 todas las porciones 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 decodificar un encabezado de porción y el proceso de decodificación para la construcción de listas de imágenes de referencia para la porción, pero antes de la decodificación de los datos de la porción. Este proceso da como resultado que una o más imágenes de referencia en el DPB se marquen como "no utilizadas para referencia" o "utilizadas para referencia a largo plazo". Una imagen decodificada en el DPB puede marcarse como "no utilizada para referencia", "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo", pero sólo una de estas tres en cualquier momento dado durante la operación del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando corresponda. Cuando se hace referencia a una imagen como marcada como "utilizada para referencia", esto se refiere colectivamente a que la imagen está marcada como "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo" (pero no ambas). Cuando la imagen actual es una imagen IRAP, todas las imágenes de referencia actualmente presentes en el DPB (si las hay) se marcan como "no utilizadas para referencia". Las STR P se identifican mediante los Log2( MaxStPicOrderCntLsb ) LSB de sus valores PicOrderCntVal. Las LTRP se identifican mediante los Log2( MaxLtPicOrderCntLsb ) LSB de sus valores PicOrderCntVal.
Se aplica lo siguiente: para cada entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ], cuando la imagen a la que se hace referencia es una STRP , la imagen se marca como "utilizada para referencia a largo plazo". Cada imagen de referencia en el DPB a la que no haga referencia ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no utilizada para referencia".
Señalización siempre de listas de imágenes de referencia en encabezados de porción sin diferenciación entre imágenes de referencia a corto y largo plazo.
Esta sección describe otra realización alternativa de la divulgación. La descripción es relativa al último WD de VVC (es decir, sólo 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 posteriormente 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 sólo en encabezados de porción. 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. Las imágenes de referencia se identifican por sus LSB de POC, que están representados por un número de bits que es diferente del número de bits utilizado para representar los LSB de POC señalizados en encabezados de porción para la obtención de valores de POC.
Abreviaturas. Se aplica el texto de la cláusula 4 del WD de VVC.
Sintaxis de encabezado de unidad NAL.
__________________________________
Sintaxis de RBSP de conjunto de parámetros de secuencia.
Sintaxis de RBSP de conjunto de parámetros de imagen.
_______________________________________________________
Sintaxis de encabezado de porción.
______________________________________________________________________
Sintaxis de estructura de lista de imágenes de referencia.
______________________________________________________
Semántica de encabezado de unidad NAL.
Un forbidden_zero_bit será igual a 0. nal_unit_type especifica el tipo de estructura de datos de 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 minus 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:
Temporalld = nuh_temporal_id_plusl - 1
Cuando nal_unit_type es igual a IRAP_NUT, la porción codificada 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 V CL 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_N UT, 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 E o S_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<n>A<l>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 continente, ya que todos los conjuntos de parámetros de imagen (PPS) se incluyen en el comienzo de un flujo de bits, en donde la primera imagen codificada tiene TemporalId igual a 0. Cuando nal_unit_type es igual a P r E f IX_SEI_N UT o S u F f IX_SEI_N UT, TemporalId es mayor o igual que TemporalId de la unidad de acceso continente, 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 SE I. nuh_reserved_zero_7bits será igual a '0000000'. Otros valores de nuh_reserved_zero_7bits serán especificados en el futuro por ITU-T | ISO/IEC. Los decodificadores deberán ignorar (es decir, eliminar del flujo de bits y descartar) las unidades NAL con valores de nuh_reserved_zero_7bits no iguales a '0000000'.
Semántica de RBSP de conjunto de parámetros de secuencia.
log2_max_pic_order_cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se utiliza en el proceso de decodificación para el recuento de orden de imágenes de la siguiente manera:
MaxPicOrderCntLsb — o* g^2_maxj>ic_orderj3nt_isb_mmus4 4)
El valor de log2_max_pic_order_cnt_lsb_minus4 estará en el intervalo de 0 a 12, inclusive. sps _m ax _dec_pic_buffering_minus1 plus 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, inclusive, donde MaxDpbSize es como se especifica en otro lugar. additional_ref_poc_lsb especifica el valor de la variable MaxRefPicOrderCntLsb que se utiliza en el proceso de decodificación para las listas de imágenes de referencia de la siguiente manera:
MaxRefPicOrderCntLsb = 2*’<Eg2_maxjpic_ordcr_cnt_lsb_minus4 4 additional_rcf_jpoc_lsb )>
El valor de additional _ref_poc_lsb estará en el intervalo de 0 a 32 - log2_max_pic_order_cnt_lsb _minus4 - 4, inclusive. Semántica de RBSP de conjunto de parámetros de imagen.
Un num_ref_idx_default_active_minus1[ i ] plus 1, cuando i es igual a 0, especifica el valor deducido de la variable NumRefIdxActive[ 0 ] para las porciones P o B con num_ref_idx_active_override_flag igual a 0 y, cuando i es igual a 1, especifica el valor deducido de NumRefIdxActive[ 1 ] para las porciones 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, inclusive.
Semántica de encabezado de porción.
Cuando estén presentes, el valor de cada uno de los elementos de sintaxis de encabezado de porción slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todos los encabezados de porción de una imagen codificada.... slice_type especifica el tipo de codificación de la porción de acuerdo con 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 imágenes 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, inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se deduce 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 las porciones P y B y que el elemento de sintaxis num_ref_idx_active_minus1[ 1] está presente para las porciones 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:
NumRefTdxActivef 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, inclusive. El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista i de imágenes de referencia que se utiliza para decodificar la porción. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se utiliza ningún índice de referencia para la lista i de imágenes de referencia para decodificar la porción. Para i igual a 0 o 1, cuando la porción actual es una porción B y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1[ i ] 1. Cuando la porción actual es una porción P y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ 0 ] es igual a num_ref_idx _default_active_minus1[ 0 ] 1. Cuando la porción actual es una porción P, se deduce que NumRefIdxActive[ 1 ] es igual a 0. Cuando la porción actual es una porción I, se deduce que tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] son iguales a 0. Como alternativa, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: sea rplsIdx1 establecido como igual a ref_pic_list_sps_flag[ i ] ? ref_pic_list_idx[ i ] : num ref_pic_lists_in_sps[ i ], y sea 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 ) está presente en un encabezado de porción. Cuando está presente en un encabezado de porción, la estructura de sintaxis ref_pic_list_struct( listIdx ) especifica la lista listIdx de imágenes de referencia de la imagen actual (la imagen que contiene la porción). 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 obtiene de la siguiente manera:
NumRefPicEntriesInRplf listIdx ] = num_ref_entries[ listIdx ]
El valor de NumRefPicEntries[ listIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, inclusive. poc_ref_lsb[ listIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxRefPicOrderCntLsb de la imagen a la que hace referencia la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx ). La longitud del elemento de sintaxis poc_ref_lsb[ listIdx ][ i ] es Log2( MaxRefPicOrderCntLsb ) bits.
Se expone 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 unidades NAL se especifica posteriormente. Los procesos expuestos posteriormente especifican los siguientes procesos de decodificación utilizando elementos de sintaxis en la capa de encabezado de porción y superiores: se obtienen variables y funciones en relación con el recuento de orden de imágenes. Es necesario invocar esto sólo para la primera porción de una imagen. Al comienzo del proceso de decodificación para cada porción de una imagen no-IRAP, se invoca el proceso de decodificación para la construcción de listas de imágenes de referencia para la obtenció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 utilizadas para referencia". Es necesario invocar esto sólo para la primera porción de una imagen. Se invocan los procesos de decodificación para codificar unidades de árbol, cambiar la escala, transformar, filtrar en bucle, etc. Después de que se hayan decodificado todas las porciones de la imagen actual, la imagen decodificada actual se marca como "utilizada para referencia".
Proceso de decodificación de unidades 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 de RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis de RBSP de la unidad NAL y, a continuación, analiza la estructura de sintaxis de RBSP .
Proceso de decodificación de porciones.
Proceso de decodificación para el recuento de orden de imágenes.
La salida de este proceso es PicOrderCntVal, el recuento de orden de imágenes de la imagen actual. Los recuentos de orden de imágenes se utilizan para identificar imágenes, para obtener parámetros de movimiento en modo de fusión y la 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 imágenes, denominada PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se obtienen de la siguiente manera: sea prevTid0Pic la imagen anterior en orden de decodificación que tenga TemporalId igual a 0. La variable prevPicOrderCntLsb se establece como igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece como igual a PicOrderCntMsb de prevTid0Pic. La variable PicOrderCntMsb de la imagen actual se obtiene de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece como igual a 0. De lo contrario, PicOrderCntMsb se obtiene de la siguiente manera:
if( ( slice_pic_order_cnt_lsb < prevPicOrderCntLsb ) &&
( ( prevPicOrderCntLsb - slice_pic_order_cnt_lsb) >= ( MaxPicOrderCntLsb12) ) )
PicOrderCntMsb = prevPicOrderCntMsb MaxPicOrderCntLsb
else if( (slice_pic_order_cnt_lsb > prevPicOrderCntLsb ) &&
( ( slice_pic_order_cnt_lsb - prevPicOrderCntLsb ) > ( MaxPicOrderCntLsb12) ) )
PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb
else
PicOrderCntMsb = prevPicOrderCntMsb
PicOrderCntVal se obtiene de la siguiente manera:
PicOrderCntVal = PicOrderCntMsb slice_pic_order_cnt_lsb
Todas las imágenes IRAP tendrán PicOrderCntVal igual a 0, ya que se deduce que slice_pic_order_cnt_lsb es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se establecen ambos como iguales a 0. El valor de PicOrderCntVal estará en el intervalo de -231 a 231 - 1, 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:
DiffPicOrderCnt( picA, picB ) = PicOrderCnt( picA ) - PicOrderCnt( picB )
El flujo de bits no contendrá datos que den como resultado valores de DiffPicOrderCnt( picA, picB ) utilizados en el proceso de decodificación que no estén en el intervalo de -215 a 215 - 1, inclusive. Sea X la imagen actual y sean Y y Z otras dos imágenes en la misma CVS, Y y Z se considera que están en la misma dirección de orden de salida de X cuando DiffPicOrderCnt( X, Y ) y DiffPicOrderCnt( X, Z ) son ambos positivos o ambos negativos.
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 porción de una imagen no-IRAP. Las imágenes de referencia se direccionan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar una porción I, no se utiliza ninguna lista de imágenes de referencia en la decodificación de los datos de la porción. Al decodificar una porción P, sólo se utiliza la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos de la porción. Al decodificar una porción B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se utilizan en la decodificación de los datos de la porción. Al comienzo del proceso de decodificación para cada porción de una imagen no-IRAP, se obtienen las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos de la porción. Para una porción I de una imagen no-IRAP que no sea la primera porción de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se obtienen con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Para una porción P que no sea la primera porción de una imagen, RefPicList[ 1 ] se obtiene con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
Para cada i igual a 0 o 1, las primeras entradas NumRefIdxActive[ i ] en RefPicList[ i ] se denominan entradas activas en RefPicList[ i ], y las otras entradas en RefPicList[ i ] se denominan entradas inactivas en RefPicList[ i ]. Es posible que a una imagen en particular hagan referencia tanto una entrada en RefPicList[ 0 ] como una entrada en RefPicList[ 1 ]. También es posible que a una imagen en particular hagan referencia más de una entrada en RefPicList[ 0 ] o 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 utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en 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 utilizan para la interpredicción de la imagen actual, pero se utilizan para la interpredicción de una o más imágenes que siguen a la imagen actual en orden de decodificación. Hay una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que son 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 sea igual a "ninguna imagen de referencia" debe ignorarse. Se debe deducir una pérdida de imagen no intencionada para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que sea igual a "ninguna imagen de referencia".
Es un requisito de conformidad de 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 haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica 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]. A la imagen actual en sí misma no hará referencia ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de RefPicList[ 1]. El número de imágenes en setOfRefPics será menor o igual que sps _m ax _dec_pic_buffering_minus1, y setOfRefPics será el mismo para todas las porciones 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 decodificar un encabezado de porción y el proceso de decodificación para la construcción de listas de imágenes de referencia para la porción, pero antes de la decodificación de los datos de la porción. Este proceso da como resultado que una o más imágenes de referencia en el DPB se marquen como "no utilizadas para referencia". Una imagen decodificada en el DPB puede marcarse como "no utilizada para referencia" o "utilizada para referencia", pero sólo una de estas dos en cualquier momento dado durante la operación del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando corresponda. Cuando la imagen actual es una imagen IRAP, todas las imágenes de referencia actualmente presentes en el DPB (si las hay) se marcan como "no utilizadas para referencia". Las imágenes de referencia en el DPB se identifican mediante los Log2( MaxRefPicOrderCntLsb ) LSB de sus valores PicOrderCntVal. Cada imagen de referencia en el DPB a la que no haga referencia ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no utilizada para referencia".
Otra realización alternativa más.
Esta sección describe una realización alternativa al enfoque especificado anteriormente que se denomina "señalización siempre de listas de imágenes de referencia en encabezados de porción con diferenciación entre imágenes de referencia a corto y largo plazo". En esta realización alternativa, en el encabezado de porción, se señaliza un ciclo de MSB de POC para cada entrada LTRP, de manera similar a como se hace en HEVC o 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 Figura 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 divulgación. El dispositivo 600 de codificación de vídeo es adecuado para implementar las realizaciones divulgadas como se describe en la presente memoria. El dispositivo 600 de codificación de vídeo comprende puertos 610 de entrada y unidades receptoras (Rx) 620 para recibir datos; un procesador, unidad lógica o unidad central 630 de procesamiento (CPU, por sus siglas en inglés) 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 óptico a eléctrico (OE) y componentes eléctrico a óptico (EO) acoplados a los puertos 610 de entrada, las unidades receptoras 620, las unidades transmisoras 640 y los puertos 650 de salida para la salida o entrada de señales ópticas o eléctricas.
El procesador 630 está implementado mediantehardwareysoftware.El procesador 630 se implementa como uno o más chips de CPU, núcleos (por ejemplo, como un procesador multinúcleo), agrupaciones de puertas programables de campo (FPGA, por sus siglas en inglés), circuitos integrados de aplicación específica (ASIC, por sus siglas en inglés) y procesadores de señales digitales (DSP, por sus siglas en inglés). El procesador 630 está en comunicación con los puertos 610 de entrada, las unidades receptoras 620, las unidades transmisoras 640, 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 divulgadas descritas anteriormente. Por ejemplo, el módulo 670 de codificación implementa, procesa, prepara o proporciona las diversas funciones de conexión en red. La inclusión del módulo 670 de codificación por lo tanto proporciona una mejora sustancial de 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 en un estado diferente. Como 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 a y de un usuario. Los dispositivos 680 de E/S incluyen 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 incluyen dispositivos de entrada, tales como un teclado, ratón, bola rastreadora, etc., y/o interfaces correspondientes para interactuar con tales dispositivos de salida.
La memoria 660 comprende uno o más discos, unidades de cinta magnética y/o unidades de estado sólido y se usa como un dispositivo de almacenamiento de datos de desbordamiento para almacenar programas, cuando tales programas se seleccionan para ejecutarlos, y para almacenar instrucciones y datos que se leen durante la ejecución del programa. La memoria 660 es volátil y/o no volátil y es memoria de sólo lectura (ROM, por sus siglas en inglés), memoria de acceso aleatorio (RAM, por sus siglas en inglés), memoria ternaria de contenido direccionable (TCAM, por sus siglas en inglés) y/o memoria estática de acceso aleatorio (SRAM, por sus siglas en inglés).
La Figura 7 es un diagrama esquemático de una realización de un medio 700 de codificación. En una realización, el medio 700 de codificación se implementa 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 receptores 701. Los medios receptores 701 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 transmisores 707 acoplados a los medios receptores 701. Los medios transmisores 707 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 medios 703 de almacenamiento. Los medios 703 de almacenamiento están acoplados a al menos uno de los medios receptores 701 o los medios transmisores 707. Los medios 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 medios 703 de almacenamiento. Los medios 705 de procesamiento están configurados para ejecutar las instrucciones almacenadas en los medios 703 de almacenamiento para realizar los métodos divulgados en la presente memoria.

Claims (7)

REIVINDICACIONES
1. Un método para decodificar un flujo de bits de vídeo codificado implementado mediante un decodificador de vídeo basado en el estándar VVC, en donde el flujo de bits de vídeo codificado comprende un encabezado de porción de una porción actual y datos que representan la porción actual, comprendiendo el método:
analizar el encabezado de porción del flujo de bits de vídeo codificado, en donde el encabezado de porción comprende una estructura de lista de imágenes de referencia;
obtener, sobre la base de la estructura de lista de imágenes de referencia, dos listas de imágenes de referencia de la porción actual, en donde, en cada una de las dos listas de imágenes de referencia, sólo cierto número de entradas activas al principio de cada una de las dos listas de imágenes de referencia hacen referencia a las imágenes de referencia que se utilizan para la interpredicción de la imagen actual, mientras que otras entradas de la lista se denominan entradas inactivas, las entradas inactivas hacen referencia a todas las imágenes de referencia que no se utilizan para la interpredicción de la imagen actual, pero se utilizan en la interpredicción para una o más imágenes que siguen a la imagen actual en orden de decodificación; y
obtener, basándose en la lista de imágenes de referencia, al menos un bloque reconstruido de la porción actual.
2. El método de la reivindicación 1, en donde un orden de entradas en las estructuras 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 cada entrada en las estructuras de lista de imágenes de referencia describe una imagen de referencia correspondiente en la lista de imágenes de referencia.
3. El método de cualquiera de las reivindicaciones 1 a 2, en donde el al menos un bloque reconstruido se utiliza para generar una imagen visualizada en una pantalla de un dispositivo electrónico.
4. El método de cualquiera de las reivindicaciones 1 a 3, en donde la lista de imágenes de referencia comprende una lista de imágenes de referencia utilizadas para la interpredicción del al menos un bloque reconstruido.
5. El método de cualquiera de las reivindicaciones 1 a 4, en donde la porción actual es una porción P o para una porción B.
6. Un decodificador que comprende circuitería de procesamiento para llevar a cabo el método según cualquiera de las reivindicaciones 1 a 5.
7. Un producto de programa informático que comprende un código de programa para realizar el método según cualquiera de las reivindicaciones 1 a 5 cuando se ejecuta en un ordenador o un procesador.
ES19850149T 2018-08-17 2019-08-16 Reference picture management in video coding Active ES3014003T3 (en)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
ES3014003T3 true ES3014003T3 (en) 2025-04-16

Family

ID=69525847

Family Applications (4)

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

Family Applications Before (3)

Application Number Title Priority Date Filing Date
ES19850047T Active ES2981233T3 (es) 2018-08-17 2019-08-16 Gestión de imágenes de referencia en codificación de video
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

Country Status (25)

Country Link
US (16) US11758123B2 (es)
EP (11) EP4550787A3 (es)
JP (15) JP7223118B2 (es)
KR (15) KR102861658B1 (es)
CN (14) CN118660154A (es)
AU (1) AU2019322914B2 (es)
BR (6) BR112021002832A2 (es)
CA (1) CA3109799C (es)
CL (1) CL2021000397A1 (es)
DK (2) DK3831064T3 (es)
ES (4) ES2981233T3 (es)
FI (1) FI3831064T3 (es)
HU (2) HUE069899T2 (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) SG11202101406PA (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
EP3780608A4 (en) 2018-04-02 2021-12-01 SZ DJI Technology Co., Ltd. IMAGE PROCESSING METHOD AND IMAGE PROCESSING DEVICE
EP4550787A3 (en) 2018-08-17 2025-07-02 Huawei Technologies Co., Ltd. Reference picture management in video coding
EP3854099B1 (en) * 2018-09-21 2025-08-27 Sharp Kabushiki Kaisha Systems and methods for signaling reference pictures in video coding
CN118632031A (zh) * 2018-12-10 2024-09-10 夏普株式会社 用于在视频编码中发送信号通知参考图片的系统和方法
WO2020141889A1 (ko) * 2019-01-02 2020-07-09 엘지전자 주식회사 화면간 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
CN113597768B (zh) * 2019-01-28 2024-10-15 Op方案有限责任公司 扩展长期参考图片保留的在线和离线选择
US11395006B2 (en) * 2019-03-06 2022-07-19 Tencent America LLC Network abstraction layer unit header
EP3941059A1 (en) * 2019-03-12 2022-01-19 Sony Group Corporation Image decoding device, image decoding method, image encoding device, and image encoding method
US12231692B2 (en) * 2020-03-18 2025-02-18 Sharp Kabushiki Kaisha Systems and methods for applying deblocking filters in video coding
WO2021188544A2 (en) * 2020-03-19 2021-09-23 Bytedance Inc. Intra random access points for picture coding
BR112022019661A2 (pt) * 2020-03-31 2022-11-29 Sharp Kk Aparelho de decodificação de vídeo, aparelho de codificação de vídeo, método de decodificação de vídeo e método de codificação de vídeo
WO2021200658A1 (ja) * 2020-04-02 2021-10-07 シャープ株式会社 動画像復号装置及び動画像復号方法
SG11202111934TA (en) * 2020-05-20 2021-12-30 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
JP7749591B2 (ja) * 2020-05-21 2025-10-06 アリババ グループ ホウルディング リミテッド 映像の符号化における参照ピクチャ処理のための方法
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
JP5646994B2 (ja) * 2007-08-15 2014-12-24 トムソン ライセンシングThomson Licensing 多視点符号化ビデオにおける領域視差ベクトルを使用したモーションスキップモードのための方法及び装置
WO2010086500A1 (en) 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
CN103561273B (zh) 2009-03-26 2016-10-05 松下电器(美国)知识产权公司 编码装置及方法、错误检测装置及方法、解码装置及方法
CN102577375B (zh) * 2009-05-01 2016-08-17 汤姆森特许公司 用于三维视频的层间依赖性信息
KR101752418B1 (ko) 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
EP2659676A4 (en) * 2010-12-27 2018-01-03 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for processing of encoded video
EP2664151A4 (en) * 2011-01-14 2016-01-20 Vidyo Inc HIGH-COATED SYNTAX FOR TIMELY 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
KR101852789B1 (ko) * 2011-04-26 2018-06-04 엘지전자 주식회사 참조 픽쳐 리스트 관리 방법 및 이러한 방법을 사용하는 장치
DK2727342T3 (en) * 2011-06-30 2016-10-03 ERICSSON TELEFON AB L M (publ) Reference picture signaling
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
CN108650508B (zh) 2011-09-29 2022-07-29 夏普株式会社 图像解码装置、图像解码方法、图像编码装置及图像编码方法
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
PL3576412T3 (pl) * 2011-11-08 2022-01-24 Nokia Technologies Oy Obsługa obrazów referencyjnych
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
KR102433985B1 (ko) * 2011-11-11 2022-08-19 엘지전자 주식회사 영상 정보 전송 방법 및 장치와 이를 이용한 복호화 방법 및 장치
US9445090B2 (en) * 2011-11-18 2016-09-13 Google Technology Holdings LLC Explicit way for signaling a collocated picture for high efficicency video coding (HEVC) using reference list0 and list1
US9485503B2 (en) * 2011-11-18 2016-11-01 Qualcomm Incorporated Inside view motion prediction among texture and depth view components
US9392235B2 (en) 2011-11-18 2016-07-12 Google Technology Holdings LLC Explicit way for signaling a collocated reference picture for video coding
US9258559B2 (en) 2011-12-20 2016-02-09 Qualcomm Incorporated Reference picture list construction for multi-view and three-dimensional video coding
ES2571863T3 (es) 2012-01-17 2016-05-27 ERICSSON TELEFON AB L M (publ) Gestión de listas de imágenes de referencia
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
EP2838263A4 (en) * 2012-04-15 2015-12-23 Samsung Electronics Co Ltd INTERPRETATION PROCEDURES WITH CHANGED REFERENCE PICTURES AND DEVICE THEREFOR
KR20130116216A (ko) * 2012-04-15 2013-10-23 삼성전자주식회사 인터 예측의 참조영상을 결정하는 방법과 그 장치
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
US9800869B2 (en) * 2012-06-15 2017-10-24 Google Technology Holdings LLC Method and apparatus for efficient slice header processing
US9332255B2 (en) * 2012-06-28 2016-05-03 Qualcomm Incorporated Signaling long-term reference pictures for video coding
US9591303B2 (en) 2012-06-28 2017-03-07 Qualcomm Incorporated Random access and signaling of long-term reference pictures in video coding
CN108347606B (zh) * 2012-07-01 2022-08-19 夏普株式会社 电子设备及方法
US20140010291A1 (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
US9438898B2 (en) * 2012-09-07 2016-09-06 Vid Scale, Inc. Reference picture lists modification
US9319657B2 (en) * 2012-09-19 2016-04-19 Qualcomm Incorporated Selection of pictures for disparity vector derivation
US9584825B2 (en) * 2012-09-27 2017-02-28 Qualcomm Incorporated Long-term reference picture signaling in video coding
US9565452B2 (en) * 2012-09-28 2017-02-07 Qualcomm Incorporated Error resilient decoding unit association
WO2014051372A1 (ko) * 2012-09-28 2014-04-03 엘지전자 주식회사 영상 복호화 방법 및 이를 이용하는 장치
CN108540813B (zh) * 2012-09-28 2021-03-16 杜比国际公司 图像解码装置
US10506253B2 (en) * 2012-10-12 2019-12-10 Electronics And Telecommunications Research Institute Image encoding/decoding method and device using same
WO2014081226A1 (ko) * 2012-11-21 2014-05-30 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
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
KR20140087971A (ko) * 2012-12-26 2014-07-09 한국전자통신연구원 계층적 비디오 부호화에서 다중참조계층을 적용한 화면간 부/복호화 방법 및 그 장치
US10021388B2 (en) * 2012-12-26 2018-07-10 Electronics And Telecommunications Research Institute Video encoding and decoding method and apparatus using the same
US20150326866A1 (en) 2012-12-28 2015-11-12 Sharp Kabushiki Kaisha Image decoding device and data structure
JP6209772B2 (ja) * 2013-01-15 2017-10-11 華為技術有限公司Huawei Technologies Co.,Ltd. シグナリングを用いたビデオデコーダ
WO2014137175A1 (ko) * 2013-03-06 2014-09-12 삼성전자 주식회사 선택적인 노이즈제거 필터링을 이용한 스케일러블 비디오 부호화 방법 및 그 장치, 선택적인 노이즈제거 필터링을 이용한 스케일러블 비디오 복호화 방법 및 그 장치
US9532067B2 (en) * 2013-04-05 2016-12-27 Sharp Kabushiki Kaisha Decoding of inter-layer reference picture set and reference picture list construction
CN105122816A (zh) * 2013-04-05 2015-12-02 夏普株式会社 层间参考图像集的解码和参考图像列表构建
US9860529B2 (en) 2013-07-16 2018-01-02 Qualcomm Incorporated Processing illumination compensation for video coding
WO2015006922A1 (en) * 2013-07-16 2015-01-22 Mediatek Singapore Pte. Ltd. Methods for residual prediction
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
CN105453564B (zh) * 2013-07-30 2019-05-10 株式会社Kt 支持多个层的图像编码和解码方法以及使用该方法的装置
US9894369B2 (en) 2013-07-30 2018-02-13 Kt Corporation Image encoding and decoding method supporting plurality of layers and apparatus using same
US10057569B2 (en) 2013-10-10 2018-08-21 Sharp Kabushiki Kaisha Alignment of picture order count
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
EP3090558A4 (en) 2014-01-03 2017-08-16 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
US9756355B2 (en) 2014-06-20 2017-09-05 Qualcomm Incorporated Value ranges for syntax elements in video coding
US10412387B2 (en) * 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
KR20170066457A (ko) * 2014-09-26 2017-06-14 브이아이디 스케일, 인크. 시간적 블록 벡터 예측을 갖는 인트라 블록 카피 코딩
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
US10511834B2 (en) * 2015-04-29 2019-12-17 Hfi Innovation Inc. Method and apparatus for Intra Block Copy reference list construction
CN107615762B (zh) 2015-05-29 2020-06-26 寰发股份有限公司 一种管理解码图像缓存器并解码视频比特流的方法及装置
US10638140B2 (en) 2015-05-29 2020-04-28 Qualcomm Incorporated Slice level intra block copy and other video coding improvements
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
FI20165114A (fi) * 2016-02-17 2017-08-18 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
WO2017171107A1 (ko) * 2016-03-28 2017-10-05 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
KR102353778B1 (ko) * 2016-10-11 2022-01-20 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US11140417B2 (en) * 2016-11-01 2021-10-05 Nokia Technologies Oy Apparatus, a method and a computer program for video coding 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
WO2018178507A1 (en) * 2017-03-27 2018-10-04 Nokia Technologies Oy An 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
EP4550787A3 (en) * 2018-08-17 2025-07-02 Huawei Technologies Co., Ltd. Reference picture management in video coding
WO2020056168A1 (en) * 2018-09-12 2020-03-19 Futurewei Technologies, Inc. Index signaling for reference picture list structures
CN118632031A (zh) 2018-12-10 2024-09-10 夏普株式会社 用于在视频编码中发送信号通知参考图片的系统和方法
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
JP7273193B2 (ja) * 2019-05-12 2023-05-12 北京字節跳動網絡技術有限公司 参照ピクチャ再サンプリングのための信号通知
US11418813B2 (en) 2019-09-20 2022-08-16 Tencent America LLC Signaling of inter layer prediction in video bitstream
WO2021079948A1 (en) * 2019-10-25 2021-04-29 Sharp Kabushiki Kaisha Systems and methods for signaling picture information in video coding
US12088848B2 (en) 2019-12-11 2024-09-10 Sharp Kabushiki Kaisha Systems and methods for signaling output layer set information in video coding
CN115191114B (zh) * 2020-02-14 2025-06-13 抖音视界有限公司 视频比特流中的子图片信令
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
WO2021236895A1 (en) 2020-05-21 2021-11-25 Bytedance Inc. Constraints on reference picture information
JP7749591B2 (ja) * 2020-05-21 2025-10-06 アリババ グループ ホウルディング リミテッド 映像の符号化における参照ピクチャ処理のための方法
CN115668949A (zh) 2020-05-26 2023-01-31 字节跳动有限公司 编解码视频中的帧间层参考图片的标识
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
JP2021534670A (ja) 2021-12-09
US20210168359A1 (en) 2021-06-03
JP2021534671A (ja) 2021-12-09
ZA202100951B (en) 2023-07-26
CN114584775A (zh) 2022-06-03
SG11202101406PA (en) 2021-03-30
UA128290C2 (uk) 2024-05-29
CL2021000397A1 (es) 2021-12-10
KR102609949B1 (ko) 2023-12-04
WO2020037274A1 (en) 2020-02-20
AU2019322914B2 (en) 2023-06-29
JP2023095886A (ja) 2023-07-06
PL3831055T3 (pl) 2025-03-10
KR20250139889A (ko) 2025-09-23
CN114501018A (zh) 2022-05-13
JP2023095887A (ja) 2023-07-06
BR112021002501A2 (pt) 2021-07-27
KR102659936B1 (ko) 2024-04-22
JP7547319B2 (ja) 2024-09-09
JP7577150B2 (ja) 2024-11-01
KR20230169435A (ko) 2023-12-15
PT3831064T (pt) 2024-05-10
EP3831057A4 (en) 2021-09-22
EP3831064B1 (en) 2024-02-07
US11477438B2 (en) 2022-10-18
KR20250106333A (ko) 2025-07-09
SI3831064T1 (sl) 2024-06-28
KR20210036400A (ko) 2021-04-02
IL280944B2 (en) 2024-12-01
US12268570B2 (en) 2025-04-08
EP3831054B1 (en) 2024-11-27
HUE069899T2 (hu) 2025-04-28
KR102610092B1 (ko) 2023-12-04
EP3831054A4 (en) 2021-10-13
IL280944B1 (en) 2024-08-01
JP7830383B2 (ja) 2026-03-16
CN114584775B (zh) 2023-04-11
US12483695B2 (en) 2025-11-25
KR20210036398A (ko) 2021-04-02
KR20240058947A (ko) 2024-05-03
US20220201284A1 (en) 2022-06-23
SG11202101407QA (en) 2021-03-30
US20210168360A1 (en) 2021-06-03
JP2024180395A (ja) 2024-12-26
EP3831054C0 (en) 2024-11-27
US12413712B2 (en) 2025-09-09
CN114697663B (zh) 2024-01-30
CN114697663A (zh) 2022-07-01
DK3831064T3 (da) 2024-05-13
PL3831070T3 (pl) 2026-03-09
MX2024003663A (es) 2024-04-15
US20240214555A1 (en) 2024-06-27
AU2019322914A1 (en) 2021-03-18
US20240414321A1 (en) 2024-12-12
JP2023086737A (ja) 2023-06-22
BR112021002483A2 (pt) 2021-07-27
MX2021001743A (es) 2021-06-23
JP2021534668A (ja) 2021-12-09
MX2024010756A (es) 2024-09-10
KR102830936B1 (ko) 2025-07-04
MX2021001744A (es) 2021-07-16
WO2020037277A1 (en) 2020-02-20
EP4723633A2 (en) 2026-04-08
EP4336832A2 (en) 2024-03-13
MX2021001745A (es) 2021-07-16
JP7543461B2 (ja) 2024-09-02
US12574502B2 (en) 2026-03-10
BR112021002499A2 (pt) 2021-07-27
US12506862B2 (en) 2025-12-23
CN114205590B (zh) 2023-06-06
CN112567744A (zh) 2021-03-26
JP7278366B2 (ja) 2023-05-19
CN112585973A (zh) 2021-03-30
BR112021002832A2 (pt) 2021-05-04
EP3831064A1 (en) 2021-06-09
US20210185308A1 (en) 2021-06-17
KR102610094B1 (ko) 2023-12-04
US20210258568A1 (en) 2021-08-19
KR20230170122A (ko) 2023-12-18
WO2020037272A1 (en) 2020-02-20
US20230128843A1 (en) 2023-04-27
BR112021002486A2 (pt) 2021-07-27
KR20210036402A (ko) 2021-04-02
JP7223118B2 (ja) 2023-02-15
JP2025019072A (ja) 2025-02-06
KR102861658B1 (ko) 2025-09-17
JP2021534676A (ja) 2021-12-09
JP2021534673A (ja) 2021-12-09
EP4336832A3 (en) 2024-05-22
US20250254288A1 (en) 2025-08-07
KR102610093B1 (ko) 2023-12-04
MX2024008569A (es) 2024-07-22
EP3831055A1 (en) 2021-06-09
US11758123B2 (en) 2023-09-12
PL3831064T3 (pl) 2024-06-03
US20210176489A1 (en) 2021-06-10
SG11202101399VA (en) 2021-03-30
JP7730757B2 (ja) 2025-08-28
KR102844154B1 (ko) 2025-08-07
CN113141784A (zh) 2021-07-20
CN112567746A (zh) 2021-03-26
PH12021550312A1 (en) 2021-10-11
EP4507302A2 (en) 2025-02-12
CN114554196A (zh) 2022-05-27
ES3062309T3 (en) 2026-04-09
HUE066343T2 (hu) 2024-07-28
US11956420B2 (en) 2024-04-09
CN120547324A (zh) 2025-08-26
MX2024008568A (es) 2024-07-22
CN114584774A (zh) 2022-06-03
DK3831055T3 (da) 2025-03-03
JP7830382B2 (ja) 2026-03-16
US11991349B2 (en) 2024-05-21
EP4507302A3 (en) 2025-04-09
CN114584774B (zh) 2023-05-09
US11979553B2 (en) 2024-05-07
CN113412620A (zh) 2021-09-17
EP3831070A1 (en) 2021-06-09
KR20230169439A (ko) 2023-12-15
EP3831056A4 (en) 2021-10-13
JP7564090B2 (ja) 2024-10-08
WO2020037278A1 (en) 2020-02-20
KR102844155B1 (ko) 2025-08-07
IL280944A (en) 2021-04-29
BR112021002491A2 (pt) 2021-08-10
EP4507301A2 (en) 2025-02-12
NZ773625A (en) 2022-12-23
KR20210036399A (ko) 2021-04-02
JP7645303B2 (ja) 2025-03-13
JP7556846B2 (ja) 2024-09-26
EP3831055A4 (en) 2021-10-13
US11997257B2 (en) 2024-05-28
ZA202110257B (en) 2024-10-30
CN114554196B (zh) 2023-04-28
KR20210036401A (ko) 2021-04-02
PT3831055T (pt) 2025-02-24
SG11202100647TA (en) 2021-02-25
EP4507301A3 (en) 2025-04-09
CN114205590A (zh) 2022-03-18
US20210258567A1 (en) 2021-08-19
JP2023065392A (ja) 2023-05-12
EP3831056A1 (en) 2021-06-09
US12015761B2 (en) 2024-06-18
US20260039803A1 (en) 2026-02-05
KR20250107940A (ko) 2025-07-14
SG11202101404WA (en) 2021-03-30
US20240259553A1 (en) 2024-08-01
KR20210041062A (ko) 2021-04-14
EP4550787A3 (en) 2025-07-02
EP4550787A2 (en) 2025-05-07
EP3831057A1 (en) 2021-06-09
PL3831056T3 (pl) 2025-03-10
US12058317B2 (en) 2024-08-06
JP2021534677A (ja) 2021-12-09
KR102610089B1 (ko) 2023-12-04
CA3109799A1 (en) 2020-02-20
EP3831070A4 (en) 2022-02-16
CN118660154A (zh) 2024-09-17
JP7802719B2 (ja) 2026-01-20
ES2981233T3 (es) 2024-10-07
US20240244184A1 (en) 2024-07-18
CA3109799C (en) 2024-04-23
SG11202100648RA (en) 2021-02-25
MY207383A (en) 2025-02-25
US20240406374A1 (en) 2024-12-05
JP2024032732A (ja) 2024-03-12
KR20230165889A (ko) 2023-12-05
MX2021001838A (es) 2021-05-13
WO2020037276A1 (en) 2020-02-20
WO2020037273A1 (en) 2020-02-20
KR102844156B1 (ko) 2025-08-07
US20240130835A1 (en) 2024-04-25
EP3831055B1 (en) 2024-11-27
FI3831064T3 (fi) 2024-05-08
EP3831064A4 (en) 2021-10-06
EP3831070B1 (en) 2025-11-26
US12581060B2 (en) 2026-03-17
ES3010144T3 (en) 2025-04-01
EP3831056B1 (en) 2024-11-27
EP3831054A1 (en) 2021-06-09
JP2023085317A (ja) 2023-06-20
JP2023088995A (ja) 2023-06-27
CN114501018B (zh) 2024-01-09
CN112585974A (zh) 2021-03-30
MX2024001656A (es) 2024-02-27
KR102827866B1 (ko) 2025-06-30
KR20230169440A (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
US20260143110A1 (en) Reference Picture Management in Video Coding
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