ES2981233T3 - Gestión de imágenes de referencia en codificación de video - Google Patents
Gestión de imágenes de referencia en codificación de video Download PDFInfo
- Publication number
- ES2981233T3 ES2981233T3 ES19850047T ES19850047T ES2981233T3 ES 2981233 T3 ES2981233 T3 ES 2981233T3 ES 19850047 T ES19850047 T ES 19850047T ES 19850047 T ES19850047 T ES 19850047T ES 2981233 T3 ES2981233 T3 ES 2981233T3
- Authority
- ES
- Spain
- Prior art keywords
- reference picture
- pic
- ref
- entries
- list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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 obtener una estructura de lista de imágenes de referencia para un fragmento actual representado en el flujo de bits de vídeo codificado; construir una lista de imágenes de referencia para el fragmento actual basándose en la estructura de lista de imágenes de referencia de modo que un número de entradas en la lista de imágenes de referencia y un orden de las entradas en la lista de imágenes de referencia sean ambos iguales que en la estructura de lista de imágenes de referencia, en donde la lista de imágenes de referencia contiene una pluralidad de entradas activas y una pluralidad de entradas inactivas; y obtener, basándose en al menos una entrada activa de la lista de imágenes de referencia, al menos un bloque reconstruido del fragmento 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 video
Campo de la invención
La presente exposición se refiere en general a técnicas para la gestión de imágenes de referencia en codificación de video. Más específicamente, esta exposición describe técnicas para la construcción de listas de imágenes de referencia.
Antecedentes de la invención
La cantidad de datos de video necesarios para representar incluso un video relativamente corto puede ser sustancial, lo que da como resultado dificultades cuando los datos se deben transmitir o comunicar de otra manera a través de una red de comunicaciones con capacidad de ancho de banda limitada. Por lo tanto, los datos de video generalmente se comprimen antes de comunicarse a través de redes de telecomunicaciones modernas. El tamaño de un video también podría ser un problema cuando el video se almacena en un dispositivo de almacenamiento debido a que los recursos de memoria son limitados. Los dispositivos de compresión de video a menudo usan software y/o hardware en la fuente para codificar los datos de video antes de la transmisión o almacenamiento, disminuyendo así la cantidad de datos necesarios para representar imágenes de video digitales. Los datos comprimidos luego se reciben entonces en el destino por un dispositivo de descompresión de video que decodifica los datos de video. Con recursos de red limitados y demandas cada vez mayores de mayor calidad de video, son deseables técnicas mejoradas de compresión y descompresión que mejoren la relación de compresión con poco o ningún sacrificio en la calidad de imagen. El documento WO2013043886A2 (QUALCOMM INC) divulgaba técnicas relacionadas con la construcción de listas de imágenes de referencia, el documento US20130155184A1 (QUALCOMM INC) divulgaba un codificador de video que genera, sobre la base de un conjunto de imágenes de referencia de un componente de vista actual, una lista de imágenes de referencia para el componente de vista actual.
La codificación de video de alta eficiencia H.265 (12/16) fue un estándar de codificación de video desarrollado por el Joint Collaborative Team on Video Coding (JCT-VC) para mejorar la eficiencia de la compresión de video en comparación con los estándares anteriores. H<a>NNUK-SELA (NOKIA) M M ET AL: "AHG21: On reference picture list construction and reference picture marking",7. REUNIÓN JCT-VC; 20111121 - 20111130; GINEBRA; (JOINT COLLABORATIVE TEAM ON VIDEO CODING DE ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16), n°. JCTVC-G643 21 de noviembre de 2011 (21-11-2011) revela técnicas relacionadas con la construcción de la lista de imágenes de referencia.
Compendio
La presente invención se define en las reivindicaciones independientes. La exposición habilitante para la invención protegida está provista de la primera realización. Las otras figuras, aspectos y realizaciones son proporcionadas para fines ilustrativos y no representan realizaciones de la invención a menos que se combinen con todas las características respectivamente definidas en las reivindicaciones independientes.
Breve descripción de los dibujos
Para una comprensión más completa de esta exposición, ahora se hace referencia a la siguiente breve descripción, tomada en conexión con las figuras anexas y la descripción detallada, en la que números de referencia similares representan partes similares.
La figura 1 es un diagrama de bloques que ilustra un sistema de codificación a modo de ejemplo que utiliza técnicas de predicción bilateral.
La figura 2 es un diagrama de bloques que ilustra un codificador de video a modo de ejemplo que implementa técnicas de predicción bilateral.
La figura 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador de video 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) que tiene una imagen con entradas en todos los subconjuntos del RPS.
La figura 5 es una realización de un método para decodificar un flujo de bits de video codificado.
La figura 6 es un diagrama esquemático de un dispositivo de codificación de video.
La figura 7 es un diagrama esquemático de una realización de un medio para codificación.
En la siguiente descripción, las características que en el sumario anterior de la invención se han marcado como “no reivindicadas” deben entenderse también a continuación, cuando se describan y expliquen con referencia a los dibujos, como “no reivindicadas” o “no forman parte de la invención”.
Descripción detallada
La figura 1 es un diagrama de bloques que ilustra un sistema de codificación de ejemplo 10 que utiliza técnicas de codificación de video como se describe en la presente memoria. Como se muestra en la figura 1, el sistema de codificación 10 incluye un dispositivo fuente 12 que proporciona datos de video codificados que se van a decodificar en un momento posterior por un dispositivo destino 14. En particular, el dispositivo fuente 12 proporciona los datos de video al dispositivo destino 14 mediante un medio legible por ordenador 16. El dispositivo fuente 12 y el dispositivo destino 14 comprenden cualquiera de una amplia gama de dispositivos, que incluyen ordenadores de escritorio, ordenadores portátiles (por ejemplo, laptop), ordenadores de tableta, cajas de conexión, terminales telefónicos tales como los llamados teléfonos “ inteligentes”, los llamados cuadernos “inteligentes”, televisiones, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivo de transmisión en tiempo real de video o similares. En algunos casos, el dispositivo fuente 12 y el dispositivo destino 14 están equipados para comunicación inalámbrica.
El dispositivo destino 14 recibe los datos de video codificados que se van a decodificar mediante un medio legible por ordenador 16. El medio legible por ordenador 16 comprende cualquier tipo de medio o dispositivo capaz de mover los datos de video codificados desde el dispositivo fuente 12 hasta el dispositivo destino 14. En un ejemplo, el medio legible por ordenador 16 comprende un medio de comunicación para permitir que el dispositivo fuente 12 transmita datos de video codificados directamente al dispositivo destino 14 en tiempo real. Los datos de video codificados se modulan de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse al dispositivo destino 14. 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 físicas de transmisión. 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 comunicación desde el dispositivo fuente 12 hasta el dispositivo destino 14.
En algunos ejemplos, los datos codificados se generan desde la interfaz de salida 22 a un dispositivo de almacenamiento. De manera similar, se accede a datos codificados del dispositivo de almacenamiento mediante una interfaz de entrada. El dispositivo de almacenamiento incluye cualquiera de una variedad de medios de almacenamiento de datos distribuidos o a los que se puede acceder localmente tal como un disco duro, discos Blu-ray, discos de video digitales (DVD), memorias de solo lectura de disco compacto (CD-ROM), memoria flash, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de video codificados. En un ejemplo adicional, el dispositivo de almacenamiento corresponde a un servidor de archivos u otro dispositivo de almacenamiento intermedio que almacena el video codificado generado por el dispositivo fuente 12. El dispositivo destino 14 accede a datos de video almacenados del dispositivo de almacenamiento mediante transmisión o descarga. El servidor de archivos es cualquier tipo de servidor capaz de almacenar datos de video codificados y transmitir esos datos de video codificados al dispositivo destino 14. Servidores de archivos a modo de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor de protocolo de transferencia de archivos (FTP), dispositivos de almacenamiento conectados a la red (NAS) o una unidad de disco local. El dispositivo destino 14 accede a los datos de video codificados a través de cualquier conexión de datos estándar, que incluye una conexión a Internet. Esto incluye un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión cableada (por ejemplo, línea de suscriptor digital (DSL), módem de cable, etc.), o una combinación de ambos que es adecuada para acceder a datos de video codificados almacenados en un servidor de archivos. La transmisión de datos de video codificados del dispositivo de almacenamiento es una transmisión en tiempo real, una transmisión de descarga o una combinación de estas.
Las técnicas de esta exposición no se limitan necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se aplican a codificación de video en soporte de cualquiera de una variedad de aplicaciones multimedia tal como difusiones de televisión por vía aérea, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de video en tiempo real por Internet, tal como transmisión en tiempo real adaptativa dinámica a través de HTTP (DASH), video digital codificado en un medio de almacenamiento de datos, decodificación de video digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema de codificación 10 se configura para soportar transmisión de video unidireccional o bidireccional para soportar aplicaciones tal como transmisión de video en tiempo real, reproducción de video, difusión de video y/o telefonía por video.
En el ejemplo de la figura 1, el dispositivo fuente 12 incluye una fuente de video 18, una codificador de video 20 y una interfaz de salida 22. El dispositivo destino 14 incluye una interfaz de entrada 28, un decodificador de video 30 y un dispositivo de visualización 32. De acuerdo con esta descripción, se configura el codificador de video 20 del dispositivo fuente 12 y/o el decodificador de video 30 del dispositivo destino 14 para aplicar las técnicas para codificación de video. En otros ejemplos, un dispositivo fuente y un dispositivo destino incluyen otros componentes o disposiciones. El dispositivo fuente 12 recibe datos de video de una fuente de video externa tal como una cámara externa. Asimismo, el dispositivo destino 14 interactúa con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
El sistema de codificación ilustrado 10 de la figura 1 es simplemente un ejemplo. Las técnicas para codificación de video se realizan por cualquier dispositivo de codificación y/o decodificación de video digital. Aunque las técnicas de esta exposición generalmente se realizan por un dispositivo de codificación de video, las técnicas también se realizan por un codificador/decodificador de video, típicamente referido como un "CODEC”. Además, las técnicas de esta exposición también se realizan por un preprocesador de video. El codificador de video y/o el decodificador es una unidad de procesamiento de gráficos (GPU) o un dispositivo similar.
El dispositivo fuente 12 y el dispositivo destino 14 son meramente ejemplos de estos dispositivos de codificación en los que el dispositivo fuente 12 genera datos de video codificados para transmisión al dispositivo destino 14. En algunos ejemplos, el dispositivo fuente 12 y el dispositivo destino 14 funcionan de manera sustancialmente simétrica de modo que cada uno de los dispositivos fuente y destino 12, 14 incluyen componentes de codificación y decodificación de video. Por lo tanto, el sistema de codificación 10 soporta transmisión de video unidireccional o bidireccional entre dispositivos de video 12, 14, por ejemplo, para transmisión en tiempo real de video, reproducción de video, difusión de video o video por teléfono.
La fuente de video 18 del dispositivo fuente 12 incluye un dispositivo de captura de video tal como una cámara de video, un archivo de video que contiene video capturado previamente y/o una interfaz de alimentación de video para recibir video de un proveedor de contenido de video. Como una alternativa adicional, la fuente de video 18 genera datos basados en gráficos por ordenador como el video fuente o una combinación de video en vivo, video archivado y video generado por ordenador.
En algunos casos, cuando la fuente de video 18 es una cámara de video, el dispositivo fuente 12 y el dispositivo destino 14 forman los llamados teléfonos con cámara o teléfonos con video. Tal como se mencionó anteriormente, sin embargo, las técnicas descritas en esta exposición se pueden aplicar a codificación de video en general y se aplican a aplicaciones inalámbricas y/o por cable. En cada caso, el video capturado, precapturado o generado por ordenador se codifica mediante el codificador de video 20. Luego, la información de video codificada se genera mediante la interfaz de salida 22 en un medio legible por ordenador 16.
El medio legible por ordenador 16 incluye medios transitorios, tal como una difusión inalámbrica o transmisión de red por cable, o medios de almacenamiento (es decir, medios de almacenamiento no transitorios), tal como un disco duro, unidad flash, disco compacto, disco de video digital, disco Blu-ray u otros medios legibles por ordenador. En algunos ejemplos, un servidor de red (no mostrado) recibe datos de video codificados del dispositivo fuente 12 y proporcionar los datos de video codificados al dispositivo destino 14, por ejemplo, mediante transmisión de red. De manera similar, un dispositivo informático de una instalación de producción media, tal como una instalación de estampación de discos, recibe datos de video codificados del dispositivo fuente 12 y produce un disco que contiene los datos de video codificados. Por lo tanto, se entiende que el medio legible por ordenador 16 incluye uno o más medios legibles por ordenador de diversas formas, en varios ejemplos.
La interfaz de entrada 28 del dispositivo destino 14 recibe información del medio legible por ordenador 16. La información del medio legible por ordenador 16 incluye información de sintaxis definida por el codificador de video 20, que también se utiliza por el decodificador de video 30, que incluye elementos de sintaxis que describen características y/o procesamiento de bloques y otras unidades codificadas, por ejemplo, grupo de imágenes (GOP). El dispositivo de visualización 32 muestra los datos de video decodificados a un usuario y comprende cualquiera de una variedad de dispositivos de visualización tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos emisores de luz orgánicos (OLED) u otro tipo de dispositivo de visualización.
El codificador video 20 y el decodificador de video 30 funcionan de acuerdo con una norma de codificación de video tal como la norma de Codificación de Video de Alta Eficiencia (HEVC) actualmente en desarrollo, y cumplen con el Modelo de Prueba HEVC (HM). Alternativamente, el codificador video 20 y el decodificador de video 30 funcionan de acuerdo con otras normas patentadas o de la industria, tal como la norma H.264 del Sector de Normalización de Telecomunicaciones (ITU-T) de la Unión Internacional de Telecomunicaciones, denominada alternativamente Grupo de Expertos en Imágenes en Movimiento (MPEG)-4, Parte 10, Codificación Avanzada de Video (AVC), H.265/HEVC, o extensiones de estas normas. Las técnicas de esta exposición, sin embargo, no se limitan a ninguna norma de codificación particular. Otros ejemplos de normas de codificación de video incluyen MPEG-2 y ITU-T H.263. Aunque no se muestra en la figura 1, en algunos aspectos, el codificador de video 20 y el decodificador de video 30 se integran cada uno con un codificador y decodificador de audio e incluyen unidades de multiplexor-demultiplexor apropiadas (MUX-DEMUX) u otro hardware y software para manejar codificación de audio y video en un flujo de datos común o flujos de datos separados. Si corresponde, las unidades MUX-DEMUX cumplen con el protocolo de multiplexor ITU H.223 u otros protocolos tal como el protocolo de datagramas de usuario (UDP).
El codificador de video 20 y el decodificador de video 30 se implementa cada uno como cualquiera de una variedad de circuitería de codificador adecuada, tal como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados de aplicación específica (ASIC), matrices de puerta programable en campo (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo almacena instrucciones para el software en un medio legible por ordenador adecuado y no transitorio y ejecuta las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta exposición. Cada uno del codificador de video 20 y el decodificador de video 30 se incluyen en uno o más codificadores o decodificadores, cualquiera de los cuales está integrado como parte de un codificador/decodificador combinado (CODEC) en un dispositivo respectivo. Un dispositivo que incluye el codificador de video 20 y/o el decodificador de video 30 comprenden 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 de video 20 que implementa técnicas de codificación de video. El codificador de video 20 realiza intra- e intercodificación de bloques de video dentro de segmentos de video. La intracodificación se basa en predicción espacial para reducir o eliminar redundancia espacial en video dentro de una imagen o cuadro de video dado. La intercodificación se basa en predicción temporal para reducir o eliminar redundancia temporal en video dentro de cuadros o imágenes adyacentes de una secuencia de video. El intramodo (modo I) hace referencia a cualquiera de varios modos de codificación basados en el espacio. Los intermodos, tales como predicción unidireccional (también conocida como, unipredicción) (modo P) o bipredicción (también conocida como, bipredicción) (modo B), hacen referencia a cualquiera de varios modos de codificación basados en el tiempo.
Como se muestra en la figura 2, el codificador de video 20 recibe un bloque de video actual dentro de un cuadro de video que se va a codificar. En el ejemplo de la figura 2, el codificador de video 20 incluye una unidad de selección de modo 40, una memoria de cuadros de referencia 64, un sumador 50, una unidad de procesamiento de transformada 52, una unidad de cuantificación 54 y una unidad de codificación entrópica 56. La unidad de selección de modo 40, a su vez, incluye la unidad de compensación de movimiento 44, la unidad de estimación de movimiento 42, la unidad intrapredicción (también conocida como, intrapredicción) 46 y la unidad de partición 48. Para reconstrucción de bloques de video, el codificador de video 20 también incluye una unidad de cuantificación inversa 58, una unidad de transformada inversa 60 y un sumador 62. Un filtro de desbloqueo (no mostrado en la figura 2) también se incluye para filtrar límites de bloque para eliminar distorsiones de bloqueo de video reconstruido. Si se desea, el filtro de desbloqueo típicamente filtraría la salida del sumador 62. También se usan filtros adicionales (en bucle o post-bucle) además del filtro de desbloqueo. Estos filtros no se muestran por brevedad, pero si se desea, filtran la salida del sumador 50 (como un filtro en bucle).
Durante el proceso de codificación, el codificador video 20 recibe un cuadro o segmento de video que se va a codificar. El cuadro o segmento se divide en múltiples bloques de video. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 realizan codificación interpredictiva del bloque de video recibido con respecto a uno o más bloques en uno o más cuadros de referencia para proporcionar predicción temporal. La unidad de intrapredicción 46 realiza alternativamente codificación intrapredictiva del bloque de video recibido con respecto a uno o más bloques vecinos en el mismo cuadro o segmento que el bloque que se va a codificar para proporcionar predicción espacial. El codificador de video 20 realiza múltiples pasadas de codificación, por ejemplo, para seleccionar un modo de codificación adecuado para cada bloque de datos de video.
Además, la unidad de partición 48 particiona bloques de datos de video en subbloques sobre la base de la evaluación de esquemas de partición anteriores en pasadas de codificación anteriores. La unidad de partición 48 particiona inicialmente un cuadro o segmento en unidades de codificación más grandes (LCU) y particiona cada una de las LCU en unidades de subcodificación (sub-CU) sobre la base de análisis de velocidad-distorsión (por ejemplo, optimización de velocidad-distorsión). La unidad de selección de modo 40 produce además una estructura de datos de árbol cuádruple indicativa de partición de una LCU en sub-CU. Las CU de nodo hoja del árbol cuádruple incluyen una o más unidades de predicción (PU) y una o más unidades de transformada (TU).
La presente exposición utiliza 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 otras normas (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 de 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 la partición de la CU en una o más PU. Los modos de partición difieren entre si la CU se omite o se codifica en modo directo, se codifica en modo de intrapredicción o se codifica en modo interpredicción (también conocida como, interpredicción). Las PU se dividen para tener una forma no cuadrada. Los datos de sintaxis asociados con una CU también describen la partición de la CU en una o más TU de acuerdo con un árbol cuádruple. Una TU puede tener forma cuadrada o no cuadrada (por ejemplo, rectangular).
La unidad de selección de modo 40 selecciona uno de los modos de codificación, intra o inter, por ejemplo, sobre la base de los resultados de error, y proporciona el bloque intracodificado o intercodificado resultante al sumador 50 para generar datos de bloques residuales y al sumador 62 para reconstruir el bloque codificado para su uso como cuadro de referencia. La unidad de selección de modo 40 también proporciona elementos de sintaxis, tales como vectores de movimiento, indicadores intramodo, información de partición y otra información de sintaxis de este tipo, a la unidad de codificación entrópica 56.
La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 está altamente integrada, pero se ilustran por separado con fines conceptuales. La estimación de movimiento, realizada por unidad de estimación de movimiento 42, es el proceso de generación de vectores de movimiento, que estiman el movimiento para bloques de video. Un vector de movimiento indica el desplazamiento de una PU de un bloque de video dentro de un cuadro o imagen de video actual con respecto a un bloque predictivo dentro de un cuadro de referencia (u otra unidad codificada) con respecto al bloque actual que se codifica dentro del cuadro actual (u otra unidad codificada). Un bloque predictivo es un bloque que se encuentra que 6oincidiré estrechamente con el bloque que se codifica en términos de diferencia de píxeles, que se determina mediante suma de diferencias absolutas (SAD), suma de diferencias cuadradas (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de video 20 calcula valores para posiciones de píxeles subenteros de imágenes de referencia almacenadas en memoria de cuadros de referencia 64. El codificador de video 20 interpola valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de píxeles fraccionarios de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 realiza una búsqueda de movimiento con respecto a las posiciones de píxeles completos y posiciones de píxeles fraccionarios y producir un vector de movimiento con precisión de píxeles fraccionarios.
La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de video en un segmento intercodificado al comparar 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 de cuadros de referencia 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación entrópica 56 y la unidad de compensación de movimiento 44.
La compensación de movimiento, realizada por unidad de compensación de movimiento 44, implica recuperar o generar el bloque predictivo sobre la base del vector de movimiento determinado por unidad de estimación de movimiento 42. Nuevamente, la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 están integradas funcionalmente, en algunos ejemplos. Después de recibir el vector de movimiento para la PU del bloque de video actual, la unidad de compensación de movimiento 44 ubica el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El sumador 50 forma un bloque de video residual restando valores de píxeles del bloque predictivo de los valores de píxeles del bloque de video actual que se codifica, formando valores de diferencia de píxeles como se describe más adelante. En general, la unidad de estimación de movimiento 42 realiza estimación de movimiento con respecto a los componentes de luma, y la unidad de compensación de movimiento 44 utiliza vectores de movimiento calculados sobre la base de los componentes de luma para ambos componentes cromáticos y componentes de luma. La unidad de selección de modo 40 también generan elementos de sintaxis asociados con los bloques de video y el segmento de video para su uso por decodificador de video 30 al decodificar los bloques de video del segmento de video.
La unidad intrapredicción 46 intrapredice un bloque actual como una alternativa a la interpredicción realizada por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se describe anteriormente. En particular, la unidad de intrapredicción 46 determina un modo de intrapredicción para uso para codificar un bloque actual. En algunos ejemplos, la unidad de intrapredicción 46 codifica un bloque actual usando diversos modos de intrapredicción, por ejemplo, durante pasadas de codificación separadas, y la unidad de intrapredicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) selecciona un modo de intrapredicción adecuado para usar de los modos probados.
La unidad de intrapredicción 46 calcula valores de velocidad-distorsión usando un análisis de velocidaddistorsión para los diversos modos de intrapredicción probados y selecciona el modo de intrapredicción que tiene las mejores características de velocidad-distorsión entre los modos probados. El análisis de velocidaddistorsión generalmente determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque no codificado original que se codificó para producir el bloque codificado, así como una velocidad de bits (es decir, un número de bits) utilizada para producir el bloque codificado. La unidad de intrapredicción 46 calcula proporciones a partir de las distorsiones y velocidades para los diversos bloques codificados para determinar qué modo de intrapredicción exhibe el mejor valor de velocidad-distorsión para el bloque.
Además, se configura la unidad de intrapredicción 46 para codificar bloques de profundidad de un mapa de profundidad usando un modo de modelado de profundidad (DMM). La unidad de selección de modo 40 determina si un modo DMM disponible produce mejores resultados de codificación que un modo intrapredicción y los otros modos DMM, por ejemplo, usando optimización de velocidad-distorsión (RDO). Los datos para una imagen de textura correspondiente a un mapa de profundidad se almacenan en la memoria de cuadros de referencia 64. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 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 de intrapredicción 46 proporciona información indicativa del modo de intrapredicción seleccionado para el bloque a la unidad de codificación entrópica 56. La unidad de codificación entrópica 56 codifica la información que indica el modo de intrapredicción seleccionado. El codificador de vídeo 20 incluye en los datos de configuración de flujo de bits transmitidos, que incluyen una pluralidad de tablas de índice de modo intrapredicción y una pluralidad de tablas de índice de modo intrapredicción modificadas (también denominadas tablas de asignación de palabras de código), definiciones de contextos de codificación para varios bloques e indicaciones de un modo intrapredicción muy probable, una tabla de índice de modo intrapredicción y una tabla de índice de modo intrapredicción modificada para usar para cada uno de los contextos.
El codificador de video 20 forma un bloque de video residual restando los datos de predicción de la unidad de selección modo 40 del bloque de video original que se codifica. El sumador 50 representa el componente o componentes que realizan esta operación de resta.
La unidad de procesamiento de transformada 52 aplica una transformada, tal como una transformada discreta de coseno (DCT) o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de video que comprende valores de coeficiente de transformada residuales. La unidad de procesamiento de transformada 52 realiza otras transformadas que son conceptualmente similares a DCT. También se podrían usar transformadas wavelet, transformadas enteras, transformadas de subbanda u otros tipos de transformadas.
La unidad de procesamiento de transformada 52 aplica la transformada al bloque residual, produciendo un bloque de coeficientes de transformada residuales. La transformada convierte la información residual de un dominio de valor de pixel a un dominio de transformada tal como un dominio de frecuencia. La unidad de procesamiento de transformada 52 envía los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir aún más la velocidad de bits. El proceso de cuantificación reduce la profundidad de bits asociada con algunos o todos los coeficientes. El grado de cuantificación se modifica ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad de cuantificación 54 realiza entonces un escaneo de la matriz que incluye los coeficientes de transformada cuantificados. Alternativamente, la unidad de codificación entrópica 56 realiza el escaneo.
Después de la cuantificación, la unidad de codificación entrópica 56 codifica por entropía los coeficientes de transformada cuantificados. La unidad de codificación entrópica 56 realiza codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC), codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), codificación entrópica de partición de intervalo de probabilidad (PIPE) u otra técnica de codificación entrópica. En el caso de codificación entrópica basada en contexto, el contexto se basa en bloques vecinos. Después de la codificación entrópica por la unidad de codificación entrópica 56, el flujo de bits codificado se transmite a otro dispositivo (por ejemplo, decodificador de video 30) o archivarse para su posterior transmisión o recuperación.
La unidad de cuantificación inversa 58 y la unidad de transformada inversa 60 aplican cuantificación inversa y transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para su uso posterior como un bloque de referencia. La unidad de compensación de movimiento 44 calcula un bloque de referencia al añadir el bloque residual a un bloque predictivo de uno de los cuadros de la memoria de cuadros de referencia 64. La unidad de compensación de movimiento 44 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 suma el bloque residual reconstruido con el bloque de predicción compensado en movimiento, producido por la unidad de compensación de movimiento 44 para producir un bloque de video reconstruido para almacenamiento en la memoria de cuadros de referencia 64. El bloque de video reconstruido se usa por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como un bloque de referencia para intercodificar un bloque en un cuadro de video posterior.
La figura 3 es un diagrama de bloques que ilustra un ejemplo de decodificador de video 30 que implementa técnicas de codificación de video. En el ejemplo de la figura 3, el decodificador de video 30 incluye una unidad de decodificación entrópica 70, una unidad de compensación de movimiento 72, una unidad intrapredicción 74, una unidad de cuantificación inversa 76, una unidad de transformada inversa 78, una memoria de cuadros de referencia 82 y un sumador 80. El decodificador de video 30, en algunos ejemplos, realiza una pasada de decodificación generalmente recíproca a la pasada de codificación descrita con respecto al codificador de video 20 (figura 2). La unidad de compensación de movimiento 72 genera datos de predicción sobre la base de vectores de movimiento recibidos de la unidad de decodificación entrópica 70, mientras que la unidad de intrapredicción 74 genera datos de predicción sobre la base de indicadores de modo de intrapredicción recibidos de la unidad de decodificación entrópica 70.
Durante el proceso de decodificación, el decodificador de video 30 recibe un flujo de bits de video codificado que representa bloques de video de un segmento de video codificado y elementos de sintaxis asociados del codificador de video 20. La unidad de decodificación entrópica 70 del decodificador de video 30 decodifica el flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo intrapredicción y otros elementos de sintaxis. La unidad de decodificación entrópica 70 reenvía los vectores de movimiento y otros elementos de sintaxis a la unidad de compensación de movimiento 72. El decodificador de video 30 recibe los elementos de sintaxis al nivel de segmento de video y/o al nivel de bloque de video.
Cuando el segmento de video se codifica como un segmento intracodificada (I), la unidad de intrapredicción 74 genera datos de predicción para un bloque de video del segmento de video actual sobre la base de un modo de intrapredicción señalizado y datos de bloques previamente decodificados del cuadro o imagen actual. Cuando el cuadro de video se codifica como un segmento intercodificado (por ejemplo, B, P o GPB), la unidad de compensación de movimiento 72 produce bloques predictivos para un bloque de video del segmento de video actual sobre la base de los vectores de movimiento y otros elementos de sintaxis recibidos de la unidad de decodificación entrópica 70. 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 de video 30 construye las listas de cuadros de referencia, Lista 0 y Lista 1, usando técnicas de construcción por defecto basadas en imágenes de referencia almacenadas en memoria de cuadros de referencia 82.
La unidad de compensación de movimiento 72 determina la información de predicción para un bloque de video del segmento de video actual mediante el análisis de los vectores de movimiento y otros elementos de sintaxis y utiliza la información de predicción para producir los bloques predictivos para el bloque de video actual que se decodifica. La unidad de compensación de movimiento 72 utiliza algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra o interpredicción) utilizado para codificar los bloques de video del segmento de video, un tipo de segmento de interpredicción (por ejemplo, segmento B, segmento P o segmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el segmento, vectores de movimiento para cada bloque de video intercodificado del segmento, estado de interpredicción para cada bloque de video intercodificado del segmento y otra información para decodificar los bloques de video en el segmento de video actual.
La unidad de compensación de movimiento 72 también realiza interpolación sobre la base de filtros de interpolación. La unidad de compensación de movimiento 72 usa filtros de interpolación como se usa por codificador de video 20 durante la codificación de los bloques de video para calcular valores interpolados para píxeles subenteros de bloques de referencia. En este caso, la unidad de compensación de movimiento 72 determina los filtros de interpolación utilizados por codificador de video 20 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 de cuadros de referencia 82. La unidad de compensación de movimiento 72 también se configura para interpredecir bloques de profundidad de un mapa de profundidad.
La compresión de imagen y video ha experimentado un rápido crecimiento, lo que lleva a varias normas de codificación. Estas normas de codificación de video incluyen ITU-T H.261, Grupo de Expertos en Imágenes en Movimiento (MPEG)-1 Parte 2 ISO/IEC, ITU-T H.262 u Organización Internacional de Normalización (ISO)/Comisión Electrotécnica Internacional (IEC) MPEG-2 Parte 2, ITU-T H.263, ISO/IEC MPEG-4 Parte 2, Codificación Avanzada de Video (AVC), también conocida como ITU-T H.264 o ISO/IEC MPEG-4 Parte 10, y<Codificación de Video de Alta Eficiencia (HEVC), también conocida como ITU-T H.265 o MPEG-H Parte 2.>A<v>C incluye extensiones tales como Codificación de Video Escalable (SVC), Codificación de Video Multivista (MVC)<y Codificación de Video Multivista más Profundidad (MVC+D), y>A<v>C 3<d (3D-AVC). HEVC incluye extensiones>tales como HEVC escalable (SHVC), HEVC multivista (MV-HEVC) y HEVC 3D (3D-HEVC).
La codificación de video versátil (VVC) es una nueva norma de codificación de video en desarrollo por el Joint Collaborative Team on Video Coding (JVET) del ITU-T y la ISO/IEC. Al momento de escribir este artículo, el<último borrador de trabajo (WD) de v>V<c se incluye en JVET-K1001-v1. El documento JVET JVET-K0325-v3>incluye una actualización de la sintaxis de alto nivel de VVC.
En general, la presente exposició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ódec de video/medios.
Las técnicas de compresión de video realizan predicción espacial (intra-imagen) y/o predicción temporal (inter imagen) para reducir o eliminar redundancia inherente en secuencias de video. Para codificación de video basada en bloques, un segmento de video (por ejemplo, una imagen de video o una porción de una imagen de video) se puede dividir en bloques de video, que también se refieren como bloques de árbol, bloques de árbol de codificación (CTB), unidades de árbol de codificación (CTU), unidades de codificación (CU) y/o nodos de codificación. Los bloques de video en un segmento intracodificado (I) de una imagen se codifican usando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de video en un segmento intercodificado (P o B) de una imagen usan predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes se denominan cuadros, y las imágenes de referencia se denominan cuadros de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para que se codifique un bloque. Los datos residuales representan diferencias de píxeles entre el bloque original que se va a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forma el bloque predictivo, y los datos residuales indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificación y los datos residuales. Para una compresión adicional, los datos residuales se transforman del dominio de píxeles a un dominio de transformada, que da como resultado coeficientes de transformada residuales, que luego se cuantifican. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una disposición bidimensional, se escanean para producir un vector unidimensional de coeficientes de transformada, y se aplica codificación entrópica para lograr aún más compresión.
En una especificación de códec de video, las imágenes se identifican para múltiples propósitos, incluso para su uso como una imagen de referencia en inter-predicción, para la salida de imágenes de la memoria intermedia de imágenes decodificadas (DPB), para modificar escala de vectores de movimiento, para predicción ponderada, etc. En AVC y HEVC, las imágenes se pueden identificar mediante conteo de orden de imagen (POC). En AVC y HEVC, las imágenes en la 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 predicción. Cuando la imagen ya no es necesaria para la salida, la imagen se puede eliminar de la DPB.
En AVC, hay dos tipos de imágenes de referencia, a corto y largo plazo. Una imagen de referencia se marca como “no utilizada para referencia” cuando ya no se necesita para referencia de predicción. La conversión entre estos tres estados (corto plazo, largo plazo y no utilizado para 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 decodificada, el proceso de ventana deslizante implícito y el proceso de operación de control de gestión de memoria explícita (MMCO). El proceso de ventana deslizante marca una imagen de referencia a corto plazo como “no utilizada para referencia” cuando el número de cuadros de referencia es igual a un número máximo dado (max_num_ref_frames en el conjunto de parámetros de secuencia (SPS)). Las imágenes de referencia a corto plazo se almacenan de una manera de primera entrada y primera salida para<que las imágenes a corto plazo decodificadas más recientemente se mantengan en la d>PB.
El proceso MMCO explícito incluye múltiples comandos MMCO. Un comando MMCO marca una o más imágenes de referencia a corto plazo 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 asignar 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 para salida y eliminación de imágenes de la DPB se realizan después de que se ha decodificado una imagen.
La HEVC introduce un enfoque diferente para la gestión de imágenes de referencia, denominado conjunto de imágenes de referencia (RPS). La diferencia más fundamental con el concepto RPS en comparación con el proceso MMCO/ventana deslizante de AVC es que para cada segmento 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 indica un conjunto completo de todas las imágenes que se deben mantener en la DPB para su uso por la imagen actual o futura. Esto es diferente del esquema AVC donde solo se señalizan cambios relativos a la 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 la DPB.
El orden de las operaciones de decodificación de imágenes y DPB en HEVC se cambia en comparación con AVC para aprovechar las ventajas de RPS y mejorar la resiliencia a errores. En AVC, las operaciones de marcado de imágenes y memoria intermedia (tanto salida como eliminación de imágenes decodificadas de la DPB) se aplican generalmente después de que se ha decodificado una imagen actual. En HEVC, el RPS se decodifica primero de una cabecera de segmento de la imagen actual, luego se aplican generalmente operaciones de marcado de imágenes y memoria intermedia antes de decodificar la imagen actual.
Cada cabecera de segmento en HEVC debe incluir parámetros para señalización del RPS para la imagen que contiene los segmentos. La única excepción es que no se señaliza RPS para segmentos de actualización de decodificación instantánea (IDR). En cambio, se infiere que el RPS está vacío. Para segmentos 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 la interpredicción de imágenes que precedieron a la imagen I en orden de decodificación. El número de imágenes en un RPS no excederá el límite de tamaño DPB como se especifica por el elemento de sintaxis sps_max_dec_pic_buffering en el SPS.
Cada imagen se asocia con un valor POC que representa el orden de salida. Las cabeceras de segmento contienen una palabra de código de longitud fija, pic_order_cnt_lsb, que representa los bits menos significativos (LSB) del valor POC completo, también conocidos como los POC<l>S<b>. La longitud de la palabra de código se indica en el SPS y puede ser, por ejemplo, entre 4 y 16 bits. El concepto RPS utiliza POC para identificar imágenes de referencia. Además de su propio valor POC, cada cabecera de segmento contiene directamente o hereda del SPS una representación codificada de los valores POC (o LSB) de cada imagen en el RPS.
El RPS para cada imagen consta de cinco listas diferentes de imágenes de referencia, también referidas a 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 de decodificación y orden de salida, y que se pueden utilizar 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 interpredicción de la imagen actual. RefPicSetStFoll consiste en todas las imágenes de referencia a corto plazo que se utilizan en 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 interpredicción de la imagen actual. RefPicSetLtCurr consiste en todas las imágenes de referencia a largo plazo que se usan para interpredecir la imagen actual. RefPicSetLtFoll consiste en todas las imágenes de referencia a largo plazo que se utilizan en interpredicción de una o más de las imágenes después de la imagen actual en orden de decodificación y que no se utilizan en interpredicción de la imagen actual.
El RPS se señaliza utilizando hasta tres bucles iterando a través de 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 una bandera (used_by_curr_pic_X_flag) para cada imagen de referencia que indica si la imagen de referencia se utiliza como referencia por la imagen actual (incluida en una de las listas RefPicSetStCurrBefore, RefPicSetStCurrAfter o RefPicSetLtCurr) o no (incluida en una de las listas RefPicSetStFoll o RefPicSetLtFoll).
La 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 en 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 en el subconjunto 402 denominada RefPicSetStCurrBefore porque la imagen está antes en orden de salida y es utilizada por B14. P12 es la imagen en el subconjunto 402 denominada RefPicSetStCurrAfter porque la imagen es posterior en orden de salida y utilizada por B14. P13 es la imagen en el subconjunto 402 denominada RefPicSetStFoll porque la imagen es una imagen de referencia a corto plazo no utilizada por B14 (pero se debe mantener en la DPB ya que se utiliza por B15). P4 es la imagen en el subconjunto 402 denominada RefPicSetLtCurr porque la imagen es una imagen de referencia a largo plazo utilizada por B14. I0 es la imagen en el subconjunto 402 denominada RefPicSetLtFoll ya que la imagen es una imagen de referencia a largo plazo no utilizada por la imagen actual (pero se debe mantener en la DPB ya que se utiliza por B15).
La parte a corto plazo del RPS 400 se incluye directamente en la cabecera de segmento. Alternativamente, la cabecera de segmento contiene solo un elemento de sintaxis que representa un índice, haciendo referencia a una lista predefinida de RPS enviados en el SPS activo. La parte a corto plazo del RPS 402 se puede señalizar usando cualquiera de dos esquemas diferentes; Inter RPS, como se describe a continuación, 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 POC negativa y diferencia POC positiva en comparación con la imagen actual, respectivamente. Cada elemento en estas listas se codifica con un código de longitud variable que representa la diferencia en el valor POC con respecto al elemento anterior en 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 conoce como Inter RPS. No hay problemas de robustez de error asociados con este método, ya que todos los RPS del conjunto de parámetros de secuencia se encuentran en la misma unidad de capa de abstracción de red (NAL). La sintaxis Inter RPS aprovecha el hecho de que el RPS 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 imágenes de referencia de la imagen anterior o la imagen previamente decodificada en sí misma. Solo es necesario indicar cuáles de estas imágenes deben ser imágenes de referencia y usarse para predecir la imagen actual. Por lo tanto, la sintaxis comprende lo siguiente: un índice que apunta al RPS para usar como un predictor, un delta_POC que se va a añadir al delta_POC del predictor para obtener el delta POC del RPS actual, y un conjunto de indicadores para indicar qué imágenes son imágenes de referencia y si solo se utilizan 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 SPS long_term_ref_pics_present_flag en uno. Las imágenes de referencia a largo plazo luego se pueden señalar en la cabecera de segmento mediante palabras de código de longitud fija, poc_lsb_lt, que representan los bits menos significativos del valor POC completo de cada imagen a largo plazo. Cada poc_lsb_lt es una copia de la palabra de código pic_order_cnt_lsb que se indicó para una imagen particular a largo plazo. También es posible señalar un conjunto de imágenes a largo plazo en el SPS como una lista de valores POC LSB. Los p Oc LSB para una imagen a largo plazo luego se pueden señalizar en la cabecera de segmento como un índice de esta lista.
El elemento de sintaxis delta_poc_msb_cycle_lt_minus1 se puede señalizar además para permitir el cálculo de la distancia POC completa de una imagen de referencia a largo plazo con respecto a la imagen actual. Se requiere que la palabra de código delta_poc_msb_cycle_lt_minus1 se indique para cada imagen de referencia a largo plazo que tiene el mismo valor POC LSB que cualquier otra imagen de referencia en el RPS.
Para el marcado de imágenes de referencia en HEVC, normalmente habrá un número de imágenes presentes en la DPB antes de la decodificación de imágenes. Algunas de las imágenes pueden estar disponibles para predicción y, como tal, marcadas como “utilizadas para referencia”. Otras imágenes pueden no estar disponibles para predicción, pero están esperando salida y, como tal, marcadas como “no utilizadas para referencia”. Cuando se ha analizado la cabecera de segmento, se lleva a cabo un proceso de marcado de imágenes antes de decodificar los datos de segmento. Las imágenes que están presentes en la DPB y marcadas como “utilizadas para referencia” pero no incluidas en el RPS se marcan como “no utilizadas para referencia”. Las imágenes que no están presentes en la DPB pero están incluidas 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 en su lugar es igual a uno, esta imagen de referencia estaba destinada a que se utilice para la predicción en la imagen actual, pero no se encuentra. Luego se infiere una pérdida de imagen involuntaria y el decodificador debe tomar las medidas apropiadas.
Después de decodificar la imagen actual, se marca “utilizada para referencia a corto plazo”.
A continuación, se analiza la construcción de una lista de imágenes de referencia en HEVC. En HEVC, el término interpredicción se utiliza para denotar predicción derivada de elementos de datos (por ejemplo, valores de muestra o vectores de movimiento) de imágenes de referencia que no sean 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 interpredicción se organizan en una o más listas de imágenes de referencia. El índice de referencia identifica cuáles de las imágenes de referencia de la lista se deben usar para crear la señal de predicción.
Se usa una sola lista de imágenes de referencia, Lista 0, para un segmento P y dos listas de imágenes de referencia, Lista 0 y Lista 1 se usan para segmentos B. De manera similar a AVC, la construcción de una lista de imágenes de referencia en HEVC incluye la inicialización de una lista de imágenes de referencia y la modificación de una lista de imágenes de referencia.
En AVC, el proceso de inicialización para la Lista 0 es diferente para los segmentos P (para los que se utiliza orden de decodificación) y B (para los que se utiliza 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 Lista 0 y Lista 1 predeterminadas (si el segmento es un segmento B) basadas en tres subconjuntos RPS: RefPicSetStCurrBefore, RefPicSetStCurrAfter y RefPicSetLtCurr. Las imágenes a corto plazo con 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 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 en RefPicSetStCurrBefore se insertan en la lista inicial, seguidas por las entradas en RefPicSetStCurrAfter. Posteriormente, se anexan las entradas en RefPicSetLtCurr, si están disponibles.
En HEVC, el proceso anterior se repite (las imágenes de referencia que ya se han añadido a la lista de imágenes de referencia se añaden nuevamente) cuando el número de entradas en una lista es menor que el número objetivo de imágenes de referencia activas (señalado en el conjunto de parámetros de imagen o cabecera de segmento). Cuando el número de entradas es mayor que el número objetivo, la lista se trunca.
Después de que se ha inicializado una lista de imágenes de referencia, se puede modificar de modo que las imágenes de referencia para la imagen actual se dispongan en cualquier orden, incluyendo el caso en el que una imagen de referencia particular aparece en más de una posición en la lista, sobre la base de los comandos de modificación de lista de imágenes de referencia. Cuando la bandera que indica la presencia de modificaciones de lista se establece en uno, se indica 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 a la lista de imágenes de referencia para la imagen actual derivada de la señalización RPS. Esto es diferente de la modificación de la lista de imágenes de referencia en H.264/AVC, identificándose una imagen ya sea por el número de imagen (derivado del elemento de sintaxis frame_num) o el índice de imágenes de referencia a largo plazo, y es posible que se necesiten menos comandos, por ejemplo, para intercambiar las dos primeras entradas de una lista inicial o insertar una entrada al comienzo de la lista inicial y desplazar las otras.
No se permite que una lista de imágenes de referencia incluya cualquier imagen de referencia con un TemporalId mayor que la imagen actual. Un flujo de bits HEVC consiste en varias subcapas temporales. Cada unidad NAL pertenece a una subcapa específica como se indica mediante TemporalId (igual a temporal_id_plus1 - 1).
La gestión de imágenes de referencia se basa directamente en listas de imágenes de referencia. El documento JCT-VC JCTVC-G643 incluye un enfoque para usar directamente tres listas de imágenes de referencia, lista de imágenes de referencia 0, lista de imágenes de referencia 1 y una lista de imágenes de referencia inactiva, para la gestión de las imágenes de referencia en la DPB, evitando así la necesidad de los procesos de señalización y decodificación que incluye 1) la ventana deslizante y los procesos MMCO, así como los procesos de inicialización y modificación de lista de imágenes de referencia en AVC, o 2) el conjunto de imágenes de referencia, así como los procesos de inicialización y modificación de 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 implica la ventana deslizante, los procesos MMCO y los procesos de inicialización y modificación de una lista de imágenes de referencia, que son complejos. Además, la pérdida de imágenes conduce a la pérdida del estado de la DPB en términos de qué imágenes deberían haber estado en la DPB para propósito de referencia interpredicción adicional. El enfoque HEVC no tiene el problema de pérdida de estado DPB. Sin embargo, el enfoque HEVC implica un proceso complejo de señalización y derivación de un conjunto de imágenes de referencia, así como los procesos de inicialización y modificación de una lista de imágenes de referencia, que son complejos. El enfoque en JCTVC-G643 para usar directamente tres listas de imágenes de referencia, lista de imágenes de referencia 0, lista de imágenes de referencia 1, así como una lista de imágenes de referencia inactiva, para gestión de las imágenes de referencia en la DPB implica los siguientes aspectos: una tercera lista de imágenes de referencia, es decir, la lista de imágenes de referencia inactiva; la codificación de dos partes de diferencias POC como una parte “a corto plazo” y una parte codificada por ue(v) “a largo plazo"; la granularidad POC basada en TemporalId para codificación de diferencia POC, uso de la codificación de dos partes de diferencias POC para determinar el marcado entre “utilizada para referencia a corto plazo” o “utilizada para referencia a largo plazo”; una descripción de subconjunto de lista de imágenes de referencia, que permite la capacidad de especificar una lista de imágenes de referencia eliminando imágenes de referencia de la cola de una cierta descripción de lista de imágenes de referencia anterior; el modo de copia de lista de imágenes de referencia activado por el elemento de sintaxis ref_pic_list_copy_flag; y el proceso de descripción de lista 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 señalización del ciclo POC en cabeceras de segmento. Esto no es eficiente.
Con el fin de abordar los problemas enumerados anteriormente, en la presente memoria se describen las siguientes soluciones, cada una de las cuales se puede aplicar individualmente y algunas de las cuales se pueden aplicar en combinación. 1) El marcado de imágenes de referencia se basa directamente en las dos listas de imágenes de referencia, es decir, lista de imágenes de referencia 0 y lista de imágenes de referencia 1. 1a) La información para la derivación de las dos listas de imágenes de referencia se señala sobre la base de los elementos de sintaxis y las estructuras de sintaxis en el SPS, PPS y/o la cabecera de segmento. 1b) Cada una de las dos listas de imágenes de referencia para una imagen se indica 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 se pueden señalizar en SPS y cada una de ellas se puede referir mediante un índice de la cabecera de segmento. 1b.ii) Cada una de las listas de imágenes de referencia 0 y 1 se puede señalizar directamente en la cabecera de segmento. 2) La información para la derivación de las dos listas de imágenes de referencia se señala para todos los tipos de segmentos, es decir, segmentos B (bipredictivos), P (unipredictivos) e I (intra).
El término segmento se refiere a una recolección de unidades de árbol de codificación tal como un segmento en HEVC o el último WD de VVC; también puede hacer referencia a alguna otra recolección de unidades de árbol de codificación tal como un mosaico en HEVC. 3) Las dos listas de imágenes de referencia se generan para todos los tipos de segmentos, es decir, segmentos B, P e I. 4) Las dos listas de imágenes de referencia se construyen directamente sin usar un proceso de inicialización de 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 interpredicción de la imagen actual solo se pueden hacer referencia mediante un número de entradas al comienzo de la lista. Estas entradas se refieren como las entradas activas en la lista, mientras que otras entradas se refieren como las entradas inactivas en la lista. El número de las entradas totales y el número de las entradas activas en la lista se pueden derivar. 6) La imagen a la que se hace referencia mediante una entrada inactiva en una lista de imágenes de referencia no se permite que se haga referencia mediante otra entrada en la lista de imágenes de referencia o cualquier entrada en la otra lista de imágenes de referencia. 7) Las imágenes de referencia a largo plazo solo se identifican mediante un cierto número de POC LSB, donde este número es mayor que el número de POC LSB señalado en las cabeceras de segmento para derivació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 solo en cabeceras de segmento, tanto las imágenes de referencia a corto plazo como las imágenes de referencia a largo plazo se identifican por sus POC LSB, que están representadas por números de bits que son diferentes del número de bits utilizados para representar los POC LSB señalizados en cabeceras de segmento para derivación de valores POC, y los números de bits utilizados para representar los POC LSB para identificar imágenes de referencia a corto plazo e imágenes de referencia a largo plazo son diferentes. 9) Las estructuras de lista de imágenes de referencia se señalizan solo en cabeceras de segmento, no se hace distinción entre imágenes de referencia a corto plazo y a largo plazo, todas las imágenes de referencia se denominan solo imágenes de referencia y las imágenes de referencia se identifican por sus POC LSB, que se representa por un número de bits que es diferente del número de bits utilizados para representar los POC LSB señalizados en cabeceras de segmento para derivación de valores POC.
Se proporciona una primera forma de realización de la presente exposición. La descripción es relativa al último<VVC>W<d>.<En esta realización, se señalan dos conjuntos de estructuras de lista de imágenes de referencia en>el SPS, uno para cada una de lista de imágenes de referencia 0 y lista de imágenes de referencia 1.
Se proporcionan definiciones para algunos de los términos utilizados 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 video (VCL) tiene nal_unit_type igual a IRAP_NUT. Imagen no IRAP: una imagen codificada para la cual cada unidad VCL NAL 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 interpredicción de un segmento P o B. Se generan dos listas de imágenes de referencia, lista de imágenes de referencia 0 y lista de imágenes de referencia 1, para cada segmento de una imagen no IRAP. El conjunto de imágenes únicas a las que se hace referencia mediante todas las entradas en las dos listas de imágenes de referencia asociadas con una imagen consiste en todas las imágenes de referencia que se utiliza para interpredicción de la imagen asociada o cualquier imagen que sigue a la imagen asociada en orden de decodificación. Para decodificar los datos de segmento de un segmento P, solo se utiliza la lista de imágenes de referencia 0 para interpredicción. Para decodificar los datos de segmento de un segmento B, ambas listas de imágenes de referencia se utilizan para interpredicción. Para decodificar los datos de segmento de un segmento I, no se utiliza una lista de imágenes de referencia para interpredicción. Imagen de referencia a largo plazo (LTRP): una imagen que se marca como “utilizada para referencia a largo plazo”. Imagen de referencia a corto plazo (STRP): imagen que se marca como “utilizada para referencia a corto plazo”.
Los términos “utilizados para referencia a corto plazo”, "utilizados para referencia a largo plazo” o “no utilizados para referencia” se definen en VVC en la sección 8.3.3 Proceso de decodificación para marcado de imágenes de referencia, se definen en HEVC en la sección 8.3.2 Proceso de decodificación para 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. Como se usa en la presente memoria, los términos tienen el mismo significado.
La sintaxis y semántica relevantes para la primera realización se proporcionan a continuación.
Sintaxis de cabecera de unidad NAL.
Sintaxis de carga útil de secuencia de bytes sin procesar (RBSP) de conjunto de parámetros de secuencia.
Sintaxis RBSP de conjunto de parámetros de imagen.
Sintaxis de cabecera de segmento.
______________________________________________________________________________ Estructura de lista de imágenes de referencia.
_______________________________________________________________________________ Semántica de cabecera de unidad NAL.
Un forbidden_zero_bit deberá ser igual a 0. nal_unit_type especifica el tipo de estructura de datos RBSP contenido en la unidad NAL.
Tabla 7-1 - códigos de tipo de unidad NAL y clases de tipo de unidad NAL
El nuh_temporal_id_plus1 menos 1 especifica un identificador temporal para la unidad NAL. El valor de nuh_temporal_id_plus1 no debe ser igual a 0. La variable TemporalId se especifica de la siguiente manera: Temporalld = nuh_temporal_id_plus1 - 1. Cuando nal_unit_type es igual a IRA<p>_NUT, el segmento codificado pertenece a una imagen IRAP, TemporalId debe ser igual a 0. El valor de TemporalId debe ser el mismo para todas las unidades VCL NAL de una unidad de acceso. El valor de TemporalId de una imagen codificada o una unidad de acceso es el valor de TemporalId de las unidades VCL NAL de la imagen codificada o la unidad de acceso. El valor de TemporalId para unidades VCL NAL se restringe de la siguiente manera: Si nal_unit_type es igual a SPS_NUT, TemporalId debe ser igual a 0 y TemporalId de la unidad de acceso que contiene la unidad NAL debe ser igual a 0. De lo contrario, si nal_unit_type es igual a EOS_NUT o EOB_<n>U<t>, TemporalId debe ser igual a 0. De lo contrario, TemporalId debe ser mayor que o igual al 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 TemporalId de todas las unidades de acceso a las que se aplica la unidad no VCL NAL. Cuando nal_unit_type es igual a PPS_NUT, TemporalId puede ser mayor o igual que TemporalId de la unidad de acceso de contención, ya que todos los conjuntos de parámetros de imagen (PpS) se pueden incluir al comienzo de un flujo de bits, teniendo la primera imagen codificada TemporalId igual a 0. Cuando nal_unit_type es igual a PREFIX_SEI_NUT o SUFFIX_SEI_NUT, TemporalId puede ser mayor que o igual a TemporalId de la unidad de acceso contención, ya que una unidad NAL SEI contiene información que se aplica a un subconjunto de flujo de bits que incluye unidades de acceso para las cuales los valores TemporalId son mayores que el TemporalId de la unidad de acceso que contiene la unidad NAL SEI. nuh_reserved_zero_7bits debe ser igual a '0000000'. Otros valores de nuh_reserved_zero_7bits se especifican en el futuro por ITU-T | ISO/IEC. Los decodificadores ignorarán (es decir, eliminarán del flujo de bits y descartarán) unidades NAL con valores de nuh_reserved_zero_7bits no igual a '0000000'.
Semántica de conjunto de parámetros de secuencia RBSP.
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 conteo de orden de imagen de la siguiente manera: MaxPicOrderCntLsb = 2 (log2_max_pic_order_cnt_lsb_minus4 4). El valor de log2_max_pic_order_cnt_lsb_minus4 debe estar comprendido entre 0 y 12, ambos inclusive. sps_max_dec_pic_buffering_minus1 más 1 especifica el tamaño máximo requerido de la memoria intermedia de imágenes decodificadas para el CVS en unidades de memorias intermedias de almacenamiento de imágenes. El valor de sps_max_dec_pic_buffering_minus1 debe 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 utiliza LTRP para interpredicción de cualquier imagen codificada en la CVS. long_term_ref_pics_flag igual a 1 especifica que LTRP se puede utilizar para 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_lsb). El valor de additional_lt_poc_lsb debe estar en el intervalo de 0 a 32 -log2_max_pic_order_cnt_lsb_minus4 - 4, inclusive. Cuando no está presente, se infiere que el valor de additional_lt_poc_lsb es igual a 0. num_ref_pic_lists_in_sps[i] especifica el número de estructuras de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) con listIdx igual a i incluidas en el SPS. El valor num_ref_pic_lists_in_sps[i] debe estar comprendido entre 0 y 64, ambos inclusive. Para cada valor de listIdx (igual a 0 o 1), un decodificador debe asignar memoria para un número total de estructuras de sintaxis num_ref_pic_lists_in_sps[i] 1 ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) ya que hay una estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) directamente señalada en las cabeceras de segmento de una imagen actual.
Semántica de conjunto de parámetros de imagen RBSP.
Un num_ref_idx_default_active_minus1[i] más 1, cuando i es igual a 0, especifica el valor inferido de la variable NumRefIdxActive[0] para segmentos P o B con num_ref_idx_active_override_flag igual a 0, y, cuando i es igual a 1, especifica el valor inferido de NumRefIdxActive[1] para segmentos B con num_ref_idx_active_override_flag igual a 0. El valor de num_ref_idx_default_active_minus1[i] debe estar comprendido entre 0 y 14, ambos inclusive.
Semántica de cabecera de segmento.
Cuando está presente, el valor de cada uno de los elementos de sintaxis de cabecera de segmento slice_pic_parameter_set_id y slice_pic_order_cnt_lsb debe ser el mismo en todos las cabeceras de segmento de una imagen codificada. ... slice_type especifica el tipo de codificación del segmento de acuerdo con la Tabla 7-3.
Tabla 7-3 - Asociación de nombre a slice_type
Cuando nal_unit_type es igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type debe ser igual a 2. ... slice_pic_order_cnt_lsb especifica el módulo de conteo de orden de imagen MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice_pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de slice_pic_order_cnt_lsb debe estar en el intervalo de 0 a MaxPicOrderCntLsb - 1, inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se infiere que slice_pic_order_cnt_lsb es igual a 0. ref_pic_list_sps_flag[i] igual a 1 especifica que la lista de imágenes de referencia i de la imagen actual se deriva sobre la base de una de las estructuras de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) con listIdx igual a i en el SPS activo. ref_pic_list_sps_flag[i] igual a 0 especifica que la lista de imágenes de referencia i de la imagen actual se deriva 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 las cabeceras de segmento 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] debe ser igual a 0. ref_pic_list_idx[i] especifica el índice, en la lista de estructuras de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) con listIdx igual a i incluidas en el SPS activo, de la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) con listIdx igual a i que se utiliza para derivar la lista de imágenes de referencia i de la imagen actual. El elemento de sintaxis ref_pic_list_idx[i] se representa por bits Ceil(Log2(num_ref_pic_lists_in_sps[i]). Cuando no está presente, se infiere que el valor de ref_pic_list_idx[i] es igual a 0. El valor de ref_pic_list_idx[i] deberá estar en el intervalo de 0 a num_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 segmentos P y B y que el elemento de sintaxis num_ref_idx_active_minus1[1] está presente para segmentos B. num_ref_idx_active_override_flag igual a 0 especifica que los elementos de sintaxis num_ref_idx_active_minus1[0] y num_ref_idx_active_minus1[1] no están presentes. num_ref_idx_active_minus1[i], cuando está presente, especifica el valor de la variable NumRefIdxActive[i] de la siguiente manera: NumRefIdxActive[i] = num_ref_idx_active_minus1[i] 1. El valor de num_ref_idx_active_minus1[i] debe estar comprendido entre 0 y 14, ambos inclusive.
El valor de NumRefIdxActive[i] - 1 especifica el índice de referencia máximo para la lista de imágenes de referencia i que se usa para decodificar el segmento. Cuando el valor de NumRefIdxActive[i] es igual a 0, no se usa ningún índice de referencia para la lista de imágenes de referencia i para decodificar el segmento. Para 1 igual a 0 o 1, cuando el segmento actual es un segmento B y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[i] es igual a num_ref_idx_default_active_minus1[i] 1. Cuando el segmento actual es un segmento P y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[0] es igual a num_ref_idx_default_active_minus1[0] 1. Cuando el segmento actual es un segmento P, se infiere que NumRefIdxActive[1] es igual a 0. Cuando el segmento actual es un segmento I, se infiere que tanto NumRefIdxActive[0] como NumRefIdxActive[1] son iguales a 0.
Alternativamente, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: permítase que rplsIdx1 sea igual a ref_pic_list_sps_flag[i]? ref_pic_list_idx[i]: num_ref_pic_lists_in_sps[i], y numRpEntries[i] sea igual a num_strp_entries[i][rplsIdx1] num_ltrp_entries[i][rplsIdx1]. Cuando NumRefIdxActive[i] es mayor que numRpEntries[i], el valor de NumRefIdxActive[i] se establece igual a numRpEntries[i]
Semántica de estructura de lista de imágenes de referencia.
La estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) está presente en un SPS o en una cabecera de segmento. Dependiendo de si la estructura de sintaxis está incluida en una cabecera de segmento o en un SPS, se aplica lo siguiente: si está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) especifica la lista de imágenes de referencia listIdx de la imagen actual (la imagen que contiene el segmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) especifica un candidato para lista de imágenes de referencia Idx, y el término “la imagen actual” en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tiene uno o más segmentos que contienen ref_pic_list_idx[listIdx] igual a un índice en la lista de estructuras de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) incluidas en el SPS, y 2) está en un CVS que tiene el SPS como el SPS activo. num_strp_entries[listIdx][rplsIdx] especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag). num_ltrp_entries[listIdx][rplsIdx] especifica el número de entradas LTRP en la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag). Cuando no está presente, se infiere que el valor de num_ltrp_entries[listIdx][rplsIdx] es igual a 0. La variable NumEntriesInList[listIdx][rplsldx] se deriva de la siguiente manera: NumEntriesInList[listIdx][rplsIdx] = num_strp_entries[listIdx][rplsIdx] num_ltrp_entries[listIdx] [rplsIdx]. El valor de NumEntriesInList[listIdx][rplsIdx] deberá 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][rplsIdx][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 infiere 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, deberá ser igual a num_ltrp_entries[listIdx][rplsIdx]. delta_poc_st[listIdx][rplsIdx][i], cuando la i-ésima entrada es la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct(rplsIdx, ltrpFlag), especifica la diferencia entre los valores de conteo de orden de imagen de la imagen actual y la imagen a que se refiere 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 conteo de orden de imagen de las imágenes referidas por la i-ésima entrada y por la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag). El valor de delta_poc_st[listIdx][rplsIdx][i] debe estar en el intervalo de -215 a 215 - 1, ambos inclusive. poc_lsb_lt[listIdx][rplsIdx][i] especifica el valor del módulo de conteo de orden de imagen MaxLtPicOrderCntLsb de la imagen a la que se hace referencia por la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag). La longitud del elemento de sintaxis poc_lsb_lt[listIdx][rplsIdx][i] es Log2(MaxLtPicOrderCntLsb) bits.
Se analiza el proceso de decodificación. El proceso de decodificación opera de la siguiente manera para la imagen actual CurrPic. La decodificación de unidades NAL se especifica a continuación. Los procesos a continuación especifican los siguientes procesos de decodificación utilizando elementos de sintaxis en la capa de cabecera de segmento y por encima. Se derivan variables y funciones relacionadas con el conteo de orden de imagen. Esto se debe invocar solo para el primer segmento de una imagen. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se invoca el proceso de decodificación para construcción de listas de imágenes de referencia para derivación de lista de imágenes de referencia 0 (RefPicList[0]) y lista de imágenes de referencia 1 (RefPicList[1]). Se invoca el proceso de decodificación para marcado de imágenes de referencia, marcándose las imágenes de referencia como “no utilizadas para referencia” o “utilizadas para referencia a largo plazo”. Esto se debe invocar solo para el primer segmento de una imagen. Se invocan los procesos de decodificación para unidades de árbol de codificación, escalado, transformada, filtrado en bucle, etc. Después de que todos los segmentos de la imagen actual se han decodificado, la imagen decodificada actual se marca como “utilizada para referencia a corto plazo”.
Se analiza el proceso de decodificación de unidad NAL. Las entradas para este proceso son unidades NAL de la imagen actual y sus unidades no VCL NAL asociadas. Los resultados de este proceso son las estructuras de sintaxis RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis RBSP de la unidad NAL y luego analiza la estructura de sintaxis RBSP.
Se analiza el proceso de decodificación de segmento, que incluye el proceso de decodificación para conteo de orden de imagen. El resultado de este proceso es PicOrderCntVal, el conteo de orden de imagen de la imagen actual. Los conteos de orden de imagen se utilizan para identificar imágenes, para derivar parámetros de movimiento en modo de fusión y predicción de vector de movimiento, y para verificación de conformidad de decodificador. Cada imagen codificada se asocia con una variable de conteo de orden de imagen, denotada como PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se derivan de la siguiente manera: permítase que prevTid0Pic sea la imagen anterior en orden de decodificación que tiene TemporalId igual a 0. La variable prevPicOrderCntLsb se establece igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece igual a PicOrderCntMsb de prevTid0Pic.
La variable PicOrderCntMsb de la imagen actual se deriva de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece igual a 0. De lo contrario, PicOrderCntMsb se deriva de la siguiente manera:
si((slice_pic_order_cnt_lsb < prevPicOrderCntLsb) &&
((prevPicOrderCntLsb - slice_pic_order_cnt_lsb) >= (MaxPicOrderCntLsb/2))) PicOrderCntMsb = prevPicOrderCntMsb MaxPicOrderCntLsb
más si(((slice_pic_order_cnt_lsb > prevPicOrderCntLsb) &&
((slice_pic_order_cnt_lsb - prevPicOrderCntLsb) > (MaxPicOrderCntLsb/2)))
PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb
si no
PicOrderCntMsb = prevPicOrderCntMsb
PicOrderCntVal se deriva de la siguiente manera: PicOrderCntVal = PicOrderCntMsb slice_pic_order_cnt_lsb.
Todas las imágenes IRAP tendrán PicOrderCntVal igual a 0 ya que slice_pic_order_cnt_lsb se infiere que es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se configuran como iguales a 0. El valor de PicOrderCntVal debe estar en el intervalo de -231 a 231 - 1, ambos inclusive. En un CVS, los valores de PicOrderCntVal para cualquiera de dos imágenes codificadas 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 la 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 debe contener 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. Permítase que X sea la imagen actual e Y y Z sean otras dos imágenes en la misma secuencia de video codificada (CVS), Y y Z se considera que están en la misma dirección de orden de salida de X cuando tanto DiffPicOrderCnt(X, Y) como DiffPicOrderCnt(X, Z) son positivos o ambos son negativos.
Se analiza el proceso de decodificación para construcción de listas de imágenes de referencia. Este proceso se invoca al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP. Las imágenes de referencia se abordan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar un segmento I, no se utiliza una lista de imágenes de referencia en la decodificación de los datos de segmento. Al decodificar un segmento P, solo se utiliza la lista de imágenes de referencia 0 (es decir, RefPicList[0]) en la decodificación de los datos de segmento. Al decodificar un segmento B, tanto la lista de imágenes de referencia 0 como la lista de imágenes de referencia 1 (es decir, RefPicList[1]) se utilizan en la decodificación de los datos de segmento. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se derivan las listas de imágenes de referencia RefPicList[0] y RefPicList[1]. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos de segmento. Para un segmento I de una imagen no IRAP que no es el primer segmento de la imagen, RefPicList[0] y RefPicList[1] se derivan con fines de verificación de conformidad de flujo de bits, pero su derivación no es necesaria para decodificación de la imagen o imágenes actuales que siguen a la imagen actual en orden de decodificación. Para un segmento P que no es el primer segmento de una imagen, RefPicList[1] se deriva para fines de verificación de conformidad de flujo de bits, pero su derivación no es necesaria para decodificación de la imagen o imágenes actuales que siguen a la imagen actual en orden de decodificación. Las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para (i = 0; i < 2; i++) {
si(ref_pic_list_sps_flag[i])
RplsIdx[i] = ref_pic_list_idx[i]
si no
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
para(j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++) { si(!lt_ref_pic_flag[i][RplsIdx[i]][j]) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j] si(hay una imagen de referencia picA en la d Pb con PicOrderCntVal igual a RefPicPocList[i][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
} si no {
si(hay una imagen de referencia picA en la DPB con PicOrderCntVal & (MaxLtPicOrderCntLsb - 1)
igual a poc_lsb_lt[i][RplsIdx[i]][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
}
}
}
Para cada i igual a 0 o 1, se aplica lo siguiente: las primeras entradas NumRefIdxActive[i] en RefPicList[i] se refieren como las entradas activas en RefPicList[i], y las otras entradas en RefPicList[i] se refieren como las 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 denomina entrada STRP si lt_ref_pic_flag[i][RplsIdx[i]][j] es igual a 0, y como entrada LTRP de otra forma. Es posible que una imagen en particular se refiera tanto a una entrada en RefPicList[0] como a una entrada en RefPicList[1]. También es posible que se haga referencia a una imagen en particular por más de una entrada en RefPicList[0] o por más de una entrada en RefPicList[1]. Las entradas activas en RefPicList[0] y las entradas activas en RefPicList[1] se refieren colectivamente a todas las imágenes de referencia que se utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen 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 en la interpredicción para una o más imágenes que siguen la imagen actual en orden de decodificación. Hay una o más entradas en RefPicList[0] o RefPicList[1] que sean iguales a “ninguna imagen de referencia” porque las imágenes correspondientes no están presentes en la DPB. Se debe ignorar cada entrada inactiva en RefPicList[0] o RefPicList[0] que sea igual a “ninguna imagen de referencia”. Se debe inferir que una pérdida de imagen no intencional para cada entrada activa en RefPicList[0] o RefPicList[1] es 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 deberá ser menor que NumRefIdxActive[i]. La imagen a la que se hace referencia por cada entrada activa en RefPicList[0] o RefPicList[1] deberá estar presente en la DPB y deberá tener TemporalId menor o igual que aquel de la imagen actual. Seespecifica adicionalmente la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[0] o RefPicList[1] no deberá utilizarse como índice de referencia para decodificación de la imagen actual. Se puede especificar adicionalmente la siguiente restricción: una entrada inactiva en RefPicList[0] o RefPicList[1] no deberá hacer referencia a la misma imagen que cualquier otra entrada en RefPicList[0] o RefPicList[1]. Una entrada STRP en RefPicList[0] o RefPicList[1] de un segmento de una imagen y una entrada LTRP en RefPicList[0] o RefPicList[1] del mismo segmento o un segmento diferente de la misma imagen no deberán hacer referencia a la misma imagen. Ninguna entrada en RefPicList[0] o RefPicList[1] deberá hacer referencia a la imagen actual en sí misma. No deberá haber ninguna entrada LTRP en RefPicList[0] o RefPicList[1] para la cual la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se hace referencia por la entrada sea mayor o igual que 224. Permítase que setOfRefPics sea el conjunto de imágenes únicas a las que se hace referencia por todas las entradas en RefPicList[0] y todas las entradas en RefPicList[1]. El número de imágenes en setOfRefPics deberá ser menor que o igual a sps_max_dec_pic_buffering_minus1 y setOfRefPics deberá ser el mismo para todos los segmentos de una imagen.
Proceso de decodificación para marcado de imágenes de referencia.
Este proceso se invoca una vez por imagen, después de la decodificación de una cabecera de segmento y el proceso de decodificación para la construcción de la lista de imágenes de referencia para el segmento, pero antes de la decodificación de los datos de segmento. Este proceso da como resultado que una o más imágenes de referencia en la DPB se marquen como “no utilizadas para referencia” o “utilizadas para referencia a largo plazo”. Una imagen decodificada en la DPB se puede marcar como “no utilizada para referencia”, “utilizada para referencia a corto plazo” o “utilizada para referencia a largo plazo”, pero solo una de estas tres en un 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 corresponde. Cuando se hace referencia a una imagen como “utilizada para referencia”, esto se refiere colectivamente a la imagen que se marca como “utilizada para referencia a corto plazo” o “utilizada para referencia a largo plazo” (pero no ambas). Cuando la imagen actual es una imagen IRA<p>, todas las imágenes de referencia actualmente en la DPB (si las hay) se marcan como “no utilizadas para referencia”. Las STRP se identifican por sus valores PicOrderCntVal. Las LTRP se identifican por Log2(MaxLtPicOrderCntLsb) LSB de sus valores PicOrderCntVal. Se aplica lo siguiente: para cada entrada LTRP en RefPicList[0] o RefPicList[1], cuando la imagen referida es un STRp , la imagen se marca como “utilizada para referencia a largo plazo”. Cada imagen de referencia en la DPB a la que no se hace referencia por ninguna entrada en RefPicList[0] o RefPicList[1] se marca como “no utilizada para referencia”.
Se proporciona una descripción detallada de la segunda realización de la exposición. Esta sección documenta una segunda realización de exposición como se describió anteriormente. La descripción es relativa al último VVC WD. En esta realización, se señala un conjunto de estructuras de lista de imágenes de referencia en el SPS, compartidas por lista de imágenes de referencia 0 y lista de imágenes de referencia 1.
Sintaxis de conjunto de parámetros de secuencia RBSP.
Sintaxis RBSP de conjunto de parámetros de imagen.
Sintaxis de cabecera de segmento.
Estructura de lista de imágenes de referencia.
_________________________________________________________________________
Se analiza la semántica de cabecera de unidad NAL.
Semántica de conjunto de parámetros de secuencia RBSP.
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 conteo de orden de imagen de la siguiente manera: MaxPicOrderCntLsb = 2 (log2_max_pic_order_cnt_lsb_minus4 4). El valor de log2_max_pic_order_cnt_lsb_minus4 debe estar comprendido entre 0 y 12, ambos inclusive. sps_max_dec_pic_buffering_minus1 más 1 especifica el tamaño máximo requerido de la memoria intermedia de imágenes decodificadas para el CVS en unidades de memorias intermedias de almacenamiento de imágenes. El valor de sps_max_dec_pic_buffering_minus1 debe 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 deberá estar comprendido entre 0 y 128, ambos inclusive. Un decodificador debe asignar memoria para un número total de estructuras de sintaxis num_short_term_ref_pic_sets 2 ref_pic_list_struct(rplsIdx, ltrpFlag) ya que hay dos estructuras de sintaxis ref_pic_list_struct(rplsIdx, ltrpFlag) directamente señaladas en las cabeceras de segmento de una imagen actual. long_term_ref_pics_flag igual a 0 especifica que no se utiliza LTRP para interpredicción de cualquier imagen codificada en el CVS. long_term_ref_pics_flag igual a 1 especifica que LTRP se utiliza para 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_lsb)) El valor de additional_lt_poc_lsb debe estar en el intervalo de 0 a 32 -log2_max_pic_order_cnt_lsb_minus4 - 4, inclusive. Cuando no está presente, se infiere que el valor de additional_lt_poc_lsb es igual a 0.
Se analiza la semántica de conjunto de parámetros de imagen RBSP.
Semántica de cabecera de segmento.
Cuando está presente, el valor de cada uno de los elementos de sintaxis de cabecera de segmento slice_pic_parameter_set_id y slice_pic_order_cnt_lsb deberá ser el mismo en todos las cabeceras de segmento de una imagen codificada. slice_type especifica el tipo de codificación del segmento de acuerdo con la Tabla 7-3.
Tabla 7-3 - Asociación de nombre a slice_type
Cuando nal_unit_type es igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type deberá ser igual a 2. ... slice_pic_order_cnt_lsb especifica el módulo de conteo de orden de imagen MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice_pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de slice_pic_order_cnt_lsb deberá estar en el intervalo de 0 a MaxPicOrderCntLsb - 1, inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se infiere que slice_pic_order_cnt_lsb es igual a 0. ref_pic_list_sps_flag[i] igual a 1 especifica que la lista de imágenes de referencia i de la imagen actual se deriva sobre la base de una de las estructuras de sintaxis ref_pic_list_struct(rplsIdx, ltrpFlag) en el SPS activo. ref_pic_list_sps_flag[i] igual a 0 especifica que la lista de imágenes de referencia i de la imagen actual se deriva sobre la base de la estructura de sintaxis ref_pic_list_struct (rplsIdx, ltrpFlag) que se incluye directamente en las cabeceras de segmento de la imagen actual. Cuando num_ref_pic_lists_in_sps es igual a 0, el valor de ref_pic_list_sps_flag[i] deberá ser igual a 0. ref_pic_list_idx[i] especifica el índice, en la lista de estructuras de sintaxis ref_pic_list_struct(rplsIdx, ltrpFlag) incluidas en el SPS activo, de la estructura de sintaxis ref_pic_list_struct(rplsIdx, ltrpFlag) que se utiliza para derivar la lista de imágenes de referencia i de la imagen actual. El elemento de sintaxis ref_pic_list_idx[i] se representa por bits Ceil(Log2(num_ref_pic_lists_in_sps)) . Cuando no está presente, se infiere que el valor de ref_pic_list_idx[i] es igual a 0. El valor de ref_pic_list_idx[i] deberá estar en el intervalo de 0 a num_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 segmentos P y B y que el elemento de sintaxis num_ref_idx_active_minus1[1] está presente para segmentos B. num_ref_idx_active_override_flag igual a 0 especifica que los elementos de sintaxis num_ref_idx_active_minus1[0] y num_ref_idx_active_minus1[1] no están presentes.
num_ref_idx_active_minus1[i], cuando está presente, especifica el valor de la variable NumRefIdxActive[i] de la siguiente manera: NumRefIdxActive[i] = num_ref_idx_active_minus1[i] 1. El valor de num_ref_idx_active_minus1[i] deberá estar comprendido entre 0 y 14, ambos inclusive. El valor de NumRefIdxActive[i] - 1 especifica el índice de referencia máximo para la lista de imágenes de referencia i que se usa para decodificar el segmento. Cuando el valor de NumRefIdxActive[i] es igual a 0, no se puede usar ningún índice de referencia para la lista de imágenes de referencia i para decodificar el segmento. Para i igual a 0 o 1, cuando el segmento actual es un segmento B y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[i] es igual a num_ref_idx_default_active_minus1[i] 1. Cuando el segmento actual es un segmento P y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[0] es igual a num_ref_idx_default_active_minus1[0] 1. Cuando el segmento actual es un segmento P, se infiere que NumRefIdxActive[1] es igual a 0. Cuando el segmento actual es un segmento I, se infiere que tanto NumRefIdxActive[0] como NumRefIdxActive[1] son iguales a 0.
Alternativamente, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: permítase que rplsIdx1 sea igual a ref_pic_list_sps_flag[i] ? ref_pic_list_idx[i] : num_ref_pic_lists_in_sps[i], y numRpEntries[i] sea igual a num_strp_entries[i][rplsIdx1] num_ltrp_entries[i][rplsIdx1]. Cuando NumRefIdxActive[i] es mayor que numRpEntries[i], el valor de NumRefIdxActive[i] se establece igual a numRpEntries[i]
Semántica de estructura de lista de imágenes de referencia.
La estructura de sintaxis ref_pic_list_struct(rplsIdx, ltrpFlag) está presente en un SPS o en una cabecera de segmento. Dependiendo de si la estructura de sintaxis está incluida en una cabecera de segmento o en un SPS, se aplica lo siguiente: si está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct(rplsIdx, ltrpFlag) especifica una lista de imágenes de referencia de la imagen actual (la imagen que contiene el segmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct(rplsIdx, ltrpFlag) especifica una lista de imágenes de referencia candidatas, y el término “ la imagen actual” en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tiene uno o más segmentos que contienen ref_pic_list_idx[i] igual a un índice en la lista de estructuras de sintaxis ref_pic_list_struct(rplsIdx, ltrpFlag) incluidas en el SPS, y 2) está en un CVS que tiene el SPS como el SPS activo. num_strp_entries[rplsIdx] especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct(rplsIdx, ItrpFlag). 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 infiere que el valor de num_ltrp_entries[rplsIdx] es igual a 0.
La variable NumEntriesInList[rplsIdx] se deriva de la siguiente manera: NumEntriesInList[rplsIdx] = num_strp_entries[rplsIdx] num_ltrp_entries[rplsIdx]. El valor de NumEntriesInList[rplsIdx] deberá 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 infiere 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, deberá ser 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 conteo de orden de imagen de la imagen actual y la imagen a que se refiere 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 conteo de orden de imagen de las imágenes referidas por la i-ésima entrada y por la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct(rplsIdx, ltrpFlag). El valor de delta_poc_st[rplsIdx][i] deberá estar en el intervalo de 0 a 215 - 1, ambos inclusive. poc_lsb_lt[rplsIdx][i] especifica el valor del módulo de conteo de orden de imagen MaxLtPicOrderCntLsb de la imagen a la que se hace referencia por la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct(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 la presente exposición. Se describe el proceso de decodificación de unidad NAL. Se aplica el proceso de decodificación de unidad NAL especificado como parte de la descripción detallada de la primera relización de la presente exposición.
Se proporciona el proceso de decodificación de segmento.
Proceso de decodificación para conteo de orden de imagen.
Se aplica el proceso de decodificación para el conteo de orden de imagen especificado como parte de la descripción detallada de la primera realización de esta exposición.
Proceso de decodificación para construcción de listas de imágenes de referencia.
Este proceso se invoca al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP. Las imágenes de referencia se abordan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar un segmento I, no se utiliza una lista de imágenes de referencia en la decodificación de los datos de segmento. Al decodificar un segmento P, solo se utiliza la lista de imágenes de referencia 0 (es decir, RefPicList[0]) en la decodificación de los datos de segmento. Al decodificar un segmento B, tanto la lista de imágenes de referencia 0 como la lista de imágenes de referencia 1 (es decir, RefPicList[1]) se utilizan en la decodificación de los datos de segmento. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se derivan las listas de imágenes de referencia RefPicList[0] y RefPicList[1]. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos de segmento. Para un segmento I de una imagen no IRAP que no es el primer segmento de la imagen, RefPicList[0] y RefPicList[1] se derivan con fines de verificación de conformidad de flujo de bits, pero su derivación no es necesaria para decodificación de la imagen o imágenes actuales que siguen a la imagen actual en orden de decodificación. Para un segmento P que no es el primer segmento de una imagen, RefPicList[1] se deriva para fines de verificación de conformidad de flujo de bits, pero su derivación no es necesaria para decodificación de la imagen o imágenes actuales que siguen a la imagen actual en orden de decodificación.
Las listas de imágenes de referencia RefPicList[0] y RefPicList[1] 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 refieren como las entradas activas en RefPicList[i], y las otras entradas en RefPicList[i] se refieren como las entradas inactivas en RefPicList[i]. Cada entrada RefPicList[i][j] para j en el intervalo de 0 a NumEntriesInList[RplsIdx[i]] - 1, inclusive, se denomina entrada STRp si lt_ref_pic_flag[RplsIdx[i]][j] es igual a 0, y como entrada LTRP de otra forma. Es posible que una imagen en particular se refiera tanto a una entrada en RefPicList[0] como a una entrada en RefPicList[1]. También es posible que se haga referencia a una imagen en particular por más de una entrada en RefPicList[0] o por más de una entrada en RefPicList[1]. Las entradas activas en RefPicList[0] y las entradas activas en RefPicList[1] se refieren colectivamente a todas las imágenes de referencia que se pueden utilizar para la interpredicción de la imagen actual y una o más imágenes que siguen 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 en la interpredicción para una o más imágenes que siguen la imagen actual en orden de decodificación. Hay una o más entradas en RefPicList[0] o RefPicList[1] que sean iguales a “ninguna imagen de referencia” porque las imágenes correspondientes no están presentes en la DPB. Se debe ignorar cada entrada inactiva en RefPicList[0] o RefPicList[1] que sea igual a “ninguna imagen de referencia”. Se debe inferir que una pérdida de imagen no intencional para cada entrada activa en RefPicList[0] o RefPicList[1] es 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 deberá ser menor que NumRefIdxActive[i]. La imagen a la que se hace referencia por cada entrada activa en RefPicList[0] o RefPicList[1] deberá estar presente en la DPB y deberá tener TemporalId menor o igual que aquel de la imagen actual. Se especifica adicionalmente la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[0] o RefPicList[1] no deberá utilizarse como índice de referencia para decodificación de la imagen actual. Se puede especificar adicionalmente la siguiente restricción: una entrada inactiva en RefPicList[0] o RefPicList[1] no deberá hacer referencia a la misma imagen que cualquier otra entrada en RefPicList[0] o RefPicList[1]. Una entrada STRP en RefPicList[0] o RefPicList[1] de un segmento de una imagen y una entrada LTRP en RefPicList[0] o RefPicList[1] del mismo segmento o un segmento diferente de la misma imagen no deberán hacer referencia a la misma imagen. Ninguna entrada en RefPicList[0] o RefPicList[1] hará referencia a la imagen actual en sí misma. No debe haber ninguna entrada LTRP en RefPicList[0] o RefPicList[1] para la cual la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se hace referencia por la entrada sea mayor o igual que 224. Permítase que setOfRefPics sea el conjunto de imágenes únicas a las que se hace referencia por todas las entradas en RefPicList[0] y todas las entradas en RefPicList[1]. El número de imágenes en setOfRefPics deberá ser menor que o igual a sps_max_dec_pic_buffering_minus1 y setOfRefPics deberá ser el mismo para todos los segmentos de una imagen.
Se analiza el proceso de decodificación para marcado de imágenes de referencia.
Este proceso se invoca una vez por imagen, después de la decodificación de una cabecera de segmento y el proceso de decodificación para la construcción de la lista de imágenes de referencia para el segmento, pero antes de la decodificación de los datos de segmento. Este proceso da como resultado que una o más imágenes de referencia en la DPB se marquen como “no utilizadas para referencia” o “utilizadas para referencia a largo plazo”. Una imagen decodificada en la DPB se puede marcar como “no utilizada para referencia”, “utilizada para referencia a corto plazo” o “utilizada para referencia a largo plazo”, pero solo una de entre estas tres en un 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 corresponde. Cuando se hace referencia a una imagen como “utilizada para referencia”, esto se refiere colectivamente a la imagen que se marca 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 en la DPB (si las hay) se marcan como “no utilizadas para referencia”. Las STRP se identifican por sus valores PicOrderCntVal. Las LTRP se identifican por Log2(MaxLtPicOrderCntLsb) LSB de sus valores PicOrderCntVal.
Se aplica lo siguiente: para cada entrada LTRP en RefPicList[0] o RefPicList[1], cuando la imagen referida es una STRP, la imagen se marca como “utilizada para referencia a largo plazo”. Cada imagen de referencia en la DPB que no se refiere por ninguna entrada en RefPicList[0] o RefPicList[1] se marca como “no utilizada para referencia”.
La figura 5 es una realización de un método 500 para decodificar un flujo de bits de video codificado implementado por un decodificador de video (por ejemplo, decodificador de video 30). El método 500 se realiza después de que el flujo de bits decodificado se ha recibido directa o indirectamente de un codificador de video (por ejemplo, el codificador de video 20). El método 500 se realiza para mejorar el proceso de decodificación (por ejemplo, hacer que el proceso de decodificación sea más eficiente, más rápido, etc., que los procesos de decodificación convencionales) debido a que la lista de imágenes de referencia se construye directamente sin utilizar un proceso de inicialización de lista de imágenes de referencia o un proceso de modificación de lista de imágenes de referencia. Esto contrasta con la manera en la que se construye la lista de imágenes de referencia en HEVC y AVC. Por tanto, como cuestión práctica, las prestaciones de un códec pueden mejorarse, lo que conduce a una mejor experiencia de usuario.
En el bloque 502, se obtiene una estructura de lista de imágenes de referencia de un segmento actual representado en el flujo de bits de video codificado. 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 desde cero hasta un valor indicado. En una realización, el valor indicado es desde cero hasta un valor indicado por sps_max_dec_pic_buffering_minus1.
En el bloque 504, se construye una lista de imágenes de referencia para el segmento actual sobre la base de la estructura de lista de imágenes de referencia, de tal manera que una pluralidad de entradas en la lista de imágenes de referencia y un orden de las entradas en la lista de imágenes de referencia sean ambas las mismas que en la estructura de lista de imágenes de referencia. En una realización, la lista de imágenes de referencia se construye directamente sobre la base de la estructura de lista de imágenes de referencia que se referencia a partir del SPS o directamente se señaliza en la cabecera de segmento, siendo el número de entradas en la lista de imágenes de referencia y el orden de las entradas en la lista de imágenes de referencia los mismos que en la estructura de lista de imágenes de referencia. En una realización, la lista de imágenes de referencia para el segmento actual se construye sin utilizar un proceso de inicialización de lista de imágenes de referencia o un proceso de modificación de lista de imágenes de referencia. Es decir, la lista de imágenes de referencia se construye directamente. En una realización, la lista de imágenes de referencia contiene una pluralidad de entradas activas y una pluralidad de entradas inactivas. En una realización, la lista de imágenes de referencia se designa RefPicList[0] o RefPicList[1].
En el bloque 506, por lo menos un bloque reconstruido del segmento actual se obtiene sobre la base de por lo menos una entrada activa de la pluralidad de entradas activas en la lista de imágenes de referencia. En una realización, el al menos un bloque reconstruido se utiliza para generar una imagen representada 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 interpredicción. En una realización, la interpredicción es para un segmento P o para un segmento B.
En una realización, la cabecera de segmento contiene un indicador de conjunto de parámetros de secuencia de lista de imágenes de referencia (SPS) designada ref_pic_list_sps_flag[i]. Cuando esta bandera es igual a 1, la i-ésima lista de imágenes de referencia, es decir, RefPicList[i], no se señaliza directamente en la cabecera de segmento pero se referencia por SPS. Cuando este indicador es igual a 0, l i-ésima lista de imágenes de referencia, es decir, RefPictList[i] se señaliza directamente en la cabecera de segmento, no referenciada por SPS. En una realización, la cabecera de segmento contiene un indicador anulada activa de índice de referencia de número designada por num_ref_idx_active_override_flag. Cuando este indicador es igual a 1, el número de entradas activas en cada lista de imágenes de referencia es el valor por defecto señalizado en el PPS. Cuando este indicador es igual a 0, el número de entradas activas en cada lista de imágenes de referencia es el explícitamente señalizado en la cabecera de segmento.
En una realización, la lista de imágenes de referencia se designa RefPicList[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 sumario de formas de realización alternativas sobre la base de la primera y segunda realizaciones.
Esta sección proporciona unos sumarios breves de otras formas de realización alternativas de la exposición. Los sumarios se refieren a la descripción de la primera realización. Sin embargo, el concepto básico de la exposición para las siguientes realizaciones alternativas es aplicable también para la implementación además de la exposición de la segunda forma de realización. Dicha implementación está en el mismo espíritu de cómo se implementan los aspectos sobre la primera realización.
Semántica de delta POC de entradas de imágenes de referencia a corto plazo.
En una realización alternativa de la exposición, la semántica del elmento de sintaxis que espeficia el detal 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 POC entre la imagen actual y la imagen de referencia asociada con esta i-ésima entrada. Parte de la descripción utilizada en la presente memoria se refiere al borrador estándar presente (por ejemplo, el borrador de trabajo VVC) donde sólo se muestra o se describe el delta. El texto eliminado es indicado por tachado y cualquier texto añadido es 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 conteo de orden de imagen de la imagen actual y la imagen a la que se hace referencia por la i-ésima entrada. El valor de delta_poc_st[listIdx][rplsIdx][i] deberá estar en el intervalo de -215 a 215 - 1, ambos inclusive.
Se necesita actualizar la ecuación en el proceso de construcción de una lista de imágenes de referencia. Las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
si(ref_pic_list_sps_flag[i])
RplsIdx[i] = ref_pic_list_idx[i]
si no
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
para(j = 0; j < NumEntriesInList[i][RplsIdx[i]]; j++) {
si(!lt_ref_pic_flag[i][RplsIdx[i]][j]) {
RefPicPocList[i][j] = PicOrderCntVal - delta_poc_st[i][RplsIdx[i]][j]
si(hay una imagen de referencia picA en la DPB con PicOrderCntVal igual a RefPicPocList[i][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
} si no {
si(hay una imagen de referencia picA en la DPB con PicOrderCntVal & (MaxLtPicOrderCntLsb -1) igual a poc_lsb_lt[i][RplsIdx[i]][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
}
}
}
Señalización de entradas de imágenes de referencia a largo plazo.
En una realización alternativa de la descripción, las entradas de imágenes de referencia a largo plazo no se señalizan en la misma estructura de lista de imágenes de referencia que contiene entradas de imágenes de referencia a corto plazo. Las entradas de imágenes de referencia a largo plazo se señalan en una estructura separada y para cada entrada en la estructura hay un elemento de sintaxis que describe la posición deseada de la entrada de imágenes de referencia a largo plazo para la derivación del índice de entrada correspondiente en la lista de imágenes de referencia final.
Sintaxis de conjunto de parámetros de secuencia RBSP.
Sintaxis de cabecera de segmento.
Estructura de lista de imágenes de referencia.
Estructura de lista de imágenes de referencia a largo plazo.
________________________________________________________________________________
Semántica de conjunto de parámetros de secuencia RBSP.
Un num_ref_picjistsjt_in_sps especifica el número de estructuras de sintaxis ref_pic_list_lt_struct(ltRplsIdx) incluidas en el SPS. El valor de num_ref_pic_lists_lt_in_sps deberá estar comprendido entre 0 y 64, ambos inclusive. Cuando no está presente, se infiere que el valor de num_ref_pic_lists_lt_in_sps es igual a 0.
Semántica de cabecera de segmento.
Un ref_pic_list_lt_idx[i] especifica el índice en la lista de estructuras de sintaxis ref_pic_list_lt_struct(ltRplsIdx) incluidas en el SPS activo que se utiliza para derivar la lista de imágenes de referencia i de la imagen actual. El elemento de sintaxis ref_pic_list_lt_idx[i] se representa por Ceil(Log2(num_ref_pic_lists_lt_in_sps)) bits. El valor de ref_pic_list_lt_idx deberá 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 SPS o en una cabecera de segmento. Dependiendo de si la estructura de sintaxis está incluida en una cabecera de segmento o en un SPS, se aplica lo siguiente: si está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx) especifica la lista de imágenes de referencia a corto plazo listIdx de la imagen actual (la imagen que contiene el segmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx) especifica un candidato para lista de imágenes de referencia a corto plazo listIdx, y el término “ la imagen actual” en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tiene uno o más segmentos que contienen ref_pic_list_idx[listIdx] igual a un índice en la lista de estructuras de sintaxis ref_pic_list_struct(listIdx, lslsIdx) incluidas en el SPS, y 2) está en un CVS que tiene el SPS como el SPS activo. num_strp_entries[listIdx][rplsIdx] especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct(listIdx, rplsldx).
delta_poc_st[listIdx][rplsIdx][i], cuando la i-ésima entrada es la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx), especifica la diferencia entre los valores de conteo de orden de imagen de la imagen actual y la imagen a que se refiere la i-ésima entrada, o, cuando la i-ésima entrada es una entrada STRP pero no la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx), especifica la diferencia entre los valores de conteo de orden de imagen de las imágenes referidas por la i-ésima entrada y por la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx). El valor de delta_poc_st[listIdx][rplsIdx][i] deberá estar en el intervalo de -215 a 215 - 1, ambos inclusive.
Semántica de estructura de lista de imágenes de referencia a largo plazo.
La estructura de sintaxis ref_pic_list_lt_struct(ltRplsIdx) está presente en un SPS o en una cabecera de segmento. Dependiendo de si la estructura de sintaxis está incluida en una cabecera de segmento o en un SPS, se aplica lo siguiente: si está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_lt_struct(ltRplsIdx) especifica una lista de imágenes de referencia a largo plazo de la imagen actual (la imagen que contiene el segmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct(listIdx, rpllsIdx) especifica un candidato para la lista de imágenes de referencia a largo plazo, y el término “la imagen actual” en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tiene uno o más segmentos que contienen ref_pic_list_lt_idx[i] igual a un índice en la lista de estructuras de sintaxis ref_pic_list_lt_struct(ltRplsIdx) incluidas en el SPS, y 2) está en un CVS que tiene el SPS como el SPS activo. num_ltrp_entries[ltRplsIdx] especifica el número de entradas LTRP en la estructura de sintaxis ref_pic_list_lt_struct(ltRplsIdx). poc_lsb_lt[rplsIdx][i] especifica el valor del módulo de conteo de orden de imagen MaxLtPicOrderCntLsb de la imagen a la que se hace referencia por la i-ésima entrada en la estructura de sintaxis ref_pic_list_lt_struct(rplsIdx). La longitud del elemento de sintaxis poc_lsb_lt[rplsIdx][i] es Log2(MaxLtPicOrderCntLsb) bits. lt_pos_idx[rplsIdx][i] especifica el índice de la i-ésima entrada en la estructura de sintaxis ref_pic_list_lt_struct (rplsIdx) en la lista de imágenes de referencia después de la construcción de la lista de imágenes de referencia. La longitud del elemento de sintaxis lt_pos_idx[rplsIdx][i] es Log2(sps_max_dec_pic_buffering_minus1 1) bits. Cuando num_ltrp_entries[ltRplsIdx] es mayor que 1, poc_lsb_lt[rplsIdx][i] y lt_pos_idx[rplsIdx][i] deberán estar en el orden descendente de los valores lt_pos_idx[rplsIdx][i].
Se describe el proceso de decodificación.
Proceso de decodificación para construcción de listas de imágenes de referencia.
Este proceso se invoca al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP. Las imágenes de referencia se abordan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar un segmento I, no se utiliza una lista de imágenes de referencia en la decodificación de los datos de segmento. Al decodificar un segmento P, solo se utiliza la lista de imágenes de referencia 0 (es decir, RefPicList[0]) en la decodificación de los datos de segmento. Al decodificar un segmento B, tanto la lista de imágenes de referencia 0 como la lista de imágenes de referencia 1 (es decir, RefPicList[1]) se utilizan en la decodificación de los datos de segmento. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se derivan las listas de imágenes de referencia RefPicList[0] y RefPicList[1]. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos de segmento. Para un segmento I de una imagen no IRAP que no es el primer segmento de la imagen, RefPicList[0] y RefPicList[1] se derivan con fines de verificación de conformidad de flujo de bits, pero su derivación no es necesaria para decodificación de la imagen o imágenes actuales que siguen a la imagen actual en orden de decodificación. Para un segmento P que no es el primer segmento de una imagen, RefPicList[1] se deriva para fines de verificación de conformidad de flujo de bits, pero su derivación no es necesaria para decodificación de la imagen o imágenes actuales que siguen a la imagen actual en orden de decodificación. Las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
si(ref_pic_list_sps_flag[i])
RplsIdx[i] = ref_pic_list_idx[i]
si no
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
para(j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++) { RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j] si(hay una imagen de referencia picA en la DPB con PicOrderCntVal igual a RefPicPocList[i][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
si(ref_pic_list_lt_sps_flag[i])
LtRpIsIdx = re f_pic jis tjt_ idx[i]
si no
LtRplsIdx = num_ref_pic_lists_lt_in_sps[i]
para(j = 0; j < num_ltrp_entries[LtRplsIdx[i]]; j++) {
si(hay una imagen de referencia picA en la DPB con PicOrderCntVal & (MaxLtPicOrderCntLsb - 1) { igual a pocJsbJt[LtRplsIdx[i]][j])
para(k = sps_max_dec_pic_buffering_minus1; k > lt_pos_idx[LtRplsIdx[i]] [j]; k— ) RefPicList[i][k] = RefPicList[i][k - 1]
RefPicList[i][lt_pos_idx[LtRplsIdx[i]] [j]] = picA
} si no {
para(k = sps_max_dec_pic_buffering_minus1; k > lt_pos_idx[LtRplsIdx[i]] [j]; k— ) RefPicList[i][k] = RefPicList[i][k - 1]
RefPicList[i][lt_pos_idx[RplsIdx[i]] [j]] = “ninguna imagen de referencia”
}
}
}
Para cada i igual a 0 o 1, se aplica lo siguiente: las primeras entradas NumRefIdxActive[i] en RefPicList[i] se refieren como las entradas activas en RefPicList[i], y las otras entradas en RefPicList[i] se refieren como las 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 denomina entrada STRP si lt_ref_pic_flag[i][RplsIdx[i]][j] es igual a 0, y como entrada LTRP de otra forma. Es posible que una imagen en particular se refiera tanto a una entrada en RefPicList[0] como a una entrada en RefPicList[1]. También es posible que se haga referencia a una imagen en particular por más de una entrada en RefPicList[0] o por más de una entrada en RefPicList[1]. Las entradas activas en RefPicList[0] y las entradas activas en RefPicList[1] se refieren colectivamente a todas las imágenes de referencia que se utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen 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 en la interpredicción para una o más imágenes que siguen la imagen actual en orden de decodificación. Hay una o más entradas en RefPicList[0] o RefPicList[1] que sean iguales a “ninguna imagen de referencia” porque las imágenes correspondientes no están presentes en la DPB. Se debe ignorar cada entrada inactiva en RefPicList[0] o RefPicList[0] que sea igual a “ninguna imagen de referencia”. Se debe inferir que una pérdida de imagen no intencional para cada entrada activa en RefPicList[0] o RefPicList[1] es 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 deberá ser menor que NumRefIdxActive[i]. La imagen a la que se refiere cada entrada activa en RefPicList[0] o RefPicList[1] deberá estar presente en la DPB y deberá tener TemporalId menor o igual que aquel de la imagen actual. Se especifica adicionalmente la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[0] o RefPicList[1] no deberá utilizarse como índice de referencia para decodificación de la imagen actual. Se especifica adicionalmente la siguiente restricción: una entrada inactiva en RefPicList[0] o RefPicList[1] no debe hacer referencia a la misma imagen que cualquier otra entrada en RefPicList[0] o RefPicList[1]. Una entrada STRP en RefPicList[0] o RefPicList[1] de un segmento de una imagen y una entrada LTRP en RefPicList[0] o RefPicList[1] del mismo segmento o un segmento diferente de la misma imagen no deberán hacer referencia a la misma imagen. Ninguna entrada en RefPicList[0] o RefPicList[1] deberá hacer referencia a la imagen actual en sí misma. No deberá haber ninguna entrada LTRP en RefPicList[0] o RefPicList[1] para la cual la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual que 224. Permítase que setOfRefPics sea el conjunto de imágenes únicas a las que se hace referencia por todas las entradas en RefPicList[0] y todas las entradas en RefPicList[1]. El número de imágenes en setOfRefPics deberá ser menor que o igual a sps_max_dec_pic_buffering_minus1 y setOfRefPics deberá ser el mismo para todos los segmentos de una imagen.
Se analiza la señalización del número de entradas de imágenes de referencia a corto plazo.
En una realización alternativa de la exposición, el elemento de sintaxis que especifica la cantidad 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 la cantidad de entradas asociadas con una imagen de referencia a corto plazo en la estructura de lista de imágenes de referencia a medida que el elemento se codifica usando ue(v).
Impone implícitamente una restricción tal que cada lista de imágenes de referencia deberá contener al menos una imagen de referencia a corto plazo. Para adaptar esta idea, se necesitan algunos cambios con respecto a la primera realización.
Para la señalización de lista de imágenes de referencia en cabeceras de segmento, solo se señaliza la lista de imágenes de referencia necesaria de acuerdo con el tipo de segmento, es decir, una lista de imágenes de referencia (es decir, lista de imágenes de referencia 0) para segmentos I o P y dos listas de imágenes de referencia (es decir, tanto lista de imágenes de referencia 0 como lista de imágenes de referencia 1) para segmentos B. La sintaxis de cabecera de segmento se cambia de la siguiente manera:
Al aplicar el cambio anterior en la cabecera de segmento (es decir, lista de imágenes de referencia 0 para segmentos I o P; imagen de referencia 0 e imagen de referencia 1 para segmentos B), se evitaría el esquema del problema donde para un segmento P solo hay una imagen de referencia a corto plazo. Sin embargo, no se puede señalar una imagen de referencia a corto plazo duplicada en lista de imágenes de referencia 0 y lista de imágenes de referencia 1, donde la entrada en lista de imágenes de referencia 1 es una entrada inactiva ya que la cantidad de entradas activas en lista de imágenes de referencia 1 tiene que ser igual a 0. La semántica de num_strp_entries_minus1[listIdx][rplsIdx] se cambia como sigue: num_strp_entries_minus1[listIdx][rplsIdx] más 1 especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag). La variable NumEntriesInList[listIdx][rplsIdx] se deriva de la siguiente manera: NumRefPicEntriesInRpl[listIdx][rplsIdx] = num_strp_entries_minus1[listIdx][rplsIdx] 1 num_ltrp_entries[listIdx][rplsIdx]. El valor de NumRefPicEntries[listIdx][rplsIdx] deberá 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 exposición, se permite que la imagen actual se incluya en sus listas de imágenes de referencia. Para soportar esta característica, no se requiere un cambio de sintaxis y semántica con respecto a 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 construcción de una lista de imágenes de referencia se necesitarían modificar 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 deberá ser menor que NumRefIdxActive[i]. La imagen a la que se hace referencia por cada entrada activa en RefPicList[0] o RefPicList[1] deberá estar presente en la DPB y deberá tener TemporalId menor o igual que aquel de la imagen actual. Se especifica adicionalmente la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[0] o RefPicList[1] no deberá utilizarse como índice de referencia para decodificación de la imagen actual. Se especifica adicionalmente la siguiente restricción: una entrada inactiva en RefPicList[0] o RefPicList[1] no deberá hacer referencia a la misma imagen que cualquier otra entrada en RefPicList[0] o RefPicList[1]. Una entrada STRP en RefPicList[0] o RefPicList[1] de un segmento de una imagen y una entrada LTRP en RefPicList[0] o RefPicList[1] del mismo segmento o un segmento diferente de la misma imagen no deberán hacer referencia a la misma imagen. Cuando la imagen actual se refiere a una entrada en RefPicList[i], para i igual a 0 o 1, el índice de entrada deberá ser menor que NumRefIdxActive[i]. No deberá haber ninguna entrada LTRP en RefPicList[0] o RefPicList[1] para la cual la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se hace referencia por la entrada sea mayor o igual que 224. Permítase que setOfRefPics sea el conjunto de imágenes únicas a las que se hace referencia por todas las entradas en RefPicList[0] y todas las entradas en RefPicList[1]. Si la imagen actual no está incluida en setOfRefPics, el número de imágenes en setOfRefPics deberá ser menor que o igual a sps_max_dec_pic_buffering_minus1, de lo contrario, el número de imágenes en setOfRefPics deberá ser menor que o igual a sps_max_dec_pic_buffering_minus1 1. El setOfRefPics deberá ser el mismo para todos los segmentos de una imagen.
Usando diferentes bits POC LSB para entradas LTRP en listas de imágenes de referencia.
En una realización alternativa de la exposición, se permite que la cantidad 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 lista de imágenes de referencia 0 y lista de imágenes de referencia 1. Para soportar 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 de imágenes de referencia listIdx igual a i de la siguiente manera: MaxLtPicOrderCntLsb[i] = 2(log2_max_pic_order_cnt_lsb_ minus4 4 additional_lt_poc_lsb[i]). El valor de additionaljt_pocjsb[¡] deberá estar en el intervalo de 0 a 32 - log2_max_pic_order_cnt_lsb_minus4 - 4, inclusive. Cuando no está presente, se infiere que el valor de additional_lt_poc_lsb[i] es igual a 0.
poc_lsb_lt[listIdx][rplsIdx][i] especifica el valor del módulo de conteo de orden de imagen MaxLtPicOrderCntLsb[listIdx] de la imagen a la que se hace referencia por la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag). La longitud del elemento de sintaxis poc_lsb_lt[listIdx][rplsIdx][i] es Log2(MaxLtPicOrderCntLsb[listIdx]) bits.
Las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
si(ref_pic_list_sps_flag[i])
RplsIdx[i] = ref_pic_list_idx[i]
si no
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
para(j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++) { si(!lt_ref_pic_flag[i][RplsIdx[i]][j]) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j]
si(hay una imagen de referencia picA en la DPb con PicOrderCntVal igual a RefPicPocList[i][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
} si no {
si(hay una imagen de referencia picA en la DPB con PicOrderCntVal & (MaxLtPicOrderCntLsb[i] - 1) igual a poc_lsb_lt[i][RplsIdx[i]][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
}
}
}
Usando la misma ref_pic_list_sps_flag para las listas de imágenes de referencia 0 y 1.
En una realización alternativa de la exposición, en lugar de usar dos banderas para indicar si la lista de imágenes de referencia 0 y la lista de imágenes de referencia 1 son estructuras de sintaxis basadas en ref_pic_list_struct() en el SPS activo, se utiliza una bandera para ambas listas de imágenes de referencia. Estas restricciones alternativas que cualquiera de ambas listas de imágenes de referencia se derivan sobre la base de ref_pic_list_struct() en el SPS activo o se derivan sobre la base de estructuras de sintaxis ref_pic_list_struct() que se incluyen directamente en las cabeceras de segmento de la imagen actual. Para soportar 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 derivan sobre la base de una de las estructuras de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) en el SPS activo. ref_pic_list_sps_flag igual a 0 especifica que las listas de imágenes de referencia i de la imagen actual se derivan sobre la base de las estructuras de sintaxis ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag) que se incluyen directamente en las cabeceras de segmento de la imagen actual. Cuando num_ref_pic_lists_in_sps[0] o num_ref_pic_lists_in_sps[1] es igual a 0, el valor de ref_pic_list_sps_flag deberá ser igual a 0. pic_lists_in_sps[1] es igual a 0, el valor de ref_pic_list_sps_flag deberá ser igual a 0.
Las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
si(ref_pic_list_sps_flag)
RplsIdx[i] = ref_pic_list_idx[i]
si no
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
para(j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++) { si(!lt_ref_pic_flag[i][RplsIdx[i]][j]) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j]
si(hay una imagen de referencia picA en la<d>P<b>con PicOrderCntVal igual a RefPicPocList[i][j]) RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
} si no {
si(hay una imagen de referencia picA en la DPB con PicOrderCntVal & (MaxLtPicOrderCntLsb -
igual a poc_lsb_lt[i][RplsIdx[i]][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
}
}
}
Señalización del bit más significativo (MSB) POC delta para entradas de imágenes de referencia a largo plazo.
En una realización alternativa de la exposición, en lugar de usar bits adicionales para representar POC LSB de entradas de imágenes de referencia a largo plazo en ref_pic_list_struct(), se señaliza el ciclo POC MSB para diferenciar imágenes de referencia a largo plazo. Cuando se indica, la información de ciclo POC MSB se indica para cada entrada en ref_pic_list_struct() que se refiere a una imagen de referencia a largo plazo. La estructura de sintaxis ref_picjist_struct() no se señala en SPS sino solo en cabeceras de segmento. Para soportar esta característica, se necesitan los siguientes cambios:
La estructura de sintaxis ref_pic_list_struct(listIdx, ItrpFlag) está presente en una cabecera de segmento. Cuando está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct(listIdx, ItrpFlag) especifica la lista de imágenes de referencia listIdx de la imagen actual (la imagen que contiene el segmento). num_strp_entries[listIdx][specifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct(listIdx, ltrpFlag). num_ltrp_entries[listIdx] especifica el número de entradas LTRP en la estructura de sintaxis ref_pic_list_struct(listIdx, ltrpFlag). Cuando no está presente, se infiere que el valor de num_ltrp_entries[listIdx][rplsIdx] es igual a 0.
La variable NumEntriesInList[listIdx] se deriva de la siguiente manera:
NumRefPicEntriesInRpl[listIdx] = num_strp_entries[listIdx] num_ltrp_entries[listIdx]
El valor de NumRefPicEntries[listIdx] deberá 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 infiere 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, deberá ser igual a num_ltrp_entries[listIdx]. delta_poc_st[listIdx][i], cuando la i-ésima entrada es la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct(listIdx, ltrpFlag), especifica la diferencia entre los valores de conteo de orden de imagen de la imagen de la imagen actual y la imagen a la que se hace referencia por 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 conteo de orden de imagen de las imágenes referidas por la i-ésima entrada y por la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct(listIdx, ltrpFlag). El valor de delta_poc_st[listIdx][i] deberá estar en el intervalo de -215 a 215 - 1, ambos inclusive. poc_lsb_lt[listIdx][i] especifica el valor del módulo de conteo de orden de imagen MaxLtPicOrderCntLsb de la imagen a la que se hace referencia por la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct(listIdx, ItrpFlag). La longitud del elemento de sintaxis poc_lsb_lt[listIdx][i] es Log2(MaxPicOrderCntLsb) bits. delta_poc_msb_present_flag[listIdx][i] igual a 1 especifica que delta_poc_msb_cycle_lt[listIdx][i] está presente. delta_poc_msb_present_flag[listIdx][i] igual a 0 especifica que delta_poc_msb_cycle_lt[listIdx][i] no está presente. Cuando num_ltrp_entries[listIdx] es mayor que 0 y hay más de una imagen de referencia en la DPB en el momento en que se decodifica esta cabecera de segmento para la cual PicOrderCntVal modulo MaxPicOrderCntLsb es igual a poc_lsb_lt[listIdx][i], delta_poc_msb_present_flag[listIdx][i] deberá ser igual a 1. Cuando no está presente, se infiere que el valor de delta_poc_msb_cycle_lt[listIdx][i] es igual a 0. delta_poc_msb_cycle_lt[listIdx][i] se utiliza para determinar el valor de los bits más significativos del valor de conteo de orden de imagen de la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct(listIdx, ltrprpFlag). Cuando delta_poc_msb_cycle_lt[listIdx][i] no está presente, se infiere que es igual a 0. Cambios en el proceso de decodificación para el conteo de orden de imagen: las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
para(j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i]; j++) {
si(!lt_ref_pic_flag[i][j]) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][j]
si(hay una imagen de referencia picA en la d PB con PicOrderCntVal igual a RefPicPocList[i][j]) RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
} si no {
si(delta_poc_msb_cycle_lt[i][j] es igual a 0 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal & (MaxPicOrderCntLsb - 1) igual a poc_lsb_lt[i][j])
RefPicList[i][j] = picA
más si(delta_poc_msb_cycle_lt[i][j] es igual a 1 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal igual a (MaxPicOrderCntLsb * delta_poc_msb_cycle_lt[i][j]) poc_lsb_lt[i][j]))
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
}
}
}
Alternativamente la semántica de delta_poc_msb_cycle_lt[listIdx][i] se puede expresar como delta de delta de modo que la construcción de la lista de imágenes de referencia se puede actualizar de la siguiente manera: las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
prevMsbCycle = 0
para(j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i]; j++) { (8-5) si(!lt_ref_pic_flag[i][j]) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][j]
si(hay una imagen de referencia picA en la d PB con PicOrderCntVal igual a RefPicPocList[i][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
} si no {
si(delta_poc_msb_cycle_lt[i][j] es igual a 0 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal & (MaxLtPicOrderCntLsb - 1) igual a poc_lsb_lt[i][j])
RefPicList[i][j] = picA
más si(delta_poc_msb_cycle_lt[i][j] es igual a 1 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal igual a
(MaxPicOrderCntLsb * (delta_poc_msb_cycle_lt[i][j] prevMsbCycle))
+ poc_lsb_lt[i][j])) {
RefPicList[i][j] = picA
prevMsbCycle = delta_poc_msb_cycle_lt[i][j]
} si no
RefPicList[i][j] = “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 deberá ser menor que NumRefIdxActive[i]. La imagen a la que se hace referencia por cada entrada activa en RefPicList[0] o RefPicList[1] deberá estar presente en la DPB y deberá tener TemporalId menor o igual que aquel de la imagen actual. Se especifica adicionalmente la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[0] o RefPicList[1] no se deberá utilizar como índice de referencia para decodificación de la imagen actual. Se especifica adicionalmente la siguiente restricción: una entrada inactiva en RefPicList[0] o RefPicList[1] no deberá hacer referencia a la misma imagen que cualquier otra entrada en RefPicList[0] o RefPicList[1]. Una entrada STRP en RefPicList[0] o RefPicList[1] de un segmento de una imagen y una entrada LTRP en RefPicList[0] o RefPicList[1] del mismo segmento o un segmento diferente de la misma imagen no deberán hacer referencia a la misma imagen. Ninguna entrada en RefPicList[0] o RefPicList[1] hará referencia a la imagen actual en sí misma. No debe haber ninguna entrada LTRP en RefPicList[0] o RefPicList[1] para la cual la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se hace referencia por la entrada sea mayor o igual que 224. Permítase que setOfRefPics sea el conjunto de imágenes únicas a las que se hace referencia por todas las entradas en RefPicList[0] y todas las entradas en RefPicList[1]. El número de imágenes en setOfRefPics deberá ser menor que o igual a sps_max_dec_pic_buffering_minus1 y setOfRefPics deberá ser el mismo para todos los segmentos de una imagen.
Cada STRP se identifica por su valor PicOrderCntVal. Para cada LTRP, si se hace referencia al mismo por una entrada en RefPicList[0] o RefPicList[1] con delta_poc_msb_present_flag[listIdx][i] igual a 1, se identifica por su valor PicOrderCntVal, de lo contrario, se identifica por LSBs Log2(MaxPicOrderCntLsb) de su valor PicOrderCntVal.
Alternativa 1 de señalización de MSB POC delta para entradas de imágenes de referencia a largo plazo.
Esta realización proporciona una alternativa a la realización descrita en la sección anterior. Similar a la idea en la sección anterior, en lugar de usar bits adicionales para representar POC LSB de imágenes de referencia a largo plazo en ref_pic_list_struct(), se señaliza el ciclo POC MSB para diferenciar imágenes de referencia a largo plazo. Sin embargo, en esta alternativa, cuando se indica, la información de ciclo POC MSB no se indica dentro de ref_pic_list_struct(), en cambio, cuando se necesita información de ciclo POC MSB, se indica en cabecera de segmento. La estructura de sintaxis ref_pic_list_struct() se señaliza en el SPS y en cabeceras de segmento.
Una delta_poc_msb_present_flag[i][j] igual a 1 especifica que delta_poc_msb_cydeJt[i][j] está presente.
delta_poc_msb_present_flag[i][j] igual a 0 especifica que delta_poc_msb_cydeJt[i][j] no está presente. Cuando NumLtrpEntries[i] es mayor que 0 y para la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct(i, rplsIdx, 1) hay más de una imagen de referencia en la DPB en el momento en que se decodifica esta cabecera de segmento para la cual PicOrderCntVal modulo MaxPicOrderCntLsb es igual a poc_lsb_lt[i][rplsIdx][jj], donde jj es el índice de entrada de la entrada en la estructura de sintaxis ref_pic_list_struct(i, rplsIdx, 1) que es la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct(i, rplsIdx, 1), delta_poc_msb_present_flag[i][j] deberá ser igual a 1. Cuando no está presente, se infiere que el valor de delta_poc_msb_cycle_lt[i][j] es igual a 0. delta_poc_msb_cycle_lt[i][j] se utiliza para determinar el valor de los bits más significativos del valor de conteo de orden de imagen de la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct(i, rplsIdx, 1). Cuando delta_poc_msb_cycle_lt[i][j] no está presente, se infiere que es igual a 0.
Un delta_poc_msb_present_flag[i][j] igual a 1 especifica que delta_poc_msb_cydeJt[i][j] está presente. delta_poc_msb_present_flag[i][j] igual a 0 especifica que delta_poc_msb_cycle_lt[i][j] no está presente. Cuando NumLtrpEntries[i] es mayor que 0 y hay más de una imagen de referencia en la DPB en el momento en que se decodifica esta cabecera de segmento para el cual PicOrderCntVal modulo MaxPicOrderCntLsb es igual a poc_lsb_lt[i][rplsIdx][j], delta_poc_msb_present_flag[i][j] deberá ser igual a 1. Cuando no está presente, se infiere que el valor de delta_poc_msb_cycle_lt[i][j] es igual a 0. delta_poc_msb_cycle_lt[i][j] se utiliza para determinar el valor de los bits más significativos del valor de conteo de orden de imagen de la j-ésima entrada en la estructura de sintaxis ref_pic_list_struct(i, rplsIdx, 1). Cuando delta_poc_msb_cycle_lt[i][j] no está presente, se infiere que es igual a 0. poc_lsb_lt[listIdx][rplsIdx][i] especifica el valor del módulo de conteo de orden de imagen MaxPicOrderCntLsb de la imagen a la que se hace referencia por 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 conteo de orden de imagen:
Para el diseño de cabecera de segmento 1, las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
si(ref_pic_list_sps_flag[i])
RplsIdx[i] = ref_pic_list_idx[i]
si no
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
msbCycleIdx = 0
para(j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++) { si(!lt_ref_pic_flag[i][RplsIdx[i]][j]) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j]
si (hay una imagen de referencia picA en la DP<b>con PicOrderCntVal igual a RefPicPocList[i][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
} si no {
si(delta_poc_msb_cycle_lt[i][msbCycleIdx] es igual a 0 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal &
(MaxPicOrderCntLsb - 1) igual a poc_lsb_lt[i][RplsIdx[i]][j])
RefPicList[i][j] = picA
más si(delta_poc_msb_cycle_lt[i][msbCycleIdx] es igual a 1 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal igual a
(MaxPicOrderCntLsb *
delta_poc_msb_cycle_lt[i][msbCycleIdx]) poc_lsb_lt[i][RplsIdx[i]][j])) {
RefPicList[i][j] = picA
msbCycleIdx++
} si no
RefPicList[i][j] = “ninguna imagen de referencia”
}
}
}
Alternativamente, para el diseño de cabecera de segmento 1, la semántica de delta_poc_msb_cycle_lt[listIdx][i] se puede expresar como delta de delta de modo que la construcción de la lista de imágenes de referencia se puede actualizar de la siguiente manera: las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
si(ref_pic_list_sps_flag[i])
RplsIdx[i] = ref_pic_list_idx[i]
si no
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
pevMsbCycle = 0
msbCycleIdx = 0
para(j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++) { si(!lt_ref_pic_flag[i][RplsIdx[i]][j]) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j] si(hay una imagen de referencia picA en la DpB con PicOrderCntVal igual a RefPicPocList[i][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
} si no {
si(delta_poc_msb_cycle_lt[i][msbCycleIdx] es igual a 0 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal & (MaxLtPicOrderCntLsb - 1) igual a poc_lsb_lt[i][RplsIdx[i]][j]) RefPicList[i][j] = picA
más si(delta_poc_msb_cycle_lt[i][msbCycleIdx] es igual a 1 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal igual a (MaxPicOrderCntLsb * (delta_poc_msb_cycle_lt[i][msbCycleIdx] prevMsbCycle) poc_lsb_lt[i][RplsIdx[i]][j])) {
RefPicList[i][j] = picA
prevMsbCycle = delta_poc_msb_cycle_lt[i][msbCycleIdx] msbCycleIdx++
} si no
RefPicList[i][j] = “ninguna imagen de referencia”
}
}
}
Para el diseño de cabecera de segmento 2, las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
si(ref_pic_list_sps_flag[i])
RplsIdx[i] = ref_pic_list_idx[i]
si no
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
para (j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++) { si(!lt_ref_pic_flag[i][RplsIdx[i]][j]) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j]
si(hay una imagen de referencia picA en la DPb con PicOrderCntVal igual a RefPicPocList[i][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
} si no {
si(delta_poc_msb_cycle_lt[i][j] es igual a 0 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal & (MaxLtPicOrderCntLsb - 1) igual a poc_lsb_lt[i][RplsIdx[i]][j]) RefPicList[i][j] = picA
más si(delta_poc_msb_cycle_lt[i][j] es igual a 1 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal igual a MaxPicOrderCntLsb *
delta_poc_msb_cycle_lt[i][j]) poc_lsb_lt[i][RplsIdx[i]][j]))
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
}
}
}
Alternativamente, para el diseño de cabecera de segmento 2, la semántica de delta_poc_msb_cycle_lt[listIdx][i] se puede expresar como delta de delta de modo que la construcción de la lista de imágenes de referencia se puede actualizar de la siguiente manera: las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
si(ref_pic_list_sps_flag[i])
RplsIdx[i] = ref_pic_listjdx[i]
si no
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
prevMsbCycle = 0
para (j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++) { si(!lt_ref_pic_flag[i][RplsIdx[i]][j]) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j]
si(hay una imagen de referencia picA en la<d>P<b>con PicOrderCntVal igual a RefPicPocList[i][j]) RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
} si no {
si(delta_poc_msb_cycle_lt[i][j] es igual a 0 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal & (MaxLtPicOrderCntLsb - 1) igual a poc_lsb_lt[i][RplsIdx[i]][j])
RefPicList[i][j] = picA
más si(delta_poc_msb_cycle_lt[i][msbCycleIdx] es igual a 1 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal igual a
(MaxPicOrderCntLsb * (delta_poc_msb_cycle_lt[i][j]
prevMsbCycle) poc_lsb_lt[i][RplsIdx[i]][j])) {
RefPicList[i][j] = picA
prevMsbCycle = delta_poc_msb_cycle_lt[i][j]
} si no
RefPicList[i][j] = “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 deberá ser menor que NumRefIdxActive[i]. La imagen a la que se hace referencia por cada entrada activa en RefPicList[0] o RefPicList[1] deberá estar presente en la DPB y deberá tener TemporalId menor o igual que aquel de la imagen actual. Se especifica adicionalmente la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[0] o RefPicList[1] no deberá utilizarse como índice de referencia para decodificación de la imagen actual. Se especifica adicionalmente la siguiente restricción: una entrada inactiva en RefPicList[0] o RefPicList[1] no deberá hacer referencia a la misma imagen que cualquier otra entrada en RefPicList[0] o RefPicList[1]. Una entrada STRP en RefPicList[0] o RefPicList[1] de un segmento de una imagen y una entrada LTRP en RefPicList[0] o RefPicList[1] del mismo segmento o un segmento diferente de la misma imagen no deberán hacer referencia a la misma imagen. Ninguna entrada en RefPicList[0] o RefPicList[1] deberá hacer referencia a la imagen actual en sí misma. No deberá haber ninguna entrada LTRP en RefPicList[0] o RefPicList[1] para la cual la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se hace referencia por la entrada sea mayor o igual que 224. Permítase que setOfRefPics sea el conjunto de imágenes únicas a las que se hacer referencia por todas las entradas en RefPicList[0] y todas las entradas en RefPicList[1]. El número de imágenes en setOfRefPics deberá ser menor que o igual a sps_max_dec_pic_buffering_minus1 y setOfRefPics deberá ser el mismo para todos los segmentos de una imagen.
Cada STRP se identifica por su valor PicOrderCntVal. Para cada LTRP, si se hace referencia al mismo por una entrada en RefPicList[0] o RefPicList[1] con delta_poc_msb_present_flag[i][j] igual a 1, se identifica por su valor PicOrderCntVal, de lo contrario, se identifica por su LSBs Log2(MaxPicOrderCntLsb) de su valor PicOrderCntVal.
Alternativa 2 de señalización de MSB POC delta para entradas de imágenes de referencia a largo plazo.
En una realización alternativa de la exposición, la exposición descrita en la primera realización o la segunda realización se puede combinar con las realizaciones descritas anteriormente y nombrarse “Señalización de POC MSB delta para entradas de imágenes de referencia a largo plazo” y “Alternativa 1 de señalización de POC MSB delta para entradas de imágenes de referencia a largo plazo", respectivamente. Los aspectos de las exposiciones que se combinarán son señalización de adicional_lt_poc_lsb (es decir, de la primera realización o la segunda raelización) e información de ciclo MSB POC (es decir, de la realización descrita anteriormente y denominada “Señalización de MSB POC delta para entradas de imágenes de referencia a largo plazo” o “Alternativa 1 de señalización de MSB POC delta para entradas de imágenes de referencia a largo plazo”). Un ejemplo de cómo se puede hacer la combinación, combinando la primera realización y la realización descrita anteriormente y denominada “Alternativa 1 de señalización de MSB POC delta para entradas de imágenes de referencia a largo plazo", se describe de la siguiente manera:
Una delta_poc_msb_present_flag[i][j] igual a 1 especifica que delta_poc_msb_cydeJt[i][j] está presente. delta_poc_msb_present_flag[i][i] igual a 0 especifica que delta_poc_msb_cycle_lt[i][j] no está presente. Cuando NumLtrpEntries[i] es mayor que 0 y para la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct(i, rplsIdx, 1) hay más de una imagen de referencia en la DPB en el momento en que se decodifica esta cabecera de segmento para la cual PicOrderCntVal modulo MaxPicOrderLtCntLsb es igual a poc_lsb_lt[i][rplsIdx][jj], donde jj es el índice de entrada de la entrada en la estructura de sintaxis ref_pic_list_struct(i, rplsIdx, 1) que es la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct(i, rplsIdx, 1), delta_poc_msb_present_flag[i][j] deberá ser igual a 1. Cuando no está presente, se infiere que el valor de delta_poc_msb_cycle_lt[i][j] es igual a 0. delta_poc_msb_cycle_lt[i][j] se utiliza para determinar el valor de los bits más significativos del valor de conteo de orden de imagen de la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct(i, rplsIdx, 1). Cuando delta_poc_ msb_cycle_lt[i][j] no está presente, se infiere que es igual a 0.
Cambios en el proceso de decodificación para el conteo de orden de imagen:
Las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
si(ref_pic_list_sps_flag[i])
RplsIdx[i] = ref_pic_list_idx[i]
si no
RplsIdx[i] = num_ref_picjists_in_sps[i]
msbCycleIdx = 0
para(j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++) { si(!lt_ref_pic_flag[i][RplsIdx[i]][j]) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j]
si(hay una imagen de referencia picA en la d Pb con PicOrderCntVal igual a RefPicPocList[i][j]) RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
} si no {
si(delta_poc_msb_cycle_lt[i][msbCycleIdx] es igual a 0 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal &
(MaxLtPicOrderCntLsb - 1) igual a poc_lsb_lt[i][RplsIdx[i]][j])
RefPicList[i][j] = picA
más si(delta_poc_msb_cycle_lt[i][msbCycleIdx] es igual a 1 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal igual a (MaxLtPicOrderCntLsb *
delta_poc_msb_cycle_lt[i][msbCycleIdx]) poc_lsb_lt[i][RplsIdx[i]][j])) {
RefPicList[i][j] = picA
msbCycleIdx++
} si no
RefPicList[i][j] = “ninguna imagen de referencia”
}
}
}
Alternativamente la semántica de delta_poc_msb_cycle_lt[listIdx][i] se puede expresar como delta de delta de modo que la construcción de la lista de imágenes de referencia se puede actualizar de la siguiente manera: las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
si (ref_pic_list_sps_flag[i])
RplsIdx[i] = ref_pic_list_idx[i]
si no
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
prevMsbCycle = 0
msbCycleIdx = 0
para(j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++) { si(!lt_ref_pic_flag[i][RplsIdx[i]][j]) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j]
si(hay una imagen de referencia picA en la d Pb con PicOrderCntVal igual a RefPicPocList[i][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
pocBase = RefPicPocList[i][j]
} si no {
si(delta_poc_msb_cycle_lt[i][msbCycleIdx] es igual a 0 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal & (MaxLtPicOrderCntLsb - 1) igual a poc_lsb_lt[i][RplsIdx[i]][j])
RefPicList[i][j] = picA
más si(delta_poc_msb_cycle_lt[i][msbCycleIdx] es igual a 1 &&
hay una imagen de referencia picA en la DPB con PicOrderCntVal igual a (MaxLtPicOrderCntLsb * (delta_poc_msb_cycle_lt[i][msbCycleIdx]
prevMsbCycle) poc_lsb_lt[i][RplsIdx[i]][j])) {
RefPicList[i][j] = picA
prevMsbCycle = delta_poc_msb_cycle_lt[i][msbCycleIdx]
msbCycleIdx++
} si no
RefPicList[i][j] = “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 deberá ser menor que NumRefIdxActive[i]. La imagen a la que se hace referencia por cada entrada activa en RefPicList[0] o RefPicList[1] deberá estar presente en la DPB y deberá tener TemporalId menor o igual que aquel de la imagen actual. Se especifica adicionalmente la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[0] o RefPicList[1] no deberá utilizarse como índice de referencia para decodificación de la imagen actual. Se especifica adicionalmente la siguiente restricción: una entrada inactiva en RefPicList[0] o RefPicList[1] no debe hacer referencia a la misma imagen que cualquier otra entrada en RefPicList[0] o RefPicList[1]. Una entrada STRP en RefPicList[0] o RefPicList[1] de un segmento de una imagen y una entrada LTRP en RefPicList[0] o RefPicList[1] del mismo segmento o un segmento diferente de la misma imagen no deberán hacer referencia a la misma imagen. Ninguna entrada en RefPicList[0] o RefPicList[1] deberá hacer referencia a la imagen actual en sí misma. No deberá haber ninguna entrada LTRP en RefPicList[0] o RefPicList[1] para la cual la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se hace referencia por la entrada sea mayor o igual que 224. Permítase que setOfRefPics sea el conjunto de imágenes únicas a las que se hace referencia por todas las entradas en RefPicList[0] y todas las entradas en RefPicList[1]. El número de imágenes en setOfRefPics deberá ser menor que o igual a sps_max_dec_pic_buffering_minus1 y setOfRefPics deberá ser el mismo para todos los segmentos de una imagen.
Cada STRP se identifica por su valor PicOrderCntVal. Para cada LTRP, si se hace referencia al mismo por una entrada en RefPicList[0] o RefPicList[1] con delta_poc_msb_present_flag[i][j] igual a 1, se identifica por su valor PicOrderCntVal, de lo contrario, se identifica por su LSBs Log2(MaxLtPicOrderCntLsb) de su valor PicOrderCntVal.
Señalar siempre listas de imágenes de referencia en cabeceras de segmento con diferenciación entre imágenes de referencia a corto plazo y a largo plazo.
Esta sección describe otra realización alternativa de la exposición. La descripción es relativa al último VVC WD (es decir, solo se describe el delta con respecto al último VVC WD en JVET-K1001-v1, mientras que los textos en el último VVC WD que no se mencionan a continuación se aplican tal como son). Esta realización alternativa se resume como sigue: las estructuras de lista de imágenes de referencia se señalizan solo en cabeceras de segmento. Tanto las imágenes de referencia a corto plazo como las imágenes de referencia a largo plazo se identifican por sus POC LSB, que se representan por números de bits que son diferentes del número de bits utilizados para representar los POC LSB señalizados en cabeceras de segmento para la derivación de valores POC. Además, son diferentes las cantidades de bits utilizados para representar los POC LSB para identificar imágenes de referencia a corto plazo e imágenes de referencia a largo plazo.
Sintaxis de cabecera de unidad NAL.
Sintaxis de conjunto de parámetros de secuencia RBSP.
Sintaxis RBSP de conjunto de parámetros de imagen.
Sintaxis de cabecera de segmento.
Sintaxis de estructura de lista de imágenes de referencia.
Semántica de cabecera de unidad NAL.
Un forbidden_zero_bit deberá ser igual a 0. nal_unit_type especifica el tipo de estructura de datos RBSP contenido en la unidad NAL.
Tabla 7-1 - códigos de tipo de unidad NAL y clases de tipo de unidad NAL
Un nuh_temporal_id_plus1 menos 1 especifica un identificador temporal para la unidad NAL. El valor de nuh_temporal_id_plus1 no deberá ser igual a 0. La variable Temporalld se especifica de la siguiente manera: Temporalld = nuh_temporal_id_plus1 - 1.
Cuando nal_unit_type es igual a IRAP_NUT, el segmento codificado pertenece a una imagen IRAP y TemporalId deberá ser igual a 0. El valor de TemporalId deberá ser el mismo para todas las unidades NAL VCL de una unidad de acceso. El valor de TemporalId de una imagen codificada o una unidad de acceso es el valor de TemporalId de las unidades NAL VCL de la imagen codificada o la unidad de acceso. El valor de TemporalId para unidades NAL no VCL se restringe de la siguiente manera: si nal_unit_type es igual a SPS_NUT, TemporalId deberá ser igual a 0 y TemporalId de la unidad de acceso que contiene la unidad NAL deberá ser igual a 0. De lo contrario, si nal_unit_type es igual a EOS_NUT o EOB_NUT, TemporalId deberá ser igual a 0. De lo contrario, TemporalId deberá ser mayor que o igual al 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 TemporalId de todas las unidades de acceso a las que se aplica la unidad NAL no VCL. Cuando nal_unit_type es igual a PPS_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso que contiene, ya que todos los conjuntos de parámetros de imagen (PPS) se incluyen al comienzo de un flujo de bits, teniendo la primera imagen codificada TemporalId igual a 0. Cuando nal_unit_type es igual a PREFIX_SEI_NUT o SUFFIX_SEI_NUT, TemporalId es mayor que o igual a TemporalId de la unidad de acceso que contiene, ya que una unidad NAL de información de mejora complementaria (SEI) contiene información que se aplica a un subconjunto de flujo de bits que incluye unidades de acceso para las cuales los valores TemporalId son mayores que el TemporalId de la unidad de acceso que contiene la unidad NAL SEI. nuh_reserved_zero_7bits deberá ser igual a '0000000'. Otros valores de nuh_reserved_zero_7bits se especifican en el futuro por ITU-T | ISO/IEC. Los decodificadores deberán ignorar (es decir, eliminar del flujo de bits y descartar) unidades NAL con valores de nuh_reserved_zero_7bits no igual a '0000000'.
Semántica de conjunto de parámetros de secuencia RBSP.
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 conteo de orden de imagen de la siguiente manera:
MaxPicOrderCntLsb = 2(l°g2-max_pic_order_cnt_lsb_minus4 4)
El valor de log2-maX-piC-Order-CntJsb-minus4 deberá estar comprendido entre 0 y 12, ambos inclusive. sps-max-dec-pic-buffering-minus1 más 1 especifica el tamaño máximo requerido de la memoria intermedia de imágenes decodificadas para el CVS en unidades de memorias intermedias de almacenamiento de imágenes. El valor de sps-max-dec-pic-buffering-minus1 deberá estar en el intervalo de 0 a MaxDpbSize -1, inclusive, donde MaxDpbSize es como se especifica en otro lugar. additional_st_pocjsb 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:
MaxStPicOrderCntLsb = 2(l°g2-max-PiC-°rder-Cnt-lsb-minus4 4 additional-St-poC-lsb)
El valor de additional_st_pocjsb deberá estar en el intervalo de 0 a 32 - log2-maX-piC-Order-CntJsb-minus4 - 4, inclusive. long-term-ref-picS-flag igual a 0 especifica que no se utiliza LTRP para interpredicción de cualquier imagen codificada en el CVS. long-term-ref-picS-flag igual a 1 especifica que LTRP se utiliza para interpredicción de una o más imágenes codificadas en el CVS. additionaljt_pocjsb 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(l°g2-max_P¡c_order_cnt_lsb_m¡nus4 4 additional-St-poC-lsb additional-lt-poC-lsb)
El valor de additionaljt_pocjsb deberá estar en el intervalo de 0 a 32 - log2-maX-piC-Order-CntJsb-minus4 - 4 - additional_st_pocjsb, inclusive. Cuando no está presente, se infiere que el valor de additionaljt_pocjsb es igual a 0.
Semántica de conjunto de parámetros de imagen RBSP.
Un num-ref-idX-default-active-minus1[i] más 1, cuando i es igual a 0, especifica el valor inferido de la variable NumRefIdxActive[0] para segmentos P o B con num-refJdX-active-Override-flag igual a 0, y, cuando i es igual a 1, especifica el valor inferido de NumRefIdxActive[1] para segmentos B con num-refJdX-active-Override-flag igual a 0. El valor de num-refJdX-default-active-minus1[i] deberá estar comprendido entre 0 y 14, ambos inclusive.
Semántica de cabecera de segmento.
Cuando está presente, el valor de cada uno de los elementos de sintaxis de cabecera de segmento slice-piC-parameter-Set-id y slice-piC-Order-CntJsb deberá ser el mismo en todos las cabeceras de segmento de una imagen codificada. slice_type especifica el tipo de codificación del segmento de acuerdo con la Tabla 7-3.
Tabla 7-3 - Asociación de nombre a slice_type
Cuando nal_unit_type es igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type deberá ser igual a 2.
Un slice_pic_order_cnt_lsb especifica el módulo de conteo de orden de imagen MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice_pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de slice_pic_order_cnt_lsb deberá estar en el intervalo de 0 a MaxPicOrderCntLsb - 1, inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se infiere que slice_pic_order_cnt_lsb es igual a 0. num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num_ref_idx_active_minus1[0] está presente para segmentos P y B y que el elemento de sintaxis num_ref_idx_active_minus1[1] está presente para segmentos B. num_ref_idx_active_override_flag igual a 0 especifica que los elementos de sintaxis num_ref_idx_active_minus1[0] y num_ref_idx_active_minus1[1] no están presentes. num_ref_idx_active_minus1[i], cuando está presente, especifica el valor de la variable NumRefIdxActive[i] de la siguiente manera:
NumRefIdxActive[i] = num_ref_idx_active_minus1[i] 1
El valor de num_ref_idx_active_minus1[i] deberá estar comprendido entre 0 y 14, ambos inclusive. El valor de NumRefIdxActive[i] - 1 especifica el índice de referencia máximo para la lista de imágenes de referencia i que se usa para decodificar el segmento. Cuando el valor de NumRefIdxActive[i] es igual a 0, no se puede usar ningún índice de referencia para la lista de imágenes de referencia i para decodificar el segmento. Para i igual a 0 o 1, cuando el segmento actual es un segmento B y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[i] es igual a num_ref_idx_default_active_minus1[i] 1. Cuando el segmento actual es un segmento P y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[0] es igual a num_ref_idx_default_active_minus1[0] 1. Cuando el segmento actual es un segmento P, se infiere que NumRefIdxActive[1] es igual a 0. Cuando el segmento actual es un segmento I, se infiere que tanto NumRefIdxActive[0] como NumRefIdxActive[1] son iguales a 0. Alternativamente, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: permítase que rplsIdx1 sea igual a ref_pic_list_sps_flag[i] ? ref_pic_list_idx[i] : num_ref_pic_lists_in_sps[i], y numRpEntries[i] sea igual a num_strp_entries[i][rplsIdx1] num_ltrp_entries[i][rplsIdx1]. Cuando NumRefIdxActive[i] es mayor que numRpEntries[i], el valor de NumRefIdxActive[i] se establece igual a numRpEntries[i]
Semántica de estructura de lista de imágenes de referencia.
La estructura de sintaxis ref_pic_list_struct(listIdx, ltrpFlag) está presente en una cabecera de segmento. Cuando está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct(listIdx, ltrpFlag) especifica la lista de imágenes de referencia listIdx de la imagen actual (la imagen que contiene el segmento). num_strp_entries[listIdx] especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct(listIdx, ltrpFlag). num_ltrp_entries[listIdx] especifica el número de entradas LTRP en la estructura de sintaxis ref_pic_list_struct(listIdx, ltrpFlag). Cuando no está presente, se infiere que el valor de num_ltrp_entries[listIdx] es igual a 0. La variable NumEntriesInList[listIdx] se deriva de la siguiente manera:
NumEntriesInList[listIdx] = num_strp_entries[listIdx] num_ltrp_entries[listIdx]
El valor de NumEntriesInList[listIdx] deberá 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 infiere 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, deberá ser 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 conteo de orden de imagen MaxStPicOrderCntLsb de la imagen a la que se hace referencia por la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct(listIdx, ltrpFlag). La longitud del elemento de sintaxis poc_lsb_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 conteo de orden de imagen MaxLtPicOrderCntLsb de la imagen referida por la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct(listIdx, ltrpFlag). La longitud del elemento de sintaxis poc_lsb_lt[listIdx][i] es Log2(MaxLtPicOrderCntLsb) bits.
Se analiza el proceso de decodificación.
Proceso de decodificación general.
El proceso de decodificación opera de la siguiente manera para la imagen actual CurrPic: la decodificación de unidades NAL se especifica a continuación. Los procesos a continuación especifican los siguientes procesos de decodificación utilizando elementos de sintaxis en la capa de cabecera de segmento y por encima: se derivan variables y funciones relacionadas con el conteo de orden de imagen. Esto se debe invocar solo para el primer segmento de una imagen. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se invoca el proceso de decodificación para construcción de listas de imágenes de referencia para derivación de lista de imágenes de referencia 0 (RefPicList[0]) y lista de imágenes de referencia 1 (RefPicList[1]). Se invoca el proceso de decodificación para marcado de imágenes de referencia, marcándose las imágenes de referencia como “no utilizadas para referencia” o “utilizadas para referencia a largo plazo”. Esto se debe invocar solo para el primer segmento de una imagen. Se invocan los procesos de decodificación para unidades de árbol de codificación, escalado, transformada, filtrado en bucle, etc. Después de que todos los segmentos de la imagen actual se han decodificado, la imagen decodificada actual se marca como “utilizada para referencia a corto plazo”.
Proceso de decodificación de unidad NAL.
Las entradas para este proceso son unidades NAL de la imagen actual y sus unidades NAL no VCL asociadas. Los resultados de este proceso son las estructuras de sintaxis RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis RBSP de la unidad NAL y luego analiza la estructura de sintaxis RBSP.
Proceso de decodificación de segmento.
Proceso de decodificación para conteo de orden de imagen.
El resultado de este proceso es PicOrderCntVal, el conteo de orden de imagen de la imagen actual. Los conteos de orden de imagen se utilizan para identificar imágenes, para derivar parámetros de movimiento en modo de fusión y predicción de vector de movimiento, y para verificación de conformidad de decodificador. Cada imagen codificada se asocia con una variable de conteo de orden de imagen, denotada como PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se derivan de la siguiente manera: permítase que prevTid0Pic sea la imagen anterior en orden de decodificación que tiene TemporalId igual a 0. La variable prevPicOrderCntLsb es igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece igual a PicOrderCntMsb de prevTid0Pic. La variable PicOrderCntMsb de la imagen actual se deriva de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece igual a 0. De lo contrario, PicOrderCntMsb se deriva de la siguiente manera:
si((slice_pic_order_cnt_lsb < prevPicOrderCntLsb) &&
((prevPicOrderCntLsb - slice_pic_order_cnt_lsb) >= (MaxPicOrderCntLsb / 2))) PicOrderCntMsb = prevPicOrderCntMsb MaxPicOrderCntLsb
más si(((slice_pic_order_cnt_lsb > prevPicOrderCntLsb) &&
((slice_pic_order_cnt_lsb - prevPicOrderCntLsb) > (MaxPicOrderCntLsb / 2))) PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb
si no
PicOrderCntMsb = prevPicOrderCntMsb
PicOrderCntVal se deriva de la siguiente manera:
PicOrderCntVal = PicOrderCntMsb slice_pic_order_cnt_lsb
Todas las imágenes IRAP tendrán PicOrderCntVal igual a 0 ya que slice_pic_order_cnt_lsb se infiere que es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se configuran como iguales a 0. El valor de PicOrderCntVal debe estar en el intervalo de -231 a 231 - 1, ambos inclusive. En un CVS, los valores de PicOrderCntVal para cualquiera de dos imágenes codificadas no deberán ser los mismos. En cualquier momento durante el proceso de decodificación, los valores de PicOrderCntVal & (MaxStPicOrderCntLsb - 1) para dos imágenes de referencia cualesquiera en la DPB no deberán ser 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 la DPB no deberán ser 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 deberá contener 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. Permítase que X sea la imagen actual e Y y Z sean otras dos imágenes en la misma CVS, Y y Z se consideran en la misma dirección de orden de salida de X cuando tanto DiffPicOrderCnt(X, Y) como DiffPicOrderCnt(X, Z) son positivos o ambos son negativos.
Proceso de decodificación para construcción de listas de imágenes de referencia.
Este proceso se invoca al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP. Las imágenes de referencia se abordan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar un segmento I, no se utiliza una lista de imágenes de referencia en la decodificación de los datos de segmento. Al decodificar un segmento P, solo se utiliza la lista de imágenes de referencia 0 (es decir, RefPicList[0]) en la decodificación de los datos de segmento. Al decodificar un segmento B, tanto la lista de imágenes de referencia 0 como la lista de imágenes de referencia 1 (es decir, RefPicList[1]) se utilizan en la decodificación de los datos de segmento. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se derivan las listas de imágenes de referencia RefPicList[0] y RefPicList[1]. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos de segmento. Para un segmento I de una imagen no IRAP que no es el primer segmento de la imagen, RefPicList[0] y RefPicList[1] se derivan con fines de verificación de conformidad de flujo de bits, pero su derivación no es necesaria para decodificación de la imagen o imágenes actuales que siguen a la imagen actual en orden de decodificación. Para un segmento P que no es el primer segmento de una imagen, RefPicList[1] se deriva para fines de verificación de conformidad de flujo de bits, pero su derivación no es necesaria para decodificación de la imagen o imágenes actuales que siguen a la imagen actual en orden de decodificación.
Las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
para(i = 0; i < 2; i++) {
para(j = 0; j < NumEntriesInList[i]; j++) {
si(lt_ref_pic_flag[i][j]) {
si(hay una referencia picA en la DPB con PicOrderCntVal & (MaxLtPicOrderCntLsb - 1)
igual a poc_lsb_lt[i][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
}
}
}
para(i = 0; i < 2; i++) {
para(j = 0; j < NumEntriesInList[i]; j++) {
si(!lt_ref_pic_flag[i][j]) {
si(hay una imagen de referencia a corto plazo picA en la DPB
con PicOrderCntVal & (MaxStPicOrderCntLsb - 1) igual a poc_lsb_st[i][j])
RefPicList[i][j] = picA
si no
RefPicList[i][j] = “ninguna imagen de referencia”
}
}
}
Para cada i igual a 0 o 1, se aplica lo siguiente:
Las primeras entradas NumRefIdxActive[i] en RefPicList[i] se refieren como las entradas activas en RefPicList[i], y las otras entradas en RefPicList[i] se refieren como las entradas inactivas en RefPicList[i]. Cada entrada RefPicList[i][j] para j en el intervalo de 0 a NumEntriesInList[i] - 1, inclusive, se denomina entrada STRP si lt_ref_pic_flag[i]][j] es igual a 0, y como entrada LTRP de otra forma. Es posible que una imagen en particular se refiera tanto a una entrada en RefPicList[0] como a una entrada en RefPicList[1]. También es posible que se haga referencia a una imagen en particular por más de una entrada en RefPicList[0] o por más de una entrada en RefPicList[1]. Las entradas activas en RefPicList[0] y las entradas activas en RefPicList[1] se refieren colectivamente a todas las imágenes de referencia que se utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen 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, sino que se utilizan en la interpredicción para una o más imágenes que siguen 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 la DPB. Se debería ignorar cada entrada inactiva en RefPicList[0] o RefPicList[0] que sea igual a “ninguna imagen de referencia”. Se debería inferir que una pérdida de imagen no intencional para cada entrada activa en RefPicList[0] o RefPicList[1] es 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 deberá ser menor que NumRefIdxActive[i]. La imagen a la que se hace referencia por cada entrada activa en RefPicList[0] o RefPicList[1] deberá estar presente en la DPB y deberá tener TemporalId menor o igual que aquel de la imagen actual. Se especifica adicionalmente la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[0] o RefPicList[1] no se deberá utilizar como índice de referencia para decodificación de la imagen actual. Se especifica adicionalmente la siguiente restricción: una entrada inactiva en RefPicList[0] o RefPicList[1] no deberá hacer referencia a la misma imagen que cualquier otra entrada en RefPicList[0] o RefPicList[1]. Una entrada STRP en RefPicList[0] o RefPicList[1] de un segmento de una imagen y una entrada LTRP en RefPicList[0] o RefPicList[1] del mismo segmento o un segmento diferente de la misma imagen no deberán hacer referencia a la misma imagen. Ninguna entrada en RefPicList[0] o RefPicList[1] deberá hacer referencia a la imagen actual en sí misma. No deberá haber ninguna entrada LTRP en RefPicList[0] o RefPicList[1] para la cual la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se hace referencia por la entrada sea mayor o igual que 224. Permítase que setOfRefPics sea el conjunto de imágenes únicas a las que se hace referencia por todas las entradas en RefPicList[0] y todas las entradas en RefPicList[1]. El número de imágenes en setOfRefPics deberá ser menor que o igual a sps_max_dec_pic_buffering_minus1 y setOfRefPics deberá ser el mismo para todos los segmentos de una imagen.
Proceso de decodificación para marcado de imágenes de referencia.
Este proceso se invoca una vez por imagen, después de la decodificación de una cabecera de segmento y el proceso de decodificación para la construcción de la lista de imágenes de referencia para el segmento, pero antes de la decodificación de los datos de segmento. Este proceso da como resultado que una o más imágenes de referencia en la DPB se marquen como “no utilizadas para referencia” o “utilizadas para referencia a largo plazo”. Una imagen decodificada en la DPB se puede marcar como “no utilizada para referencia”, “utilizada para referencia a corto plazo” o “utilizada para referencia a largo plazo”, pero solo una de estas tres en un 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 corresponde. Cuando se hace referencia a una imagen como “utilizada para referencia”, esto se refiere colectivamente a la imagen que se marca como “utilizada para referencia a corto plazo” o “utilizada para referencia a largo plazo” (pero no ambas). Cuando la imagen actual es una imagen IRA<p>, todas las imágenes de referencia actualmente en la DPB (si las hay) se marcan como “no utilizadas para referencia”. Los STRP se identifican por Log2(MaxStPicOrderCntLsb) LSB de sus valores PicOrderCntVal. Las LTRP se identifican por Log2(MaxLtPicOrderCntLsb) LSB de sus valores PicOrderCntVal.
Se aplica lo siguiente: para cada entrada LTRP en RefPicList[0] o RefPicList[1], cuando la imagen referida es un STRP, la imagen se marca como “utilizada para referencia a largo plazo”. Cada imagen de referencia en la DPB a la que no se hace referencia por ninguna entrada en RefPicList[0] o RefPicList[1] se marca como “no utilizada para referencia”.
Señalar siempre listas de imágenes de referencia en cabeceras de segmento sin diferenciación entre imágenes de referencia a corto plazo y a largo plazo.
Esta sección describe otra realización alternativa de la exposición. La descripción es relativa al último VVC WD (es decir, solo se describe el delta con respecto al último VVC WD en JVET-K1001-v1, mientras que los textos en el último VVC WD que no se mencionan a continuación se aplican tal como son). Esta realización alternativa se resume como sigue: las estructuras de lista de imágenes de referencia se señalizan solo en cabeceras de segmento. No se hace distinción entre imágenes de referencia a corto y largo plazo. Todas las imágenes de referencia se denominan imágenes de referencia. Las imágenes de referencia se identifican por sus POC LSB, que se representan por un número de bits que es diferente del número de bits utilizados para representar los POC LSB señalizados en cabeceras de segmento para la derivación de valores POC.
Abreviaturas. Se aplica el texto de la cláusula 4 de VVC WD.
Sintaxis de cabecera de unidad NAL.
Sintaxis de conjunto de parámetros de secuencia RBSP.
Sintaxis RBSP de conjunto de parámetros de imagen.
Sintaxis de cabecera de segmento.
Estructura de lista de imágenes de referencia.
Semántica de cabecera de unidad NAL.
Un forbidden_zero_bit deberá ser igual a 0. nal_unit_type especifica el tipo de estructura de datos RBSP contenido en la unidad NAL.
Tabla 7-1 - códigos de tipo de unidad NAL y clases de tipo de unidad NAL
Un nuh_temporal_id_plus1 menos 1 especifica un identificador temporal para la unidad NAL. El valor de nuh_temporal_id_plus1 no deberá ser igual a 0. La variable Temporalld se especifica de la siguiente manera:
Temporalld = nuh_temporal_id_plus1 - 1
Cuando nal_unit_type es igual a IRAP_NUT, el segmento codificado pertenece a una imagen IRAP, Temporalld deberá ser igual a 0. El valor de Temporalld deberá ser el mismo para todas las unidades NAL VCL de una unidad de acceso. El valor de Temporalld de una imagen codificada o una unidad de acceso es el valor de TemporalId de las unidades NAL VCL de la imagen codificada o la unidad de acceso. El valor de TemporalId para unidades NAL no VCL se restringe de la siguiente manera:
Si nal_unit_type es igual a SPS_NUT, TemporalId deberá ser igual a 0 y TemporalId de la unidad de acceso que contiene la unidad NAL deberá ser igual a 0. De lo contrario, si nal_unit_type es igual a EOS_NUT o EOB_NUT, TemporalId deberá ser igual a 0. De lo contrario, TemporalId deberá ser mayor que o igual al 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 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 puede ser mayor o igual que TemporalId de la unidad de acceso de contención, ya que todos los conjuntos de parámetros de imagen (PPS) se incluyen al comienzo de un flujo de bits, teniendo la primera imagen codificada TemporalId igual a 0. Cuando nal_unit_type es igual a PREFiX_SEI_NUT o SUFFIX_SEI_NUT, TemporalId es mayor que o igual a TemporalId de la unidad de acceso de contención, ya que una unidad NAL SEI contiene información que se aplica a un subconjunto de flujo de bits que incluye unidades de acceso para las cuales los valores TemporalId son mayores que el TemporalId de la unidad de acceso que contiene la unidad NAL SEI. nuh_reserved_zero_7bits deberá ser igual a '0000000'. Otros valores de nuh_reserved_zero_7bits se especifica en el futuro por ITU-T | ISO/IEC. Los decodificadores deberán ignorar (es decir, eliminar del flujo de bits y descartar) unidades NAL con valores de nuh_reserved_zero_7bits no igual a '0000000'.
Semántica de conjunto de parámetros de secuencia RBSP.
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 conteo de orden de imagen de la siguiente manera:
MaxPicOrderCntLsb = 2(l°g2-max_pic_order_cnt_lsb_minus4 4)
El valor de log2-maX-piC-Order-CntJsb-minus4 deberá estar comprendido entre 0 y 12, ambos inclusive. sps-max-dec-pic-buffering-minus1 más 1 especifica el tamaño máximo requerido de la memoria intermedia de imágenes decodificadas para el CVS en unidades de memorias intermedias de almacenamiento de imágenes. El valor de sps-max-dec-pic-buffering-minus1 deberá estar en el intervalo de 0 a MaxDpbSize -1, inclusive, donde MaxDpbSize es como se especifica en otro lugar. additional_ref_pocjsb 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(l°g2-max-PiC-°rder-Cnt-lsb-minus4 4 additional_ref_poc_lsb)
El valor de additional_ref_pocjsb deberá estar en el intervalo de 0 a 32 - log2-maX-piC-Order-CntJsb-minus4 - 4, inclusive.
Semántica de conjunto de parámetros de imagen RBSP.
Un num-ref-idX-default-active-minus1[i] más 1, cuando i es igual a 0, especifica el valor inferido de la variable NumRefIdxActive[0] para segmentos P o B con num-refJdX-active-Override-flag igual a 0, y, cuando i es igual a 1, especifica el valor inferido de NumRefIdxActive[1] para segmentos B con num-refJdX-active-Override-flag igual a 0. El valor de num-refJdX-default-active-minus1[i] deberá estar comprendido entre 0 y 14, ambos inclusive.
Semántica de cabecera de segmento.
Cuando está presente, el valor de cada uno de los elementos de sintaxis de cabecera de segmento slice-piC-parameter-Set-id y slice-piC-Order-CntJsb deberá ser el mismo en todas las cabeceras de segmento de una imagen codificada. ... slice_type especifica el tipo de codificación del segmento de acuerdo con la Tabla 7-3.
Tabla 7-3 - Asociación de nombre a slice_type
Cuando nal_unit_type es igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type deberá ser igual a 2. ... slice-piC-Order-CntJsb especifica el módulo de conteo de orden de imagen MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice-piC-Order-CntJsb es log2-maX-piC-Order-Cnt-lsb-minus4 4 bits. El valor de slice-piC-Order-CntJsb deberá estar en el intervalo de 0 a MaxPicOrderCntLsb - 1, inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se infiere que slice_pic_order_cnt_lsb es igual a 0. num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num_ref_idx_active_minus1[0] está presente para segmentos P y B y que el elemento de sintaxis num_ref_idx_active_minus1[1] está presente para segmentos B. num_ref_idx_active_override_flag igual a 0 especifica que los elementos de sintaxis num_ref_idx_active_minus1[0] y num_ref_idx_active_minus1[1] no están presentes. num_ref_idx_active_minus1[i], cuando está presente, especifica el valor de la variable NumRefIdxActive[i] de la siguiente manera:
NumRefIdxActive[i] = num_ref_idx_active_minus1[i] 1
El valor de num_ref_idx_active_minus1[i] deberá estar comprendido entre 0 y 14, ambos inclusive. El valor de NumRefIdxActive[i] - 1 especifica el índice de referencia máximo para la lista de imágenes de referencia i que se usa para decodificar el segmento. Cuando el valor de NumRefIdxActive[i] es igual a 0, no se puede usar ningún índice de referencia para la lista de imágenes de referencia i para decodificar el segmento. Para i igual a 0 o 1, cuando el segmento actual es un segmento B y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[i] es igual a num_ref_idx_default_active_minus1[i] 1. Cuando el segmento actual es un segmento P y num_ref_idx_active_override_flag es igual a 0, se infiere que NumRefIdxActive[0] es igual a num_ref_idx_default_active_minus1[0] 1. Cuando el segmento actual es un segmento P, se infiere que NumRefIdxActive[1] es igual a 0. Cuando el segmento actual es un segmento I, se infiere que tanto NumRefIdxActive[0] como NumRefIdxActive[1] son iguales a 0. Alternativamente, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: permítase que rplsIdx1 sea igual a ref_pic_list_sps_flag[i] ? ref_pic_list_idx[i] : num_ref_pic_lists_in_sps[i], y numRpEntries[i] sea igual a num_strp_entries[i][rplsIdx1] num_ltrp_entries[i][rplsIdx1]. Cuando NumRefIdxActive[i] es mayor que numRpEntries[i], el valor de NumRefIdxActive[i] se establece igual a numRpEntries[i]
Semántica de estructura de lista de imágenes de referencia.
La estructura de sintaxis ref_pic_list_struct(listIdx) está presente en una cabecera de segmento. Cuando está presente en una cabecera de segmento, la estructura de sintaxis ref_pic_list_struct(listIdx) especifica lista de imágenes de referencia listIdx de la imagen actual (la imagen que contiene el segmento). num_ref_entries[listIdx] especifica el número de entradas en la estructura de sintaxis ref_pic_list_struct(listIdx). La variable NumEntriesInList[listIdx] se deriva de la siguiente manera:
NumRefPicEntriesInRpl[listIdx] = num_ref_entries[listIdx]
El valor de NumRefPicEntries[listIdx] deberá 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 conteo de orden de imagen MaxRefPicOrderCntLsb de la imagen a la que se refiere la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct(listIdx). La longitud del elemento de sintaxis poc_ref_lsb[listIdx][i] es Log2(MaxRefPicOrderCntLsb) bits.
Se analiza el proceso de decodificación.
Proceso de decodificación general.
El proceso de decodificación opera de la siguiente manera para la imagen actual CurrPic: la decodificación de unidades NAL se especifica a continuación. Los procesos a continuación especifican los siguientes procesos de decodificación utilizando elementos de sintaxis en la capa de cabecera de segmento y por encima: se derivan variables y funciones relacionadas con el conteo de orden de imagen. Esto se debe invocar solo para el primer segmento de una imagen. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se invoca el proceso de decodificación para construcción de listas de imágenes de referencia para derivación de lista de imágenes de referencia 0 (RefPicList[0]) y lista de imágenes de referencia 1 (RefPicList[1]). Se invoca el proceso de decodificación para marcado de imágenes de referencia, marcándose las imágenes de referencia como “no utilizadas para referencia”. Esto se debe invocar solo para el primer segmento de una imagen. Se invocan los procesos de decodificación para unidades de árbol de codificación, escalado, transformada, filtrado en bucle, etc. Después de que todos los segmentos de la imagen actual se han decodificado, la imagen decodificada actual se marca como “utilizada para referencia”.
Proceso de decodificación de unidad NAL.
Las entradas para este proceso son unidades NAL de la imagen actual y sus unidades NAL no VCL asociadas. Los resultados de este proceso son las estructuras de sintaxis RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis RBSP de la unidad NAL y luego analiza la estructura de sintaxis RBSP.
Proceso de decodificación de segmento.
Proceso de decodificación para conteo de orden de imagen.
El resultado de este proceso es PicOrderCntVal, el conteo de orden de imagen de la imagen actual. Los conteos de orden de imagen se utilizan para identificar imágenes, para derivar parámetros de movimiento en modo de fusión y predicción de vector de movimiento, y para verificación de conformidad de decodificador. Cada imagen codificada se asocia con una variable de conteo de orden de imagen, denotada como PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se derivan de la siguiente manera: permítase que prevTid0Pic sea la imagen anterior en orden de decodificación que tiene TemporalId igual a 0. La variable prevPicOrderCntLsb es igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece igual a PicOrderCntMsb de prevTid0Pic. La variable PicOrderCntMsb de la imagen actual se deriva de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece igual a 0. De lo contrario, PicOrderCntMsb se deriva de la siguiente manera:
Todas las imágenes IRAP tendrán PicOrderCntVal igual a 0 ya que slice_pic_order_cnt_lsb se infiere que es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se configuran como iguales a 0. El valor de PicOrderCntVal deberá estar en el intervalo de -231 a 231 - 1, ambos inclusive. En un CVS, los valores de PicOrderCntVal para cualquiera de dos imágenes codificadas no deberán ser 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 la DPB no deberán ser 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 deberá contener datos que den por 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. Que X sea la imagen actual e Y y Z sean otras dos imágenes en la misma CVS, Y y Z se consideran en la misma dirección de orden de salida de X cuando tanto DiffPicOrderCnt(X, Y) como DiffPicOrderCnt(X, Z) son positivos o ambos son negativos.
Proceso de decodificación para construcción de listas de imágenes de referencia.
Este proceso se invoca al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP. Las imágenes de referencia se abordan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar un segmento I, no se utiliza una lista de imágenes de referencia en la decodificación de los datos de segmento. Al decodificar un segmento P, solo se utiliza la lista de imágenes de referencia 0 (es decir, RefPicList[0]) en la decodificación de los datos de segmento. Al decodificar un segmento B, tanto la lista de imágenes de referencia 0 como la lista de imágenes de referencia 1 (es decir, RefPicList[1]) se utilizan en la decodificación de los datos de segmento. Al comienzo del proceso de decodificación para cada segmento de una imagen no IRAP, se derivan las listas de imágenes de referencia RefPicList[0] y RefPicList[1]. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos de segmento. Para un segmento I de una imagen no IRAP que no es el primer segmento de la imagen, RefPicList[0] y RefPicList[1] se derivan con fines de verificación de conformidad de flujo de bits, pero su derivación no es necesaria para decodificación de la imagen o imágenes actuales que siguen a la imagen actual en orden de decodificación. Para un segmento P que no es el primer segmento de una imagen, RefPicList[1] se deriva para fines de verificación de conformidad de flujo de bits, pero su derivación no es necesaria para decodificación de la imagen o imágenes actuales que siguen a la imagen actual en orden de decodificación. Las listas de imágenes de referencia RefPicList[0] y RefPicList[1] se construyen de la siguiente manera:
}
Para cada i igual a 0 o 1, las primeras entradas NumRefIdxActive[i] en RefPicList[i] se refieren como las entradas activas en RefPicList[i], y las otras entradas en RefPicList[i] se refieren como las entradas inactivas en RefPicList[i]. Es posible que una imagen en particular se refiera tanto a una entrada en RefPicList[0] como a una entrada en RefPicList[1]. También es posible que se haga referencia a una imagen en particular por más de una entrada en RefPicList[0] o por más de una entrada en RefPicList[1]. Las entradas activas en RefPicList[0] y las entradas activas en RefPicList[1] se refieren colectivamente a todas las imágenes de referencia que se utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen 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 en la interpredicción para una o más imágenes que siguen la imagen actual en orden de decodificación. Hay una o más entradas en RefPicList[0] o RefPicList[1] que sean iguales a “ninguna imagen de referencia” porque las imágenes correspondientes no están presentes en la DPB. Se debería ignorar cada entrada inactiva en RefPicList[0] o RefPicList[0] que sea igual a “ninguna imagen de referencia”. Se debe inferir que una pérdida de imagen no intencional para cada entrada activa en RefPicList[0] o RefPicList[1] es 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 deberá ser menor que NumRefIdxActive[i]. La imagen a la que se hace referencia por cada entrada activa en RefPicList[0] o RefPicList[1] deberá estar presente en la DPB y deberá tener TemporalId menor o igual que aquel de la imagen actual. Se especifica adicionalmente la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[0] o RefPicList[1] no deberá utilizarse como índice de referencia para decodificación de la imagen actual. Se especifica adicionalmente la siguiente restricción: una entrada inactiva en RefPicList[0] o RefPicList[1] no deberá hacer referencia a la misma imagen que cualquier otra entrada en RefPicList[0] o RefPicList[1]. Ninguna entrada en RefPicList[0] o RefPicList[1] hará referencia a la imagen actual en sí misma. No deberá haber ninguna entrada en RefPicList[0] o RefPicList[1] para la cual la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se hace referencia por la entrada sea mayor o igual que 224. Permítase que setOfRefPics sea el conjunto de imágenes únicas a las que se hace referencia por todas las entradas en RefPicList[0] y todas las entradas en RefPicList[1]. El número de imágenes en setOfRefPics deberá ser menor que o igual a sps_max_dec_pic_buffering_minus1 y setOfRefPics deberá ser el mismo para todos los segmentos de una imagen.
Proceso de decodificación para marcado de imágenes de referencia.
Este proceso se invoca una vez por imagen, después de la decodificación de una cabecera de segmento y el proceso de decodificación para la construcción de la lista de imágenes de referencia para el segmento, pero antes de la decodificación de los datos de segmento. Este proceso da como resultado que una o más imágenes de referencia en la DPB se marquen como “no utilizadas para referencia”. Una imagen decodificada en la DPB se puede marcar como “no utilizada para referencia” o “utilizada para referencia”, pero solo una de estas dos en un 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 corresponde. Cuando la imagen actual es una imagen IRAP, todas las imágenes de referencia actualmente en la DPB (si las hay) se marcan como “no utilizadas para referencia”. Las imágenes de referencia en la DPB se identifican por los Log2(MaxRefPicOrderCntLsb) LSB de sus valores PicOrderCntVal. Cada imagen de referencia en la DPB que no se refiere por ninguna entrada en RefPicList[0] o RefPicList[1] se marca como “no utilizada para referencia”.
Otra realización alternativa.
Esta sección describe una realización alternativa al enfoque especificado anteriormente que se denomina “señalización constante de listas de imágenes de referencia en cabeceras de segmento con diferenciación entre imágenes de referencia a corto plazo y a largo plazo”. En esta realización alternativa, en la cabecera de segmento, se señaliza un ciclo POC MSB para cada entrada LTRP, de manera similar a HEVC o como en los enfoques descritos anteriormente, y se elimina la siguiente restricción: en cualquier momento durante el proceso de decodificación, los valores de PicOrderCntVal & (MaxLtPicOrderCntLsb - 1) para dos imágenes de referencia cualesquiera en la DPB no deberán ser los mismos.
La figura 6 es un diagrama esquemático de un dispositivo de codificación de video 600 (por ejemplo, un codificador de video 20 o un decodificador de video 30) de acuerdo con una realización de la exposición. El dispositivo de codificación de video 600 es adecuado para implementar las realizaciones descritas como se describe en la presente memoria. El dispositivo de codificación de video 600 comprende puertos de entrada 610 y unidades receptoras (Rx) 620 para recibir datos; un procesador, unidad lógica o unidad de procesamiento central (CPU) 630 para procesar los datos; unidades transmisoras (Tx) 640 y puertos de salida 650 para transmitir los datos; y una memoria 660 para almacenar los datos. El dispositivo de codificación de video 600 también comprende componentes óptico a eléctrico (OE) y componentes eléctrico a óptico (EO) acoplados a los puertos de entrada 610, las unidades receptoras 620, las unidades transmisoras 640 y los puertos de salida 650 para salida o entrada de señales ópticas o eléctricas.
El procesador 630 se implementa por hardware y software. El procesador 630 se implementa como uno o más chips de CPU, núcleos (por ejemplo, como un procesador de múltiples núcleos), matrices de puertas lógicas programable en campo (F<p g>A), circuitos integrados de aplicación específica (ASIC) y procesadores de señales digitales (DSP). El procesador 630 está en comunicación con los puertos de entrada 610, las unidades receptoras 620, las unidades transmisoras 640, los puertos de salida 650 y la memoria 660. El procesador 630 comprende un módulo de codificación 670. El módulo de codificación 670 implementa las realizaciones descritas anteriormente. Por ejemplo, el módulo de codificación 670 implementa, procesa, prepara o proporciona las diversas funciones de red. Por lo tanto, la inclusión del módulo de codificación 670 proporciona una mejora sustancial a la funcionalidad del dispositivo de codificación de video 600 y efectúa una transformación del dispositivo de codificación de video 600 a un estado diferente. Alternativamente, el módulo de codificación 670 se implementa como instrucciones almacenadas en la memoria 660 y ejecutadas por el procesador 630.
El dispositivo de codificación de video 600 también incluye dispositivos de entrada y/o salida (E/S) 680 para comunicar datos hacia y desde un usuario. Los dispositivos de E/S 680 pueden incluir dispositivos de salida tal como una pantalla para mostrar datos de video, altavoces para producir datos de audio, etc. Los dispositivos de E/S 680 también incluyen dispositivos de entrada, tales como un teclado, ratón, bola de seguimiento, etc., y/o interfaces correspondientes para interactuar con estos dispositivos de salida.
La memoria 660 comprende uno o más discos, unidades de cinta y unidades de estado sólido y se utiliza como un dispositivo de almacenamiento de datos de desbordamiento, para almacenar programas cuando estos programas se seleccionan para ejecución, y para almacenar instrucciones y datos que se leen durante la ejecución de programa. La memoria 660 es volátil y/o no volátil y es memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM), memoria ternaria direccionable por contenido (TCAM) y/o memoria estática de acceso aleatorio (SRAM).
La figura 7 es un diagrama esquemático de una realización de un medio para codificación 700. En una realización, el medio para codificación 700 se implementa en un dispositivo de codificación de video 702 (por ejemplo, un codificador de video 20 o un decodificador de video 30). El dispositivo de codificación de video 702 incluye un medio de recepción 701. El medio de recepción 701 se configura para recibir una imagen para codificar o recibir un flujo de bits para decodificar. El dispositivo de codificación de video 702 incluye un medio de transmisión 707 acoplado al medio de recepción 701. El medio de transmisión 707 se configura 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 de E/S 680).
El dispositivo de codificación de video 702 incluye un medio de almacenamiento 703. El medio de almacenamiento 703 se acopla a al menos uno del medio de recepción 701 o el medio de transmisión 707. El medio de almacenamiento 703 se configura para almacenar instrucciones. El dispositivo de codificación de video 702 también incluye un medio de procesamiento 705. El medio de procesamiento 705 se acopla al medio de almacenamiento 703. El medio de procesamiento 705 se configura para ejecutar las instrucciones almacenadas en el medio de almacenamiento 703 para realizar los métodos descritos en la presente memoria.
Claims (7)
- REIVINDICACIONES 1. Método (500) para decodificar un flujo de bits de video codificado implementado por un decodificador de video (30) sobre la base de la norma VVC, comprendiendo el método (500): obtener (502) una estructura de lista de imágenes de referencia para un segmento actual representado en el flujo de bits de video codificado, conteniendo la estructura de imágenes de referencia una pluralidad de entradas; construir (504) una lista de imágenes de referencia para el segmento actual sobre la base de la estructura de lista de imágenes de referencia, de tal manera que la pluralidad de entradas en la lista de imágenes de referencia sea la misma que la pluralidad de entradas en la estructura de lista de imágenes de referencia, conteniendo la lista de imágenes de referencia una pluralidad de entradas activas y una pluralidad de entradas inactivas; y obtener (506), sobre la base de al menos una entrada activa de la pluralidad de entradas activas en la lista de imágenes de referencia al menos un bloque reconstruido del segmento actual; estando la estructura de lista de imágenes de referencia presente en un SPS o en una cabecera de segmento, y si la estructura de lista de imágenes de referencia está presente en una cabecera de segmento, la estructura de lista de imágenes de referencia específica una lista de imágenes de referencia listldx de la imagen actual, de lo contrario, la estructura de lista de imágenes de referencia específica una candidata para una lista de imágenes de referencia listldx, siendo un orden de entradas en la estructura de lista de imágenes de referencia el mismo que un orden de imágenes de referencia correspondientes en la lista de imágenes de referencia, definiéndose la estructura de lista de imágenes de referencia según la siguiente tabla:teniendo listIdx un valor de 0 o 1 para especificar una lista de imágenes de referencia; estando, para cada i, rplsldx entre 0 y num_ref_pic_lists_in_sps[i] - 1, especificando num_ref_pic_lists_in_sps [i] el número de ref_pic_list_struct(listIdx, rplsldx, ltrpFlag ) con listldx igual a i incluido en el SPS; siendo ref_pic_list_struct(listldx, rplsldx, ltrpFlag) la estructura de lista de imágenes de referencia; especificando ltrpFlag igual a 0 que no se utiliza ninguna imagen de referencia a largo plazo, LTRP, para la interpredicción de cualquier imagen codificada en una secuencia de video codificada, CVS, y especificando ltrpFlag igual a 1 que se puede usar LTRP para interpredicción de una o más imágenes codificadas en la CVS; siendo lt_ref_pic_flag[listIdx][rplsIdx][i] un indicador de imagen de referencia a largo plazo, especificando lt_ref_pic_flag[listIdx][rplsIdx][i] igual a 1 que la i-ésima entrada en la estructura de lista de imágenes de referencia es una entrada LTRp y especificando lt_ref_pic_flag[listIdx][rplsIdx][i] igual a 0 que la i-ésima entrada en la estructura de lista de imágenes de referencia es una entrada de imagen de referencia a corto plazo, STRP; siendo delta_poc_st[listIdx][rplsIdx][i] un delta POC de la entrada de imagen de referencia a corto plazo, y especificando delta_poc_st[listIdx][rplsIdx][i] la diferencia entre los valores de recuento del orden de imágenes, p Oc , de la imagen actual y la imagen a la que se refiere la i-ésima entrada cuando la i-ésima entrada es la primera entrada STRP en ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag ), o especificando la diferencia entre los valores de recuento del orden de imágenes de las imágenes a las que hace referencia la i-ésima entrada y la entrada STRP anterior en ref_pic_list_struct(listldx, rplsldx, ltrpFlag) cuando la entrada i-ésima es una entrada STRP pero no la primera entrada STRP en ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag); siendo num_strp_entries[listIdx][rplsldx] un número de entradas STRP, y especificando num_strp_entries[listIdx][rplsldx] el número de entradas STRP en la estructura de lista de imágenes de referencia; siendo num_ltrp_entries [listldx] [rplsldx] un número de entradas LTRP, y especificando num_ltrp_entries [listIdx] [rplsldx] el número de entradas LTRP en la estructura de lista de imágenes de referencia; siendo NumEntriesInList[listIdx][rplsIdx] un número de entradas en la estructura de lista de imágenes de referencia, equivaliendo NumEntriesInList[listIdx][rplsIdx] a una suma de num_strp_entries[listIdx][rplsldx] y num_ltrp_entries [listldx] [rplsldx]; representando poc_lsb_lt[listIdx][rplsIdx][i] los bits menos significativos del valor POC completo de la imagen a la que hace referencia la i-ésima entrada en ref_pic_list_struct( listldx, rplsldx, ltrpFlag ).
- 2. Método (500) según la reivindicación 1, en el que la lista de imágenes de referencia para el segmento actual está construida sin utilizar un proceso de inicialización de lista de imágenes de referencia o un proceso de modificación de lista de imágenes de referencia.
- 3. Método (500) según la reivindicación 1 o 2, en el que el al menos un bloque reconstruido se utiliza para generar una imagen representada en una pantalla de un dispositivo electrónico.
- 4. Método (500) según cualquiera de las reivindicaciones 1 a 3, en el que la lista de imágenes de referencia comprende una lista de imágenes de referencia utilizadas para interpredicción del al menos un bloque reconstruido.
- 5. Método (500) según cualquiera de las reivindicaciones 1 a 4, en el que el segmento actual es un segmento P o para un segmento B.
- 6. Dispositivo de decodificación (30) sobre la base de la norma VVC 2 que comprende: un receptor configurado para recibir un flujo de bits de video codificado; una memoria acoplada al receptor, almacenando la memoria unas instrucciones; y un procesador acoplado a la memoria, estando configurado el procesador para ejecutar las instrucciones almacenadas en la memoria para hacer que el procesador: obtenga (502) una estructura de lista de imágenes de referencia para un segmento actual representado en el flujo de bits de video codificado, conteniendo la estructura de lista de imágenes de referencia una pluralidad de entradas; construya (504) una lista de imágenes de referencia para el segmento actual sobre la base de la estructura de lista de imágenes de referencia de tal manera que la pluralidad de entradas en la lista de imágenes de referencia sea la misma que la pluralidad de entradas en la estructura de lista de imágenes de referencia, conteniendo la lista de imágenes de referencia una pluralidad de entradas activas y una pluralidad de entradas inactivas; y obtenga (506) sobre la base de al menos un entrada activa de la lista de imágenes de referencia por lo menos un bloque reconstruido del segmento actual; estando la estructura de lista de imágenes de referencia presente en un SPS o en una cabecera de segmento, y si la estructura de lista de imágenes de referencia está presente en una cabecera de segmento, la estructura de lista de imágenes de referencia especifica una lista de imágenes de referencia listldx de la imagen actual, de lo contrario, la estructura de lista de imágenes de referencia especifica una candidata para una lista de imágenes de referencia listldx, siendo un orden de entradas en la estructura de lista de imágenes de referencia el mismo que un orden de imágenes de referencia correspondientes en la lista de imágenes de referencia, definiéndose la estructura de lista de imágenes de referencia según la siguiente tabla:teniendo listIdx un valor de 0 o 1 para especificar una lista de imágenes de referencia; estando, para cada i, rplsldx entre 0 y num_ref_picjists_in_sps[i] - 1, especificando num_ref_picjists_in_sps [i] el número de ref_pic_list_struct(listIdx, rplsldx, ltrpFlag ) con listldx igual a i incluido en el SPS; siendo ref_pic_list_struct(listldx, rplsldx, ltrpFlag) la estructura de lista de imágenes de referencia; especificando ltrpFlag igual a 0 que no se utiliza ninguna imagen de referencia a largo plazo, LTRP, para la interpredicción de cualquier imagen codificada en una secuencia de video codificada, CVS, y especificando ltrpFlag igual a 1 que se puede usar LTRP para interpredicción de una o más imágenes codificadas en la CVS; siendo lt_ref_pic_flag[listIdx][rplsIdx][i] un indicador de imagen de referencia a largo plazo, especificando lt_ref_pic_flag[listIdx][rplsIdx][i] igual a 1 que la i-ésima entrada en la estructura de lista de imágenes de referencia es una entrada LTRp y especificando lt_ref_pic_flag[listIdx][rplsIdx][i] igual a 0 que la i-ésima entrada en la estructura de lista de imágenes de referencia es una entrada de imagen de referencia a corto plazo, STRP; siendo delta_poc_st[listIdx][rplsIdx][i] un delta POC de la entrada de imagen de referencia a corto plazo, y especificando delta_poc_st[listIdx][rplsIdx][i] la diferencia entre los valores de recuento del orden de imágenes de la imagen actual y la imagen a la que se refiere la i-ésima entrada cuando la i-ésima entrada es la primera entrada STRP en ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag ), o especificando la diferencia entre los valores de recuento del orden de imágenes de las imágenes a las que hace referencia la i-ésima entrada y la entrada STRP anterior en ref_pic_list_struct(listldx, rplsldx, ltrpFlag) cuando la i-ésima entrada es una entrada STRP pero no la primera entrada STRP en ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag); siendo num_strp_entries[listIdx][rplsldx] un número de entradas STRP, y especificando num_strp_entries[listIdx][rplsldx] el número de entradas STRP en la estructura de lista de imágenes de referencia; siendo num_ltrp_entries [listldx] [rplsldx] un número de entradas LTRP, y especificando num_ltrp_entries [listIdx] [rplsldx] el número de entradas LTRP en la estructura de lista de imágenes de referencia; siendo NumEntriesInList[listIdx][rplsIdx] un número de entradas en la estructura de lista de imágenes de referencia, equivaliendo NumEntriesInList[listIdx][rplsIdx] a una suma de num_strp_entries[listIdx][rplsldx] y num_ltrp_entries [listldx] [rplsldx]; representando poc_lsb_lt[listIdx][rplsIdx][i] los bits menos significativos del valor POC completo de la imagen a la que hace referencia la i-ésima entrada en ref_pic_list_struct( listldx, rplsldx, ltrpFlag).
- 7. Dispositivo de decodificación (30) según la reivindicación 6, que comprende además una pantalla configurada para representar una imagen sobre la base del al menos un bloque reconstruido.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862719360P | 2018-08-17 | 2018-08-17 | |
| PCT/US2019/046933 WO2020037277A1 (en) | 2018-08-17 | 2019-08-16 | Reference picture management in video coding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2981233T3 true ES2981233T3 (es) | 2024-10-07 |
Family
ID=69525847
Family Applications (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19850237T Active ES3010144T3 (en) | 2018-08-17 | 2019-08-16 | Reference picture management in video coding |
| ES19850236T Active ES3062309T3 (en) | 2018-08-17 | 2019-08-16 | Reference picture management in video coding |
| ES19850047T Active ES2981233T3 (es) | 2018-08-17 | 2019-08-16 | Gestión de imágenes de referencia en codificación de video |
| ES19850149T Active ES3014003T3 (en) | 2018-08-17 | 2019-08-16 | Reference picture management in video coding |
Family Applications Before (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19850237T Active ES3010144T3 (en) | 2018-08-17 | 2019-08-16 | Reference picture management in video coding |
| ES19850236T Active ES3062309T3 (en) | 2018-08-17 | 2019-08-16 | Reference picture management in video coding |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19850149T Active ES3014003T3 (en) | 2018-08-17 | 2019-08-16 | Reference picture management in video coding |
Country Status (25)
| Country | Link |
|---|---|
| US (16) | US12015761B2 (es) |
| EP (11) | EP4336832A3 (es) |
| JP (15) | JP7547319B2 (es) |
| KR (15) | KR102610092B1 (es) |
| CN (14) | CN113412620A (es) |
| AU (1) | AU2019322914B2 (es) |
| BR (6) | BR112021002501A2 (es) |
| CA (1) | CA3109799C (es) |
| CL (1) | CL2021000397A1 (es) |
| DK (2) | DK3831064T3 (es) |
| ES (4) | ES3010144T3 (es) |
| FI (1) | FI3831064T3 (es) |
| HU (2) | HUE066343T2 (es) |
| IL (1) | IL280944B2 (es) |
| MX (9) | MX2021001743A (es) |
| MY (1) | MY207383A (es) |
| NZ (1) | NZ773625A (es) |
| PH (1) | PH12021550312A1 (es) |
| PL (4) | PL3831055T3 (es) |
| PT (2) | PT3831064T (es) |
| SG (6) | SG11202100647TA (es) |
| SI (1) | SI3831064T1 (es) |
| UA (1) | UA128290C2 (es) |
| WO (6) | WO2020037272A1 (es) |
| ZA (2) | ZA202100951B (es) |
Families Citing this family (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7088606B2 (ja) | 2018-04-02 | 2022-06-21 | エスゼット ディージェイアイ テクノロジー カンパニー リミテッド | 動画処理方法、画像処理装置、プログラム、符号化デバイス、及び復号化デバイス |
| KR102610092B1 (ko) | 2018-08-17 | 2023-12-04 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 비디오 코딩의 참조 픽처 관리 |
| US11463736B2 (en) * | 2018-09-21 | 2022-10-04 | Sharp Kabushiki Kaisha | Systems and methods for signaling reference pictures in video coding |
| CN113170203B (zh) * | 2018-12-10 | 2024-07-26 | 夏普株式会社 | 用于在视频编码中发送信号通知参考图片的系统和方法 |
| CN117156127B (zh) * | 2019-01-02 | 2026-02-10 | Oppo广东移动通信有限公司 | 对视频信号进行编解码的方法和设备以及计算机可读介质 |
| CN119052469A (zh) * | 2019-01-28 | 2024-11-29 | Op方案有限责任公司 | 扩展长期参考图片保留的在线和离线选择 |
| US11395006B2 (en) * | 2019-03-06 | 2022-07-19 | Tencent America LLC | Network abstraction layer unit header |
| US11516468B2 (en) * | 2019-03-12 | 2022-11-29 | Sony Group Corporation | Image decoding device, image decoding method, image encoding device, and image encoding method |
| WO2021187375A1 (en) * | 2020-03-18 | 2021-09-23 | Sharp Kabushiki Kaisha | Systems and methods for applying deblocking filters in video coding |
| KR102850346B1 (ko) * | 2020-03-19 | 2025-08-25 | 바이트댄스 아이엔씨 | 레퍼런스 픽처 순서에 대한 제약들 |
| US12132887B2 (en) * | 2020-03-31 | 2024-10-29 | Sharp Kabushiki Kaisha | Video decoding apparatus, video coding apparatus, video decoding method, and video coding method |
| JP7741795B2 (ja) * | 2020-04-02 | 2025-09-18 | シャープ株式会社 | 動画像復号装置、動画像復号方法及び動画像符号化装置 |
| CA3136422A1 (en) * | 2020-05-20 | 2021-11-20 | Tencent America LLC | Techniques for random access point indication and picture output in coded video stream |
| US11558630B2 (en) | 2020-05-20 | 2023-01-17 | Tencent America LLC | Techniques for random access point indication and picture output in coded video stream |
| CN119052501A (zh) * | 2020-05-21 | 2024-11-29 | 阿里巴巴集团控股有限公司 | 用于进行视频数据处理的计算机实现方法、装置及存储介质 |
| US11695938B2 (en) * | 2021-01-05 | 2023-07-04 | Dish Network Technologies India Private Limited | Method and apparatus for thumbnail generation for a video device |
| CN116781907A (zh) * | 2022-03-11 | 2023-09-19 | 华为技术有限公司 | 编解码方法及电子设备 |
| EP4533800A4 (en) * | 2022-05-31 | 2026-04-15 | Sharp Kk | SYSTEMS AND METHODS FOR SIGNALING INFORMATION FROM A LIST OF REFERENCE IMAGES IN A VIDEO ENCODING |
| WO2024126057A1 (en) * | 2022-12-16 | 2024-06-20 | Interdigital Ce Patent Holdings, Sas | Reference picture marking process based on temporal identifier |
| CN116095330A (zh) * | 2023-01-10 | 2023-05-09 | 鹏城实验室 | 一种动态位深的编解码方法及相关装置 |
| WO2025009941A1 (ko) * | 2023-07-05 | 2025-01-09 | 엘지전자 주식회사 | 영상 복호화 방법, 영상 부호화 방법 및 비트스트림을 전송하는 방법 |
| KR20250078118A (ko) | 2023-11-24 | 2025-06-02 | 주식회사 엘지에너지솔루션 | 배터리 관리 장치 및 그 충전 제어 방법 |
| CN119094792B (zh) * | 2024-11-06 | 2025-02-14 | 武汉凌久微电子有限公司 | 一种短期参考图像参数集解析方法及码流更新方法 |
Family Cites Families (117)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| MXPA06002211A (es) * | 2003-08-26 | 2006-05-19 | Thomson Licensing | Metodo y aparato para reducir al minimo el numero de imagenes de referencia utilizadas para inter-codificacion. |
| FI115589B (fi) * | 2003-10-14 | 2005-05-31 | Nokia Corp | Redundanttien kuvien koodaaminen ja dekoodaaminen |
| US8948256B2 (en) * | 2006-10-13 | 2015-02-03 | Thomson Licensing | Reference picture list management syntax for multiple view video coding |
| WO2009023091A2 (en) * | 2007-08-15 | 2009-02-19 | Thomson Licensing | Methods and apparatus for motion skip mode in multi-view coded video using regional disparity vectors |
| WO2010086500A1 (en) | 2009-01-28 | 2010-08-05 | Nokia Corporation | Method and apparatus for video coding and decoding |
| US8693539B2 (en) | 2009-03-26 | 2014-04-08 | Panasonic Corporation | Coding method, error detecting method, decoding method, coding apparatus, error detecting apparatus, and decoding apparatus |
| US20120044322A1 (en) * | 2009-05-01 | 2012-02-23 | Dong Tian | 3d video coding formats |
| KR101752418B1 (ko) * | 2010-04-09 | 2017-06-29 | 엘지전자 주식회사 | 비디오 신호 처리 방법 및 장치 |
| US20130271571A1 (en) * | 2010-12-27 | 2013-10-17 | Telefonaktiebolaget L M Ericsson (Publ) | Method and Arrangement for Processing of Encoded Video |
| AU2012205813B2 (en) * | 2011-01-14 | 2016-07-07 | Vidyo, Inc. | High layer syntax for temporal scalability |
| US9008176B2 (en) * | 2011-01-22 | 2015-04-14 | Qualcomm Incorporated | Combined reference picture list construction for video coding |
| US8934552B2 (en) * | 2011-03-31 | 2015-01-13 | Qualcomm Incorporated | Combined reference picture list construction and mapping |
| CN103621091A (zh) * | 2011-04-26 | 2014-03-05 | Lg电子株式会社 | 管理参考图片列表的方法及使用该方法的装置 |
| ES2595732T3 (es) * | 2011-06-30 | 2017-01-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Señalización de imágenes de referencia |
| US9521418B2 (en) | 2011-07-22 | 2016-12-13 | Qualcomm Incorporated | Slice header three-dimensional video extension for slice header prediction |
| US10034018B2 (en) * | 2011-09-23 | 2018-07-24 | Velos Media, Llc | Decoded picture buffer management |
| US10075733B2 (en) | 2011-09-29 | 2018-09-11 | Sharp Kabushiki Kaisha | Image decoding device, image decoding method, and image encoding device |
| US9451284B2 (en) * | 2011-10-10 | 2016-09-20 | Qualcomm Incorporated | Efficient signaling of reference picture sets |
| US9264717B2 (en) | 2011-10-31 | 2016-02-16 | Qualcomm Incorporated | Random access with advanced decoded picture buffer (DPB) management in video coding |
| JP5768662B2 (ja) * | 2011-10-31 | 2015-08-26 | 富士通株式会社 | 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム |
| US10003817B2 (en) * | 2011-11-07 | 2018-06-19 | Microsoft Technology Licensing, Llc | Signaling of state information for a decoded picture buffer and reference picture lists |
| EP3576412B1 (en) * | 2011-11-08 | 2021-09-01 | Nokia Technologies Oy | Reference picture handling |
| US20130114710A1 (en) * | 2011-11-08 | 2013-05-09 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding video by prediction using reference picture list, and method and apparatus for decoding video by performing compensation using reference picture list |
| US10440389B2 (en) * | 2011-11-11 | 2019-10-08 | Lg Electronics Inc. | Method and device for transmitting image information, and decoding method and device using same |
| US9386309B2 (en) * | 2011-11-18 | 2016-07-05 | Google Technology Holdings LLC | Explicit way for signaling a collocated picture for high efficiency video coding (HEVC) using a single reference list |
| US9392235B2 (en) | 2011-11-18 | 2016-07-12 | Google Technology Holdings LLC | Explicit way for signaling a collocated reference picture for video coding |
| US9485503B2 (en) * | 2011-11-18 | 2016-11-01 | Qualcomm Incorporated | Inside view motion prediction among texture and depth view components |
| US9258559B2 (en) * | 2011-12-20 | 2016-02-09 | Qualcomm Incorporated | Reference picture list construction for multi-view and three-dimensional video coding |
| KR102053028B1 (ko) * | 2012-01-17 | 2019-12-06 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 참조영상 리스트 처리 |
| US8867852B2 (en) * | 2012-01-19 | 2014-10-21 | Sharp Kabushiki Kaisha | Decoding a picture based on a reference picture set on an electronic device |
| US20130188709A1 (en) | 2012-01-25 | 2013-07-25 | Sachin G. Deshpande | Video decoder for tiles with absolute signaling |
| US11445172B2 (en) * | 2012-01-31 | 2022-09-13 | Vid Scale, Inc. | Reference picture set (RPS) signaling for scalable high efficiency video coding (HEVC) |
| US9369710B2 (en) * | 2012-02-06 | 2016-06-14 | Qualcomm Incorporated | Reference picture list modification for video coding |
| US20150071351A1 (en) * | 2012-04-15 | 2015-03-12 | Samsung Electronics Co., Ltd. | Inter prediction method in which reference picture lists can be changed and apparatus for the same |
| MY172302A (en) * | 2012-04-15 | 2019-11-21 | Samsung Electronics Co Ltd | Method and apparatus for determining reference images for inter-prediction |
| WO2013162980A2 (en) * | 2012-04-23 | 2013-10-31 | Google Inc. | Managing multi-reference picture buffers for video data coding |
| KR102106536B1 (ko) | 2012-04-25 | 2020-05-06 | 삼성전자주식회사 | 다시점 비디오 예측을 위한 참조픽처세트를 이용하는 다시점 비디오 부호화 방법 및 그 장치, 다시점 비디오 예측을 위한 참조픽처세트를 이용하는 다시점 비디오 복호화 방법 및 그 장치 |
| US9762903B2 (en) | 2012-06-01 | 2017-09-12 | Qualcomm Incorporated | External pictures in video coding |
| US9319679B2 (en) * | 2012-06-07 | 2016-04-19 | Qualcomm Incorporated | Signaling data for long term reference pictures for video coding |
| US9838685B2 (en) * | 2012-06-15 | 2017-12-05 | Google Technology Holdings LLC | Method and apparatus for efficient slice header processing |
| US9591303B2 (en) | 2012-06-28 | 2017-03-07 | Qualcomm Incorporated | Random access and signaling of long-term reference pictures in video coding |
| US9332255B2 (en) * | 2012-06-28 | 2016-05-03 | Qualcomm Incorporated | Signaling long-term reference pictures for video coding |
| CN108347606B (zh) * | 2012-07-01 | 2022-08-19 | 夏普株式会社 | 电子设备及方法 |
| WO2014008402A1 (en) * | 2012-07-05 | 2014-01-09 | Vid Scale, Inc. | Layer dependency and priority signaling design for scalable video coding |
| US9167248B2 (en) * | 2012-07-13 | 2015-10-20 | Qualcomm Incorporated | Reference picture list modification for video coding |
| US9398284B2 (en) * | 2012-08-16 | 2016-07-19 | Qualcomm Incorporated | Constructing reference picture lists for multi-view or 3DV video coding |
| US20140056356A1 (en) * | 2012-08-21 | 2014-02-27 | Motorola Mobility Llc | Method and apparatus for efficient signaling of weighted prediction in advanced coding schemes |
| WO2014039778A2 (en) * | 2012-09-07 | 2014-03-13 | Vid Scale, Inc. | Reference picture lists modification |
| KR102238567B1 (ko) * | 2012-09-19 | 2021-04-08 | 퀄컴 인코포레이티드 | 디스패리티 벡터 유도를 위한 화상들의 선택 |
| US9584825B2 (en) * | 2012-09-27 | 2017-02-28 | Qualcomm Incorporated | Long-term reference picture signaling in video coding |
| KR102414518B1 (ko) * | 2012-09-28 | 2022-06-29 | 엘지전자 주식회사 | 영상 복호화 방법 및 이를 이용하는 장치 |
| US9479782B2 (en) * | 2012-09-28 | 2016-10-25 | Qualcomm Incorporated | Supplemental enhancement information message coding |
| CN108540813B (zh) * | 2012-09-28 | 2021-03-16 | 杜比国际公司 | 图像解码装置 |
| CN110545421B (zh) * | 2012-10-12 | 2022-11-22 | 韩国电子通信研究院 | 图像编码/解码方法和使用其的装置 |
| KR102381380B1 (ko) * | 2012-11-21 | 2022-04-01 | 엘지전자 주식회사 | 영상 디코딩 방법 및 이를 이용하는 장치 |
| WO2014089805A1 (en) * | 2012-12-13 | 2014-06-19 | Mediatek Singapore Pte. Ltd. | A new reference management method for video coding |
| US9992513B2 (en) | 2012-12-21 | 2018-06-05 | Sony Corporation | Image processing efficient transmission or reception of encoded information |
| US10021388B2 (en) * | 2012-12-26 | 2018-07-10 | Electronics And Telecommunications Research Institute | Video encoding and decoding method and apparatus using the same |
| KR20140087971A (ko) * | 2012-12-26 | 2014-07-09 | 한국전자통신연구원 | 계층적 비디오 부호화에서 다중참조계층을 적용한 화면간 부/복호화 방법 및 그 장치 |
| JPWO2014103529A1 (ja) * | 2012-12-28 | 2017-01-12 | シャープ株式会社 | 画像復号装置、およびデータ構造 |
| JP6209772B2 (ja) * | 2013-01-15 | 2017-10-11 | 華為技術有限公司Huawei Technologies Co.,Ltd. | シグナリングを用いたビデオデコーダ |
| KR102273025B1 (ko) * | 2013-03-06 | 2021-07-05 | 삼성전자주식회사 | 선택적인 노이즈제거 필터링을 이용한 스케일러블 비디오 부호화 방법 및 그 장치, 선택적인 노이즈제거 필터링을 이용한 스케일러블 비디오 복호화 방법 및 그 장치 |
| US9532067B2 (en) * | 2013-04-05 | 2016-12-27 | Sharp Kabushiki Kaisha | Decoding of inter-layer reference picture set and reference picture list construction |
| WO2014162739A1 (en) * | 2013-04-05 | 2014-10-09 | Sharp Kabushiki Kaisha | Decoding of inter-layer reference picture set and reference picture list construction |
| WO2015006922A1 (en) * | 2013-07-16 | 2015-01-22 | Mediatek Singapore Pte. Ltd. | Methods for residual prediction |
| US9860529B2 (en) | 2013-07-16 | 2018-01-02 | Qualcomm Incorporated | Processing illumination compensation for video coding |
| US9560358B2 (en) * | 2013-07-22 | 2017-01-31 | Qualcomm Incorporated | Device and method for scalable coding of video information |
| GB2516824A (en) | 2013-07-23 | 2015-02-11 | Nokia Corp | An apparatus, a method and a computer program for video coding and decoding |
| CN105453562B (zh) * | 2013-07-30 | 2018-12-25 | 株式会社Kt | 支持多个层的图像编码和解码方法以及使用该方法的装置 |
| CN105453563B (zh) * | 2013-07-30 | 2019-08-16 | 株式会社Kt | 支持多个层的图像编码和解码方法以及使用该方法的装置 |
| JP6393317B2 (ja) | 2013-10-10 | 2018-09-19 | シャープ株式会社 | 復号方法及び符号化方法 |
| US20150103912A1 (en) | 2013-10-11 | 2015-04-16 | Electronics And Telecommunications Research Institute | Method and apparatus for video encoding/decoding based on multi-layer |
| US9674544B2 (en) * | 2013-11-25 | 2017-06-06 | Qualcomm Incorporated | POC value design for multi-layer video coding |
| US9654774B2 (en) * | 2013-12-12 | 2017-05-16 | Qualcomm Incorporated | POC value design for multi-layer video coding |
| US10110925B2 (en) * | 2014-01-03 | 2018-10-23 | Hfi Innovation Inc. | Method of reference picture selection and signaling in 3D and multi-view video coding |
| WO2015101716A1 (en) | 2014-01-03 | 2015-07-09 | Nokia Technologies Oy | Parameter set coding |
| US9866869B2 (en) * | 2014-03-17 | 2018-01-09 | Qualcomm Incorporated | POC value design for multi-layer video coding |
| US10432928B2 (en) | 2014-03-21 | 2019-10-01 | Qualcomm Incorporated | Using a current picture as a reference for video coding |
| US9788007B2 (en) | 2014-06-20 | 2017-10-10 | Qualcomm Incorporated | Profile, tier, level for the 0-th output layer set in video coding |
| US10412387B2 (en) | 2014-08-22 | 2019-09-10 | Qualcomm Incorporated | Unified intra-block copy and inter-prediction |
| WO2016048834A1 (en) * | 2014-09-26 | 2016-03-31 | Vid Scale, Inc. | Intra block copy coding with temporal block vector prediction |
| US9918105B2 (en) | 2014-10-07 | 2018-03-13 | Qualcomm Incorporated | Intra BC and inter unification |
| GB2531271A (en) * | 2014-10-14 | 2016-04-20 | Nokia Technologies Oy | An apparatus, a method and a computer program for image sequence coding and decoding |
| CA2977526C (en) * | 2015-02-27 | 2020-02-18 | Arris Enterprises Llc | Modification of unification of intra block copy and inter signaling related syntax and semantics |
| AU2016253924B2 (en) * | 2015-04-29 | 2018-11-01 | Hfi Innovation Inc. | Method and apparatus for intra block copy reference list construction |
| US10638140B2 (en) | 2015-05-29 | 2020-04-28 | Qualcomm Incorporated | Slice level intra block copy and other video coding improvements |
| CN107615762B (zh) | 2015-05-29 | 2020-06-26 | 寰发股份有限公司 | 一种管理解码图像缓存器并解码视频比特流的方法及装置 |
| US10516891B2 (en) * | 2015-11-20 | 2019-12-24 | Intel Corporation | Method and system of reference frame caching for video coding |
| US10555002B2 (en) * | 2016-01-21 | 2020-02-04 | Intel Corporation | Long term reference picture coding |
| FI20165114A7 (fi) * | 2016-02-17 | 2017-08-18 | Nokia Technologies Oy | Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten |
| US11095898B2 (en) * | 2016-03-28 | 2021-08-17 | Lg Electronics Inc. | Inter-prediction mode based image processing method, and apparatus therefor |
| KR102353778B1 (ko) * | 2016-10-11 | 2022-01-20 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
| EP3535977A4 (en) * | 2016-11-01 | 2020-05-20 | Nokia Technologies Oy | APPARATUS, METHOD, AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING |
| US20190364298A1 (en) * | 2016-11-22 | 2019-11-28 | Electronics And Telecommunications Research Institute | Image encoding/decoding method and device, and recording medium having bitstream stored thereon |
| US11095907B2 (en) * | 2017-03-27 | 2021-08-17 | Nokia Technologies Oy | Apparatus, a method and a computer program for video coding and decoding |
| US10679415B2 (en) | 2017-07-05 | 2020-06-09 | Qualcomm Incorporated | Enhanced signaling of regions of interest in container files and video bitstreams |
| US10652571B2 (en) | 2018-01-25 | 2020-05-12 | Qualcomm Incorporated | Advanced motion vector prediction speedups for video coding |
| US10638133B2 (en) | 2018-01-31 | 2020-04-28 | Qualcomm Incorporated | Delta quantization parameter (QP) coding options for video |
| KR102610092B1 (ko) | 2018-08-17 | 2023-12-04 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 비디오 코딩의 참조 픽처 관리 |
| EP4164227A1 (en) | 2018-09-12 | 2023-04-12 | Huawei Technologies Co., Ltd. | A video encoder, a video decoder and corresponding methods |
| CN113170203B (zh) | 2018-12-10 | 2024-07-26 | 夏普株式会社 | 用于在视频编码中发送信号通知参考图片的系统和方法 |
| EP3928512A4 (en) | 2019-03-11 | 2022-06-22 | Huawei Technologies Co., Ltd. | STEP BY DECODE REFRESHMENT IN VIDEO ENCODING |
| US10986353B2 (en) * | 2019-03-15 | 2021-04-20 | Tencent America LLC | Decoded picture buffer management for video coding |
| EP3954124A4 (en) * | 2019-05-12 | 2022-08-03 | Beijing Bytedance Network Technology Co., Ltd. | SIGNALING FOR REFERENCE FRAME RESCAN |
| US11418813B2 (en) * | 2019-09-20 | 2022-08-16 | Tencent America LLC | Signaling of inter layer prediction in video bitstream |
| CN121531144A (zh) * | 2019-10-25 | 2026-02-13 | 夏普株式会社 | 用于在视频编码中发送信号通知图片信息的系统和方法 |
| US12088848B2 (en) | 2019-12-11 | 2024-09-10 | Sharp Kabushiki Kaisha | Systems and methods for signaling output layer set information in video coding |
| CN115362673B (zh) * | 2020-02-14 | 2025-12-02 | 抖音视界有限公司 | 视频比特流中的并置图片指示 |
| US11496771B2 (en) | 2020-02-24 | 2022-11-08 | Qualcomm Incorporated | Reference picture list and collocated picture signaling in video coding |
| AR121124A1 (es) * | 2020-02-29 | 2022-04-20 | Beijing Bytedance Network Tech Co Ltd | Señalización condicional de elementos de sintaxis en una cabecera de imagen |
| US11743503B2 (en) * | 2020-05-14 | 2023-08-29 | Qualcomm Incorporated | Reference picture list constraints and signaling in video coding |
| CN119052501A (zh) * | 2020-05-21 | 2024-11-29 | 阿里巴巴集团控股有限公司 | 用于进行视频数据处理的计算机实现方法、装置及存储介质 |
| WO2021236903A1 (en) | 2020-05-21 | 2021-11-25 | Bytedance Inc. | Signaling of gradual decoding refresh and reference picture lists |
| WO2021242716A1 (en) | 2020-05-26 | 2021-12-02 | Bytedance Inc. | Identification of inter-layer reference pictures in coded video |
| WO2021239085A1 (en) * | 2020-05-28 | 2021-12-02 | Beijing Bytedance Network Technology Co., Ltd. | Reference picture list signaling in video coding |
| US11882270B2 (en) * | 2020-06-09 | 2024-01-23 | Hfi Innovation Inc. | Method and apparatus for video coding with constraints on reference picture lists of a RADL picture |
| JP7649730B2 (ja) | 2021-11-04 | 2025-03-21 | 株式会社日立製作所 | 異常検出装置、異常検出システム、及び異常検出方法 |
-
2019
- 2019-08-16 KR KR1020217007279A patent/KR102610092B1/ko active Active
- 2019-08-16 KR KR1020257030682A patent/KR20250139889A/ko active Pending
- 2019-08-16 PL PL19850149.6T patent/PL3831055T3/pl unknown
- 2019-08-16 EP EP23210671.6A patent/EP4336832A3/en active Pending
- 2019-08-16 SG SG11202100647TA patent/SG11202100647TA/en unknown
- 2019-08-16 CN CN201980054191.0A patent/CN113412620A/zh active Pending
- 2019-08-16 PT PT198500472T patent/PT3831064T/pt unknown
- 2019-08-16 WO PCT/US2019/046927 patent/WO2020037272A1/en not_active Ceased
- 2019-08-16 SG SG11202101404WA patent/SG11202101404WA/en unknown
- 2019-08-16 KR KR1020237041442A patent/KR102844155B1/ko active Active
- 2019-08-16 NZ NZ773625A patent/NZ773625A/en unknown
- 2019-08-16 CN CN202510338006.8A patent/CN120547324A/zh active Pending
- 2019-08-16 EP EP24212343.8A patent/EP4550787A3/en active Pending
- 2019-08-16 SG SG11202101399VA patent/SG11202101399VA/en unknown
- 2019-08-16 KR KR1020237041434A patent/KR102844156B1/ko active Active
- 2019-08-16 MX MX2021001743A patent/MX2021001743A/es unknown
- 2019-08-16 HU HUE19850047A patent/HUE066343T2/hu unknown
- 2019-08-16 EP EP19849559.0A patent/EP3831054B1/en active Active
- 2019-08-16 JP JP2021507884A patent/JP7547319B2/ja active Active
- 2019-08-16 CN CN202111341983.1A patent/CN114584775B/zh active Active
- 2019-08-16 PL PL19850237.9T patent/PL3831056T3/pl unknown
- 2019-08-16 DK DK19850047.2T patent/DK3831064T3/da active
- 2019-08-16 MY MYPI2021000777A patent/MY207383A/en unknown
- 2019-08-16 EP EP19850378.1A patent/EP3831057A4/en active Pending
- 2019-08-16 EP EP19850236.1A patent/EP3831070B1/en active Active
- 2019-08-16 KR KR1020237041433A patent/KR102830936B1/ko active Active
- 2019-08-16 EP EP19850237.9A patent/EP3831056B1/en active Active
- 2019-08-16 WO PCT/US2019/046934 patent/WO2020037278A1/en not_active Ceased
- 2019-08-16 BR BR112021002501-4A patent/BR112021002501A2/pt unknown
- 2019-08-16 WO PCT/US2019/046932 patent/WO2020037276A1/en not_active Ceased
- 2019-08-16 CN CN202111390353.3A patent/CN114697663B/zh active Active
- 2019-08-16 CN CN201980054199.7A patent/CN112585974A/zh active Pending
- 2019-08-16 CN CN201980054198.2A patent/CN112585973A/zh active Pending
- 2019-08-16 SI SI201930747T patent/SI3831064T1/sl unknown
- 2019-08-16 AU AU2019322914A patent/AU2019322914B2/en active Active
- 2019-08-16 WO PCT/US2019/046929 patent/WO2020037274A1/en not_active Ceased
- 2019-08-16 WO PCT/US2019/046933 patent/WO2020037277A1/en not_active Ceased
- 2019-08-16 JP JP2021507904A patent/JP7564090B2/ja active Active
- 2019-08-16 CN CN201980053797.2A patent/CN112567746A/zh active Pending
- 2019-08-16 BR BR112021002832-3A patent/BR112021002832A2/pt unknown
- 2019-08-16 KR KR1020237041439A patent/KR102827866B1/ko active Active
- 2019-08-16 WO PCT/US2019/046928 patent/WO2020037273A1/en not_active Ceased
- 2019-08-16 KR KR1020217007257A patent/KR102610089B1/ko active Active
- 2019-08-16 EP EP24214075.4A patent/EP4507302A3/en active Pending
- 2019-08-16 PL PL19850047.2T patent/PL3831064T3/pl unknown
- 2019-08-16 EP EP19850149.6A patent/EP3831055B1/en active Active
- 2019-08-16 ES ES19850237T patent/ES3010144T3/es active Active
- 2019-08-16 JP JP2021507940A patent/JP7556846B2/ja active Active
- 2019-08-16 BR BR112021002486-7A patent/BR112021002486A2/pt unknown
- 2019-08-16 EP EP25207425.7A patent/EP4723633A2/en active Pending
- 2019-08-16 PL PL19850236.1T patent/PL3831070T3/pl unknown
- 2019-08-16 JP JP2021507913A patent/JP7223118B2/ja active Active
- 2019-08-16 KR KR1020217007129A patent/KR102659936B1/ko active Active
- 2019-08-16 KR KR1020237041409A patent/KR102844154B1/ko active Active
- 2019-08-16 JP JP2021507958A patent/JP7278366B2/ja active Active
- 2019-08-16 CN CN202111289546.XA patent/CN114554196B/zh active Active
- 2019-08-16 ES ES19850236T patent/ES3062309T3/es active Active
- 2019-08-16 CN CN202111340765.6A patent/CN114205590B/zh active Active
- 2019-08-16 SG SG11202100648RA patent/SG11202100648RA/en unknown
- 2019-08-16 KR KR1020257022216A patent/KR20250106333A/ko active Pending
- 2019-08-16 KR KR1020247012883A patent/KR102861658B1/ko active Active
- 2019-08-16 KR KR1020257021476A patent/KR20250107940A/ko active Pending
- 2019-08-16 SG SG11202101406PA patent/SG11202101406PA/en unknown
- 2019-08-16 EP EP19850047.2A patent/EP3831064B1/en active Active
- 2019-08-16 CN CN201980053796.8A patent/CN112567744A/zh active Pending
- 2019-08-16 DK DK19850149.6T patent/DK3831055T3/da active
- 2019-08-16 EP EP24214420.2A patent/EP4507301A3/en active Pending
- 2019-08-16 KR KR1020217007234A patent/KR102610093B1/ko active Active
- 2019-08-16 KR KR1020217007184A patent/KR102610094B1/ko active Active
- 2019-08-16 JP JP2021507956A patent/JP7730757B2/ja active Active
- 2019-08-16 MX MX2021001744A patent/MX2021001744A/es unknown
- 2019-08-16 CN CN202111390366.0A patent/CN114501018B/zh active Active
- 2019-08-16 CN CN201980054208.2A patent/CN113141784A/zh active Pending
- 2019-08-16 PT PT198501496T patent/PT3831055T/pt unknown
- 2019-08-16 CA CA3109799A patent/CA3109799C/en active Active
- 2019-08-16 BR BR112021002483-2A patent/BR112021002483A2/pt unknown
- 2019-08-16 SG SG11202101407QA patent/SG11202101407QA/en unknown
- 2019-08-16 BR BR112021002491-3A patent/BR112021002491A2/pt unknown
- 2019-08-16 CN CN202111341982.7A patent/CN114584774B/zh active Active
- 2019-08-16 ES ES19850047T patent/ES2981233T3/es active Active
- 2019-08-16 KR KR1020217007340A patent/KR102609949B1/ko active Active
- 2019-08-16 CN CN202410572266.7A patent/CN118660154A/zh active Pending
- 2019-08-16 HU HUE19850149A patent/HUE069899T2/hu unknown
- 2019-08-16 BR BR112021002499-9A patent/BR112021002499A2/pt unknown
- 2019-08-16 UA UAA202101321A patent/UA128290C2/uk unknown
- 2019-08-16 IL IL280944A patent/IL280944B2/en unknown
- 2019-08-16 MX MX2021001838A patent/MX2021001838A/es unknown
- 2019-08-16 MX MX2021001745A patent/MX2021001745A/es unknown
- 2019-08-16 FI FIEP19850047.2T patent/FI3831064T3/fi active
- 2019-08-16 ES ES19850149T patent/ES3014003T3/es active Active
-
2021
- 2021-02-10 PH PH12021550312A patent/PH12021550312A1/en unknown
- 2021-02-11 ZA ZA2021/00951A patent/ZA202100951B/en unknown
- 2021-02-12 MX MX2024008569A patent/MX2024008569A/es unknown
- 2021-02-12 MX MX2024008568A patent/MX2024008568A/es unknown
- 2021-02-12 MX MX2024003663A patent/MX2024003663A/es unknown
- 2021-02-15 MX MX2024001656A patent/MX2024001656A/es unknown
- 2021-02-15 MX MX2024010756A patent/MX2024010756A/es unknown
- 2021-02-16 US US17/176,594 patent/US12015761B2/en active Active
- 2021-02-16 US US17/176,595 patent/US11991349B2/en active Active
- 2021-02-16 US US17/176,579 patent/US11956420B2/en active Active
- 2021-02-16 CL CL2021000397A patent/CL2021000397A1/es unknown
- 2021-02-16 US US17/176,582 patent/US11758123B2/en active Active
- 2021-02-16 US US17/176,551 patent/US11477438B2/en active Active
- 2021-02-16 US US17/176,566 patent/US11979553B2/en active Active
- 2021-12-10 ZA ZA2021/10257A patent/ZA202110257B/en unknown
-
2022
- 2022-01-18 US US17/578,178 patent/US11997257B2/en active Active
- 2022-11-30 US US18/072,331 patent/US12058317B2/en active Active
-
2023
- 2023-02-03 JP JP2023015477A patent/JP7543461B2/ja active Active
- 2023-03-14 JP JP2023039811A patent/JP7577150B2/ja active Active
- 2023-03-22 JP JP2023045824A patent/JP7645303B2/ja active Active
- 2023-03-28 JP JP2023051948A patent/JP7802719B2/ja active Active
- 2023-04-19 JP JP2023068781A patent/JP7830382B2/ja active Active
- 2023-04-19 JP JP2023068782A patent/JP7830383B2/ja active Active
- 2023-11-28 US US18/521,714 patent/US12268570B2/en active Active
-
2024
- 2024-01-04 JP JP2024000194A patent/JP2024032732A/ja active Pending
- 2024-02-28 US US18/590,685 patent/US12506862B2/en active Active
- 2024-02-29 US US18/591,673 patent/US12581060B2/en active Active
- 2024-03-05 US US18/596,291 patent/US12483695B2/en active Active
- 2024-05-23 US US18/673,031 patent/US12413712B2/en active Active
- 2024-06-27 US US18/756,253 patent/US12574502B2/en active Active
- 2024-09-11 JP JP2024157464A patent/JP2024180395A/ja active Pending
- 2024-11-01 JP JP2024193054A patent/JP2025019072A/ja active Pending
-
2025
- 2025-02-21 US US19/059,834 patent/US20250254288A1/en active Pending
- 2025-10-14 US US19/358,229 patent/US20260039803A1/en active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2981233T3 (es) | Gestión de imágenes de referencia en codificación de video | |
| ES2981234T3 (es) | Candidato de señalización para estructuras de listas de imágenes de referencia | |
| ES3031245T3 (en) | Sub-picture based random access | |
| BR112021004662B1 (pt) | Codificador de vídeo, decodificador de vídeo e métodos correspondentes | |
| 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 | |
| BR122024016988A2 (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 |