ES3062309T3 - Reference picture management in video coding - Google Patents

Reference picture management in video coding

Info

Publication number
ES3062309T3
ES3062309T3 ES19850236T ES19850236T ES3062309T3 ES 3062309 T3 ES3062309 T3 ES 3062309T3 ES 19850236 T ES19850236 T ES 19850236T ES 19850236 T ES19850236 T ES 19850236T ES 3062309 T3 ES3062309 T3 ES 3062309T3
Authority
ES
Spain
Prior art keywords
image
list
refpiclist
segment
fragment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19850236T
Other languages
English (en)
Inventor
Fnu Hendry
Ye-Kui Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES3062309T3 publication Critical patent/ES3062309T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

Landscapes

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

Description

[0001] DESCRIPCIÓN
[0002] Gestión de imágenes de referencia en codificación de vídeo
[0003] Campo técnico
[0004] La presente invención está relacionada en general con técnicas para la gestión de imágenes de referencia en la codificación de vídeo. Más específicamente, esta invención describe técnicas para la construcción de listas de imágenes de referencia y el marcado de imágenes de referencia.
[0005] Antecedentes
[0006] La cantidad de datos de vídeo necesarios para representar incluso un vídeo relativamente corto puede ser sustancial, lo que puede dar lugar a dificultades cuando los datos se van a transmitir o comunicar de otro modo a través de una red de comunicaciones con capacidad de ancho de banda limitada. Por lo tanto, los datos de vídeo son comprimidos, en general, antes de ser comunicados a través de las redes de telecomunicaciones modernas. El tamaño de un vídeo también podría ser un problema cuando el vídeo se almacena en un dispositivo de almacenamiento, porque los recursos de memoria son limitados. Los dispositivos de compresión de vídeo a menudo utilizan software y/o hardware en la fuente para codificar los datos de vídeo antes de la transmisión o el almacenamiento, lo que reduce la cantidad de datos necesarios para representar imágenes de vídeo digital. Luego, los datos comprimidos son recibidos en el destino por un dispositivo de descompresión de vídeo que decodifica los datos de vídeo. Con recursos de red limitados y demandas cada vez mayores de mayor calidad de vídeo, son deseables técnicas mejoradas de compresión y descompresión que mejoren la relación de compresión con poco o ningún sacrificio en la calidad de imagen.
[0007] El documento US 10.003.817 B2 divulga un método para señalizar el estado de un búfer de imágenes decodificadas (DPB) y listas de imágenes de referencia (RPL) en la codificación y decodificación de vídeo. El documento RICKARD SJOBERG ET AL: "Overview of HEVC High-Level Syntax and Reference Picture Management" (Descripción general de la sintaxis de alto nivel HEVC y la gestión de imágenes de referencia), IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNNOLOGY, IEEE, EE. UU., vol.22, n.º 12, 1 de diciembre de 2012 (1 de diciembre de 2012), páginas 1858-1870, divulga una descripción general de la sintaxis de alto nivel HEVC.
[0008] WAHADANIAH (PANASONIC) V ETAL, "AHG21: Construction and modification of predefined reference picture sets and reference picture lists" (AHG21: Construcción y modificación de conjuntos de imágenes de referencia predefinidos y listas de imágenes de referencia", n.º JCTVC-G548, (20111123), 7. JCT-VC MEETING;; 20111121 - 20111130; GENEVA; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), URL: http://phenix.intevry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G548-v2.zip JCTVC-G548_r1.doc, (20111123),divulga la construcción y modificación de conjuntos de imágenes de referencia predefinidos y listas de imágenes de referencia.
[0009] Compendio
[0010] Un primer aspecto del objeto de la presente invención se refiere a un método para decodificar un flujo de bits de vídeo codificado. El método comprende obtener una primera lista de imágenes de referencia de un segmento o fragmento actual representado en el flujo de bits de vídeo codificado y una segunda lista de imágenes de referencia del segmento o fragmento actual; marcar un estado de una imagen de referencia en un búfer de imágenes decodificadas (DPB) con base en la primera lista de imágenes de referencia y la segunda lista de imágenes de referencia cuando el segmento o fragmento actual es un primer segmento o fragmento en una imagen actual al que pertenece el segmento o fragmento actual, en donde el estado de la imagen de referencia en el búfer de imágenes decodificadas es uno de: utilizado para referencia a corto plazo, utilizado para referencia a largo plazo o no utilizado para referencia; y utilizar la imagen de referencia en un proceso de reconstrucción de la imagen actual o una imagen siguiente a la imagen actual cuando el estado de la imagen de referencia se utiliza para referencia a corto plazo o se utiliza para referencia a largo plazo. Este objetivo se logra mediante las reivindicaciones independientes adjuntas, y otras realizaciones y mejoras de la invención están enumeradas en las reivindicaciones dependientes adjuntas. En adelante, hasta la "breve descripción de los dibujos", expresiones tales como "...aspecto según la invención", "según la invención", o "la presente invención" se refieren a la explicación técnica de la realización más amplia, tal como se reivindica mediante las reivindicaciones independientes. Expresiones tales como "implementación", "diseño", "opcionalmente", "preferiblemente", "escenario", "aspecto" o similares se refieren a otras realizaciones, tal como se reivindica, y expresiones tales como "ejemplo", "... aspecto según un ejemplo", "la invención describe" o "la invención" describen la explicación técnica que se refiere a la comprensión de la invención o a sus realizaciones, que, sin embargo, no está reivindicada como tal.
[0011] Un segundo aspecto según la invención se refiere a un método de decodificación de un flujo de bits de vídeo codificado implementado por un decodificador de vídeo. El método comprende decodificar, por medio del decodificador de vídeo, una primera imagen que incluye todos sus freagmentos para obtener una primera imagen decodificada; almacenar, por medio del decodificador de vídeo, la primera imagen decodificada en un búfer de imágenes decodificadas (DPB) después de la decodificación; marcar, por medio del decodificador de vídeo, la primera imagen como utilizada para referencia a corto plazo después de que todos los segmentos o fragmentos de la primera imagen hayan sido decodificados; y decodificar, por medio del decodificador de vídeo, un primer segmento o fragmento de una imagen actual, comprendiendo la decodificación del primer segmento o fragmento de la imagen actual: obtener, por medio del decodificador de vídeo, una primera lista de imágenes de referencia y una segunda lista de imágenes de referencia; volver a marcar, por medio del decodificador de vídeo, la primera imagen como utilizada para referencia a largo plazo cuando la primera imagen es mencionada por una entrada de imagen de referencia a largo plazo (LTRP) en la primera lista de imágenes de referencia o en la segunda lista de imágenes de referencia; y volver a marcar, por medio del decodificador de vídeo, la primera imagen como no utilizada para referencia cuando la primera imagen no es mencionada en la primera lista de imágenes de referencia o en la segunda lista de imágenes de referencia.
[0012] Los métodos no reivindicados proporcionan técnicas que simplifican y hacen más eficiente la señalización de listas de imágenes de referencia. Por lo tanto, se mejora el proceso de codificación general.
[0013] En una primera forma de implementación no reivindicada del método según el primer o segundo aspecto como tal, la primera lista de imágenes de referencia se designa RefPictList[0].
[0014] En una segunda forma de implementación según la invención del método según el primer o segundo aspecto como tal o cualquier forma de implementación precedente del primer o segundo aspecto, la segunda lista de imágenes de referencia se designa RefPictList[1].
[0015] En una tercera forma de implementación según la invención del método según el primer o segundo aspecto como tal o cualquier forma de implementación precedente del primer o segundo aspecto, la imagen actual comprende una imagen de punto de acceso aleatorio no intra (IRAP).
[0016] En una cuarta forma de implementación de acuerdo con la invención del método de acuerdo con el primer o segundo aspecto como tal o cualquier forma de implementación precedente del primer o segundo aspecto, la primera imagen se denomina imagen de referencia de corto plazo (STRP) cuando se marca como utilizada para referencia de corto plazo.
[0017] En una quinta forma de implementación según la invención del método según el primer o segundo aspecto como tal o cualquier forma de implementación precedente del primer o segundo aspecto, la STRP se identifica mediante un valor de conteo de orden de imagen (PicOrderCntVal).
[0018] En una sexta forma de implementación no reivindicada del método según el primer o segundo aspecto como tal o cualquier forma de implementación precedente del primer o segundo aspecto, un LTRP se identifica mediante una función logarítmica del conteo máximo de orden de imagen a largo plazo de bits menos significativos (Log2(MaxLtPicOrderCntLsb)) de un valor de conteo de orden de imagen (PicOrderCntVal). En una séptima forma de implementación según la invención del método según el primer o segundo aspecto como tal o cualquier forma de implementación precedente del primer o segundo aspecto, el DPB contiene una pluralidad de imágenes de referencia además, de la primera imagen decodificada después de la decodificación de la imagen actual.
[0019] En una octava forma de implementación de acuerdo con la invención del método de acuerdo con el primer o segundo aspecto como tal o cualquier forma de implementación precedente del primer o segundo aspecto, en cualquier momento dado la primera imagen solo se marca o se vuelve a marcar como una de las utilizadas para referencia a corto plazo, utilizadas para referencia a corto plazo y no utilizadas para referencia.
[0020] En una novena forma de implementación de acuerdo con la invención del método de acuerdo con el primer o segundo aspecto como tal o cualquier forma de implementación precedente del primer o segundo aspecto, el marcado o remarcado de la primera imagen como una de las utilizadas para referencia a corto plazo, utilizada para referencia a corto plazo y no utilizada para referencia elimina cualquier otro marcado para la primera imagen.
[0021] Un tercer y cuarto aspecto según la invención se refieren a un dispositivo de decodificación que incluye un receptor configurado para recibir una imagen a codificar o para recibir un flujo de bits a decodificar, un transmisor acoplado al receptor, el transmisor configurado para transmitir el flujo de bits a un decodificador o para transmitir una imagen decodificada a una pantalla, una memoria acoplada al menos a uno del receptor o del transmisor, la memoria configurada para almacenar instrucciones, y un procesador acoplado a la memoria, el procesador configurado para ejecutar las instrucciones almacenadas en la memoria para realizar el método de cualquiera de los aspectos o implementaciones anteriores.
[0022] El dispositivo de decodificación proporciona técnicas no reivindicadas que simplifican y hacen más eficiente la señalización de listas de imágenes de referencia. Por lo tanto, se mejora el proceso de codificación general. En una primera forma de implementación no reivindicada del dispositivo de decodificación según el tercer y cuarto aspecto como tal, el dispositivo de decodificación incluye además, una pantalla configurada para mostrar la imagen actual.
[0023] Un cuarto aspecto según la invención se refiere a un aparato de codificación que incluye un receptor configurado para recibir un flujo de bits a decodificar; un transmisor acoplado al receptor, estando el transmisor configurado para transmitir una imagen decodificada a una pantalla; una memoria acoplada al menos a uno del receptor o del transmisor, estando la memoria configurada para almacenar instrucciones; y un procesador acoplado a la memoria, estando el procesador configurado para ejecutar las instrucciones almacenadas en la memoria para realizar el método de cualquiera de los aspectos o implementaciones anteriores.
[0024] Un quinto aspecto según la invención se refiere a un sistema que incluye un codificador y un decodificador en comunicación con el codificador. El codificador o decodificador incluye el dispositivo de decodificación o el aparato de codificación de cualquiera de los aspectos o implementaciones anteriores.
[0025] El sistema no reivindicado proporciona técnicas que simplifican y hacen más eficiente la señalización de listas de imágenes de referencia. Por lo tanto, se mejora el proceso de codificación general.
[0026] Un sexto aspecto según la invención se refiere a un medio para codificar que incluye un medio de recepción configurado para recibir una imagen a codificar o para recibir un flujo de bits a decodificar, un medio de transmisión acoplado al medio de recepción, estando el medio de transmisión configurado para transmitir el flujo de bits a un decodificador o para transmitir una imagen decodificada a un medio de visualización, un medio de almacenamiento acoplado al menos a uno del medio de recepción o del medio de transmisión, estando el medio de almacenamiento configurado para almacenar instrucciones, y un medio de procesamiento acoplado al medio de almacenamiento, estando el medio de procesamiento configurado para ejecutar las instrucciones almacenadas en el medio de almacenamiento para realizar los métodos en cualquiera de los aspectos o implementaciones anteriores.
[0027] El medio o los medios no reivindicados para la codificación proporcionan técnicas que simplifican y hacen más eficiente la señalización de listas de imágenes de referencia. Por lo tanto, se mejora el proceso de codificación general.
[0028] Breve descripción de los dibujos
[0029] Para una comprensión más completa de esta descripción, se hace referencia ahora a la siguiente descripción breve, tomada en relación con los dibujos adjuntos y la descripción detallada, en donde los números de referencia iguales representan partes iguales.
[0030] La FIGURA 1 es un diagrama de bloques que ilustra un sistema de codificación de ejemplo que utiliza técnicas de predicción bilaterales.
[0031] La FIGURA 2 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo que implementa técnicas de predicción bilaterales.
[0032] La FIGURA 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador de vídeo que implementa técnicas de predicción bilaterales.
[0033] 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.
[0034] La FIGURA 5 es una realización de un método de decodificación de un flujo de bits de vídeo codificado. La FIGURA 6 es una realización de un método para decodificar un flujo de bits de vídeo codificado.
[0035] La FIGURA 7 es un diagrama esquemático de un dispositivo de codificación de vídeo.
[0036] La FIGURA 8 es un diagrama esquemático de una realización de medio o medios para codificación.
[0037] En la siguiente descripción, las características que en el compendio anterior de la invención se han marcado como "no reivindicadas" también deben entenderse en adelante, cuando se describen y se explican con referencia a los dibujos, como "no reivindicadas" o "que no forman parte de la invención".
[0038] Descripción detallada
[0040] La FIGURA 1 es un diagrama de bloques que ilustra un sistema de codificación 10 de ejemplo que utiliza técnicas de codificación de vídeo como se describe en la presente memoria. Como se muestra en la FIGURA 1, el sistema de codificación 10 incluye un dispositivo de origen 12 que proporciona datos de vídeo codificados que han de ser decodificados en un momento posterior por un dispositivo de destino 14. En particular, el dispositivo de origen 12 proporciona los datos de vídeo al dispositivo de destino 14 a través de un medio legible por ordenador 16. El dispositivo de origen 12 y el dispositivo de destino 14 comprenden cualquiera de una amplia gama de dispositivos, que incluyen ordenadores de escritorio, ordenadores tipo notebook (por ejemplo, ordenador portátil), ordenadores tipo tableta, módulos de conexión, aparatos telefónicos tales como los, así llamados, teléfonos "inteligentes", las, así llamadas, "pizarras electrónicas", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión en continuo de vídeo o similares. En algunos casos, el dispositivo de 12 origen y el dispositivo de destino 14 están equipados para la comunicación inalámbrica.
[0042] El dispositivo de destino 14 puede recibir los datos de vídeo codificados para ser decodificados a través de los medios o medio legibles por ordenador 16. Los medios o medio legibles por ordenador 16 pueden comprender cualquier tipo de medio o dispositivo capaz de mover los datos de vídeo codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el medio o los medios legibles por ordenador 16 puede comprender un medio de comunicación para permitir que el dispositivo de origen 12 transmita datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados se modulan según un estándar de comunicación, tal como un protocolo de comunicación inalámbrica, y se transmiten al dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrico o por cable, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión física. El medio de comunicación puede formar 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 puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
[0044] En algunos ejemplos, los datos codificados se envían desde una interfaz de salida 22 a un dispositivo de almacenamiento. De manera similar, se accede a los datos codificados desde el dispositivo de almacenamiento mediante una interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera de una variedad de soportes de almacenamiento de datos distribuidos o de acceso local, tal como un disco duro, discos Bluray, discos de vídeo digital (DVD), memorias de solo lectura de disco compacto (CD-ROM), memoria flash, memoria volátil o no volátil, o cualquier otro soporte de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En otro ejemplo, el dispositivo de almacenamiento puede corresponder a un servidor de archivos u otro dispositivo de almacenamiento intermedio que puede almacenar el vídeo codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados desde el dispositivo de almacenamiento a través de transmisión o descarga. El servidor de archivos es cualquier tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino 14. Los servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor de protocolo de transferencia de archivos (FTP), dispositivos de almacenamiento conectado a la red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluida una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión por cable (por ejemplo, línea de abonado digital (DSL), módem por cable, etc.) o una combinación de ambas que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento es una transmisión en continuo, una transmisión de descarga o una combinación de las mismas.
[0046] Las técnicas de esta invención no se limitan necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo en apoyo de cualquiera de una variedad de aplicaciones multimedia, tales como emisiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo por internet, tales como transmisión dinámica adaptativa sobre HTTP (DASH), vídeo digital que se codifica en un soporte de almacenamiento de datos, decodificación de vídeo digital almacenado en un soporte de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema de codificación 10 está configurado para admitir transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como transmisión en continuo de vídeo, reproducción de vídeo, radiodifusión de vídeo y/o videotelefonía.
[0048] En el ejemplo de la FIGURA 1, el dispositivo de origen 12 incluye la fuente de vídeo 18, el codificador de vídeo 20 y la interfaz de salida 22. El dispositivo de destino 14 incluye una interfaz de entrada 28, un decodificador de vídeo 30 y un dispositivo de visualización 32. Según esta invención, el codificador de vídeo 20 del dispositivo de origen 12 y/o el decodificador de vídeo 30 del dispositivo de destino 14 están configurados para aplicar las técnicas para la codificación de vídeo. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. El dispositivo de origen 12 recibe datos de vídeo desde una fuente de vídeo externa, tal como una cámara externa. Asimismo, el dispositivo de destino 14 puede interactuar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
[0049] El sistema de codificación 10 ilustrado de la FIGURA 1 es simplemente un ejemplo. Las técnicas para la codificación de vídeo se realizan mediante cualquier dispositivo de codificación y/o decodificación de vídeo digital. Aunque las técnicas de esta invención generalmente se realizan por un dispositivo de codificación de vídeo, las técnicas también se pueden realizar por un codificador/descodificador de vídeo, normalmente denominado "CODEC". Además, las técnicas de esta invención también pueden ser realizadas por un preprocesador de vídeo. El codificador y/o el decodificador de vídeo son una unidad de procesamiento de gráficos (GPU) o un dispositivo similar.
[0051] El dispositivo de origen 12 y el dispositivo de destino 14 son simplemente ejemplos de tales dispositivos de codificación en los que el dispositivo de origen 12 genera datos de vídeo codificados para transmitirlos al dispositivo de destino 14. En algunos ejemplos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden funcionar de manera sustancialmente simétrica, de manera que cada uno de los dispositivos de origen 12 y de destino 14 incluye componentes de codificación y decodificación de vídeo. Por lo tanto, el sistema de codificación 10 puede soportar la transmisión de vídeo unidireccional o bidireccional entre dispositivos de vídeo 12, 14, por ejemplo, para transmisión de vídeo, reproducción de vídeo, emisión de vídeo o videotelefonía.
[0052] La fuente de vídeo 18 del dispositivo de origen 12 puede incluir un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contiene vídeo capturado previamente y/o una interfaz de alimentación de vídeo para recibir vídeo de un proveedor de contenido de vídeo. Como alternativa adicional, la fuente de vídeo 18 puede generar datos basados en gráficos de ordenador como la fuente de vídeo, o una combinación de vídeo en vivo, vídeo archivado y vídeo generado por ordenador.
[0054] En algunos casos, cuando la fuente de vídeo 18 es una cámara de vídeo, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los llamados teléfonos con cámara o videoteléfonos. Sin embargo, como se mencionó anteriormente, las técnicas descritas en esta descripción se aplicarán a la codificación de vídeo en general, y se aplican a aplicaciones inalámbricas y/o por cable. En cada caso, el vídeo capturado, precapturado o generado por ordenador se codifica mediante el codificador de vídeo 20. La información de vídeo codificada puede luego ser enviada por la interfaz de salida 22 a unos medios o medio legibles por ordenador 16.
[0056] Los medios o medio legibles por ordenador 16 pueden incluir medios o medio transitorios, tales como una transmisión inalámbrica o una transmisión de red por cable, o soportes de almacenamiento (es decir, medios o medio de almacenamiento no transitorios), tales como un disco duro, unidad flash, disco compacto, disco de vídeo digital, disco Blu-ray u otros medios o medio legibles por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de vídeo codificados desde el dispositivo de origen 12 y proporcionar los datos de vídeo codificados al dispositivo de destino 14, por ejemplo, a través de una transmisión de red. De manera similar, un dispositivo informático de una instalación de producción de medios o medio, tal como una instalación de estampado de discos, puede recibir datos de vídeo codificados desde el dispositivo de origen 12 y producir un disco que contenga los datos de vídeo 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 diversos ejemplos.
[0058] La interfaz de entrada 28 del dispositivo de destino 14 recibe información de los medios o medio legibles por ordenador 16. La información de los medios o medio legibles por ordenador 16 puede incluir información de sintaxis definida por el codificador de vídeo 20, que también es utilizada por el decodificador de vídeo 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 vídeo decodificados a un usuario y puede comprender 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.
[0059] El codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar según un estándar de codificación de vídeo, tal como el estándar de codificación de vídeo de alta eficiencia (HEVC) actualmente en desarrollo, y pueden ajustarse al modelo de prueba HEVC (HM). Alternativamente, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar según otros estándares patentados o de la industria, tal como el estándar H.264 del Sector de Estandarización de Telecomunicaciones de la Unión Internacional de Telecomunicaciones (ITU-T), también denominado Grupo de Expertos en Imágenes en Movimiento (MPEG)-4, Parte 10, Codificación de Vídeo Avanzada (AVC), H.265/HEVC o extensiones de tales estándares. Las técnicas de esta invención, sin embargo, no se limitan a ningún estándar de codificación en particular. Otros ejemplos de estándares de codificación de vídeo incluyen MPEG-2 y H.263 de ITU-T. Aunque no se muestra en la FIGURA 1, en algunos aspectos, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden estar integrados cada uno con un codificador y decodificador de audio, y pueden incluir unidades de multiplexordemultiplexor (MUX-DEMUX) apropiadas, u otro hardware y software, para manejar la codificación tanto audio como vídeo en un flujo de datos común o flujos de datos separados. Si corresponde, las unidades MUX-DEMUX pueden cumplir con el protocolo multiplexor H.223 de ITU u otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0061] El codificador de vídeo 20 y el decodificador de vídeo 30 se implementan cada uno como cualquiera de diversos circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados de aplicación específica (ASIC), agrupaciones de puertas programables en campo (FPGA), lógica discreta, software, hardware, firmware o cualesquiera combinaciones de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en medios o medio no transitorios adecuados legibles por ordenador y ejecutar las instrucciones en hardware utilizando uno o más procesadores para realizar las técnicas de esta invención. El codificador de vídeo 20 y el decodificador de vídeo 30 se incluyen cada uno 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 un codificador de vídeo 20 y/o un decodificador de vídeo 30 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
[0063] La FIGURA 2 es un diagrama de bloques que ilustra un ejemplo de codificador de vídeo 20 que puede implementar técnicas de codificación de vídeo. El codificador de vídeo 20 puede realizar intracodificación e intercodificación de bloques de vídeo dentro de segmentos o fragmentos de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de un fotograma o imagen de vídeo dado. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de fotogramas o imágenes adyacentes de una secuencia de vídeo. El intramodo (modo I) puede referirse a cualquiera de varios modos de codificación basados en el espacio. Los intramodos, tal como la predicción unidireccional (también conocida como unipredicción) (modo P) o la predicción bidireccional (también conocida como bipredicción) (modo B), pueden referirse a cualquiera de varios modos de codificación basados en el tiempo.
[0065] Como se muestra en la FIGURA 2, el codificador de vídeo 20 recibe un bloque de vídeo actual dentro de un fotograma de vídeo para ser codificado. En el ejemplo de la FIGURA 2, el codificador de vídeo 20 incluye la unidad de selección de modo 40, la memoria de fotogramas de referencia 64, el sumador 50, la unidad de procesamiento de transformada 52, la unidad de cuantización 54 y la unidad de codificación de entropía 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 de intrapredicción 46 (también denominada intrapredicción) y la unidad 48 de partición. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 también incluye la unidad 58 de cuantización inversa, la unidad 60 de transformada inversa y el sumador 62. También se puede incluir un filtro de desbloqueo (no mostrado en la FIGURA 2) para filtrar los límites del bloque para eliminar los artefactos de bloqueo del vídeo reconstruido. Si lo desea, el filtro de desbloqueo normalmente filtraría la salida del sumador 62. También se pueden utilizar filtros adicionales (en bucle o postbucle), además, del filtro de desbloqueo. Tales filtros no se muestran por brevedad, pero si lo desea, puede filtrar la salida del sumador 50 (como un filtro en bucle).
[0067] Durante el proceso de codificación, el codificador de vídeo 20 recibe un fotograma o segmento de vídeo que se ha de codificar. El fotograma o segmento se divide en múltiples bloques de vídeo. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 realizan una codificación interpredictiva del bloque de vídeo recibido en relación con uno o más bloques en uno o más fotogramas de referencia para proporcionar una predicción temporal. La unidad de intrapredicción 46 puede realizar alternativamente una codificación intrapredictiva del bloque de vídeo recibido en relación con uno o más bloques vecinos en el mismo fotograma o segmento que el bloque a codificar para proporcionar predicción espacial. El codificador de vídeo 20 puede realizar varias pasadas de codificación, por ejemplo, para seleccionar un modo de codificación apropiado para cada bloque de datos de vídeo.
[0069] Además, la unidad de partición 48 puede particionar bloques de datos de vídeo en subbloques, en función de la evaluación de esquemas de partición anteriores en pases de codificación anteriores. La unidad de partición 48 puede particionar inicialmente un fotograma o segmento en unidades de codificación más grandes (LCU) y particionar cada una de las LCU en unidades de subcodificación (sub-CU) basándose en el análisis de distorsión de tasa (por ejemplo, optimización de distorsión de tasa). La unidad de selección de modo 40 puede producir, además, una estructura de datos de árbol cuádruple indicativa de la partición de una LCU en sub-CU. Las CU de nodo hoja del árbol cuádruple puede incluir una o más unidades de predicción (PU) y una o más unidades de transformada (TU).
[0071] La presente invenció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 otros estándares (por ejemplo, macrobloques y subbloques de los mismos en H.264/AVC). Una CU incluye un nodo de codificación, PU y TU asociadas con el nodo de codificación. Un tamaño de la CU corresponde a un tamaño del nodo de codificación y tiene forma cuadrada. El tamaño de la CU puede variar desde 8×8 píxeles hasta el tamaño del bloque de árbol con un máximo de 64×64 píxeles o más. Cada CU puede contener una o más PU y una o más TU. Los datos de sintaxis asociados con una CU describen, por ejemplo, la partición de la CU en una o más PU. Los modos de particionamiento pueden diferir entre si la CU está codificada en modo directo o salteado, codificada en modo intrapredicción o codificada en modo interpredicción (también conocido como interpredicción). Las PU se particionarán para que no tengan forma cuadrada. Los datos de sintaxis asociados con una CU también pueden describir, por ejemplo, la partición de la CU en una o más TU según un árbol cuádruple. Una TU puede tener forma cuadrada o no cuadrada (por ejemplo, rectangular).
[0073] La unidad de selección de modo 40 puede seleccionar uno de los modos de codificación, intra o inter, por ejemplo, en función de los resultados de error, y proporciona el bloque intra o intercodificado resultante al sumador 50 para generar datos de bloque residual y al sumador 62 para reconstruir el bloque codificado para su uso como fotograma 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 similar, a la unidad de codificación de entropía 56.
[0075] La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 están altamente integradas, pero se ilustran por separado con fines conceptuales. La estimación de movimiento, realizada por la unidad de estimación de movimiento 42, es el proceso de generar vectores de movimiento, que estiman el movimiento para bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de un fotograma o imagen de vídeo actual en relación con un bloque predictivo dentro de un fotograma de referencia (u otra unidad codificada) en relación con el bloque actual que se está codificando dentro del fotograma actual (u otra unidad codificada). Un bloque predictivo es un bloque del que se comprueba que coincide estrechamente con el bloque que se ha de codificar, en términos de diferencia de píxeles, que se determina mediante la suma de la diferencia absoluta (SAD, por sus siglas en inglés), la suma de la diferencia cuadrática (SSD, por sus siglas en inglés) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones de píxeles de subenteros de imágenes de referencia almacenadas en la memoria de fotogramas de referencia 64. El codificador de vídeo 20 interpola valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones fraccionarias de píxel de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento con respecto a las posiciones de píxeles completos y posiciones de píxeles fraccionarios y generar un vector de movimiento con precisión de píxeles fraccionarios.
[0077] La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de vídeo en un segmento o fragmento intercodificado comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia se selecciona de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria 64 de fotogramas de referencia. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación de entropía 56 y a la unidad de compensación de movimiento 44.
[0079] La compensación de movimiento, realizada por la unidad de compensación de movimiento 44, puede implicar buscar o generar el bloque predictivo en función del vector de movimiento determinado por la 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. Al recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad de compensación de movimiento 44 puede ubicar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El sumador 50 forma un bloque de vídeo residual restando los valores de píxel del bloque predictivo de los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxel, como se explica a continuación. En general, la unidad de estimación de movimiento 42 realiza la estimación de movimiento en relación con los componentes de luminancia, y la unidad de compensación de movimiento 44 utiliza vectores de movimiento calculados en función de los componentes de luminancia tanto para los componentes de crominancia como para los componentes de luminancia. La unidad de selección de modo 40 también puede generar elementos de sintaxis asociados con los bloques de vídeo y el segmento o fragmento de vídeo para su uso por el decodificador de vídeo 30 al decodificar los bloques de vídeo del segmento o fragmento de vídeo.
[0081] La unidad de intrapredicción 46 puede intrapredecir 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 ha descrito anteriormente. En particular, la unidad de intrapredicción 46 puede determinar un modo de intrapredicción a utilizar para codificar un bloque actual. En algunos ejemplos, la unidad de intrapredicción 46 puede codificar un bloque actual utilizando 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) puede seleccionar un modo de intrapredicción apropiado a utilizar de los modos probados.
[0083] La unidad de intrapredicción 46 puede calcular los valores de distorsión de tasa utilizando un análisis de distorsión de tasa para los varios modos de intrapredicción probados, y selecciona el modo de intrapredicción que tenga las mejores características de distorsión de tasa entre los modos probados. El análisis de distorsión de tasa generalmente determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque original sin codificar que fue codificado para producir el bloque codificado, así como una tasa de bits (es decir, una cantidad de bits) utilizada para producir el bloque codificado. La unidad de intrapredicción 46 puede calcular relaciones a partir de las distorsiones y tasas para los diversos bloques codificados para determinar qué modo de intrapredicción exhibe el mejor valor de distorsión de tasa para el bloque.
[0085] Además, la unidad de intrapredicción 46 se configura para codificar bloques de profundidad de un mapa de profundidad utilizando un modo de modelado de profundidad (DMM). La unidad de selección de modo 40 puede determinar si un modo DMM disponible produce mejores resultados de codificación que un modo de intrapredicción y los otros modos DMM, por ejemplo, utilizando optimización de distorsión de tasa (RDO). Los datos para una imagen de textura correspondiente a un mapa de profundidad se almacenan en la memoria 64 de fotogramas de referencia. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 también pueden configurarse para interpredecir bloques de profundidad de un mapa de profundidad.
[0087] 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 puede proporcionar información indicativa del modo de intrapredicción seleccionado para el bloque a la unidad de codificación de entropía 56. La unidad de codificación de entropía 56 puede codificar la información que indica el modo de intrapredicción seleccionado. El codificador de vídeo 20 puede incluir en los datos de configuración de flujo de bits transmitidos, que puedan incluir una pluralidad de tablas de índice de modo de intrapredicción y una pluralidad de tablas de índice de modo de intrapredicción modificadas (también denominadas tablas de mapeo de palabras clave), definiciones de contextos de codificación para diversos bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índice de modo de intrapredicción y una tabla de índice de modo de intrapredicción modificada para utilizar en cada uno de los contextos.
[0089] El codificador de vídeo 20 forma un bloque de vídeo residual restando los datos de predicción de la unidad de selección de modo 40 del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o componentes que realizan esta operación de resta.
[0091] La unidad de procesamiento de transformada 52 aplica una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficiente de transformada residual. La unidad de procesamiento de transformada 52 puede realizar otras transformadas que son conceptualmente similares a DCT. También podrían utilizarse transformadas de ondícula, transformadas de enteros, transformadas de subbanda u otros tipos de transformadas.
[0093] La unidad de procesamiento de transformada 52 aplica la transformada al bloque residual, produciendo un bloque de coeficientes de transformada residual. La transformada puede convertir la información residual de un dominio de valor de píxel a un dominio de transformada, tal como un dominio de frecuencia. La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantización 54. La unidad de cuantización 54 cuantifica los coeficientes de transformada para reducir aún más la tasa de bits. El proceso de cuantización puede reducir la profundidad de bit asociada con algunos o todos los coeficientes. El grado de cuantización se modifica ajustando un parámetro de cuantización. En algunos ejemplos, la unidad de cuantización 54 puede realizar entonces un escaneo de la matriz que incluya los coeficientes de transformada cuantizados. Alternativamente, la unidad de codificación de entropía 56 puede realizar el escaneo.
[0095] Después de la cuantización, la unidad de codificación de entropía 56 codifica los coeficientes de transformada cuantizados. La unidad 56 de codificación de entropía realiza una codificación de longitud variable adaptativa según el contexto (CAVLC), codificación aritmética binaria adaptativa según el contexto (CABAC), codificación aritmética binaria adaptativa según el contexto basada en sintaxis (SBAC), codificación de entropía de partición de intervalo de probabilidad (PIPE) u otra técnica de codificación de entropía. En el caso de la codificación de entropía basada en el contexto, el contexto se basa en bloques vecinos. Después de la codificación de entropía por la unidad 56 de codificación de entropía, el flujo de bits codificado se transmite a otro dispositivo (por ejemplo, el decodificador de vídeo 30) o se archiva para su posterior transmisión o recuperación.
[0097] La unidad de cuantización inversa 58 y la unidad de transformada inversa 60 aplican cuantización inversa y transformada inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para uso posterior como bloque de referencia. La unidad de compensación de movimiento 44 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de uno de los fotogramas de la memoria de fotogramas de referencia 64. La de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxeles subenteros para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción con compensación de movimiento producido por la unidad de compensación de movimiento 44 para producir un bloque de vídeo reconstruido para su almacenamiento en la memoria de fotogramas de referencia 64. El bloque de vídeo reconstruido lo utilizan la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento como un bloque de referencia para intercodificar un bloque en un fotograma de vídeo posterior.
[0099] La FIGURA 3 es un diagrama de bloques que ilustra un ejemplo de decodificador de vídeo 30 que puede implementar técnicas de codificación de vídeo. En el ejemplo de la FIGURA 3, el decodificador de vídeo 30 incluye una unidad de decodificación de entropía 70, una unidad de compensación de movimiento 72, una unidad de intrapredicción 74, una unidad de cuantización inversa 76, una unidad de transformación inversa 78, una memoria de fotogramas de referencia 82 y un sumador 80. El decodificador de vídeo 30 puede, en algunos ejemplos, realizar un paso de decodificación generalmente recíproco al paso de codificación descrito con respecto al codificador de vídeo 20 (FIGURA 2). La unidad de compensación de movimiento 72 puede generar datos de predicción en función de los vectores de movimiento recibidos de la unidad de decodificación de entropía 70, mientras que la unidad de intrapredicción 74 puede generar datos de predicción en función de los indicadores de modo de intrapredicción recibidos de la unidad de decodificación de entropía 70.
[0101] Durante el proceso de decodificación, el decodificador de vídeo 30 recibe un flujo de bits de vídeo codificado que representa bloques de vídeo de un segmento o fragmento de vídeo codificado y elementos de sintaxis asociados del codificador de vídeo 20. La unidad de decodificación de entropía 70 del decodificador de vídeo 30 decodifica de manera entrópica el flujo de bits para generar coeficientes cuantizados, vectores de movimiento o indicadores de modo de intrapredicción y otros elementos de sintaxis. La unidad de decodificación de entropía 70 envía los vectores de movimiento y otros elementos de sintaxis a la unidad de compensación de movimiento 72. El decodificador de vídeo 30 puede recibir los elementos de sintaxis en el nivel de segmento o fragmento de vídeo y/o el nivel de bloque de vídeo.
[0103] Cuando el segmento o fragmento de vídeo se codifica como un segmento o fragmento intracodificado (I), la unidad de intrapredicción 74 puede generar datos de predicción para un bloque de vídeo del segmento o fragmento de vídeo actual en función de un modo de intrapredicción señalizado y datos de bloques previamente decodificados del fotograma o imagen actual. Cuando el fotograma de vídeo se codifica como un segmento o fragmento intercodificado (por ejemplo, B, P o GPB), la unidad de compensación de movimiento 72 produce bloques predictivos para un bloque de vídeo del segmento o fragmento de vídeo actual en función de los vectores de movimiento y otros elementos de sintaxis recibidos de la unidad de decodificación de entropía 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 vídeo 30 puede construir las listas de fotogramas de referencia, Lista 0 y Lista 1, utilizando técnicas de construcción predeterminadas en función de las imágenes de referencia almacenadas en la memoria de fotogramas de referencia 82.
[0105] La unidad de compensación de movimiento 72 determina información de predicción para un bloque de vídeo del segmento o fragmento de vídeo actual analizando 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 vídeo actual que se está decodificando. La unidad 72 de compensación de movimiento utiliza algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intrapredicción o interpredicción) utilizado para codificar los bloques de vídeo del segmento o fragmento de vídeo, un tipo de segmento o fragmento de interpredicción (por ejemplo, segmento o fragmento B, segmento o fragmento P o segmento o fragmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el segmento o fragmento, vectores de movimiento para cada bloque de vídeo intercodificado del segmento o fragmento, estado de interpredicción para cada bloque de vídeo intercodificado del segmento o fragmento y otra información para decodificar los bloques de vídeo en el segmento o fragmento de vídeo actual.
[0107] La unidad de compensación de movimiento 72 también puede realizar una interpolación en función de los filtros de interpolación. La unidad de compensación de movimiento 72 puede utilizar filtros de interpolación como los que utiliza el codificador de vídeo 20 durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles subenteros de bloques de referencia. En este caso, la unidad de compensación de movimiento 72 puede determinar los filtros de interpolación utilizados por el codificador de vídeo 20 a partir de los elementos de sintaxis recibidos y utilizar los filtros de interpolación para producir bloques predictivos.
[0108] Los datos para una imagen de textura correspondiente a un mapa de profundidad se almacenan en la memoria de fotogramas de referencia 82. La unidad de compensación de movimiento 72 también puede configurarse para predecir bloques de profundidad de un mapa de profundidad.
[0110] La compresión de imágenes y vídeos ha experimentado un rápido crecimiento, lo que ha llevado a diversos estándares de codificación. Tales estándares de codificación de vídeo incluyen H.261 de ITU-T, ISO/IEC Grupo de Expertos en Imágenes en Movimiento (MPEG)-1 Parte 2, H.262 de ITU-T u Organización Internacional de Normalización (ISO, por sus siglas en inglés)/Comisión Electrotécnica Internacional (IEC, por sus siglas en inglés) MPEG-2 Parte 2, H.263 de ITU-T, ISO/IEC MPEG-4 Parte 2, Codificación de Vídeo Avanzada (AVC), también conocida como H.264 de ITU-T o ISO/IEC MPEG-4 Parte 10, y Codificación de Vídeo de Alta Eficiencia (HEVC), también conocida como H.265 de ITU-T o MPEG-H Parte 2. La AVC incluye extensiones tales como Codificación de Vídeo Escalable (SVC, por sus siglas en inglés), Codificación de Vídeo Multivista (MVC, por sus siglas en inglés) y Codificación de Vídeo Multivista más Profundidad (MVC+D, por sus siglas en inglés) y AVC 3D (3D-AVC). La HEVC incluye extensiones tales como HEVC Escalable (SHVC, por sus siglas en inglés), HEVC Multivista (MV-HEVC, por sus siglas en inglés) y HEVC 3D (3D-HEVC).
[0111] La Codificación de Vídeo Versátil (VVC) es un nuevo estándar de codificación de vídeo, que está siendo desarrollado por el equipo conjunto de expertos en vídeo (JVET, por sus siglas en inglés) de ITU-T e ISO/IEC. En el momento de escribir esta memoria, el último Borrador de Trabajo (WD, por sus siglas en inglés) de VVC está incluido en JVET-K1001-v1. El documento JVET-K0325-v3 de JVET incluye una actualización de la sintaxis de alto nivel de VVC.
[0112] En general, la presente invención describe técnicas basadas en el subdesarrollo de la norma VVC. Sin embargo, las técnicas también se aplican a otras especificaciones de códecs de vídeo/medios.
[0113] Las técnicas de compresión de vídeo realizan predicción espacial (intraimagen) y/o predicción temporal (interimágenes) para reducir o eliminar la redundancia inherente en secuencias de vídeo. Para la codificación de vídeo basada en bloques, un segmento o fragmento de vídeo (es decir, una imagen de vídeo o una parte de una imagen de vídeo) puede particionarse en bloques de vídeo, que también pueden denominarse bloques de árbol, bloques de árbol de codificado (CTB), unidades de árbol de codificado (CTU), unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un segmento o fragmento intracodificado (I) de una imagen se codifican utilizando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo en un segmento o fragmento intercodificado (P o B) de una imagen pueden utilizar predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes se denominarán fotogramas y las imágenes de referencia se denominarán fotogramas de referencia.
[0114] La predicción espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original que se ha de codificar y el bloque predictivo. Un bloque intercodificado se codifica según un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica según un modo de intracodificación y los datos residuales. Para una mayor compresión, los datos residuales se transforman desde el dominio de píxeles hasta un dominio de transformada, dando como resultado coeficientes de transformada residuales, que luego se cuantifican. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, se escanean para producir un vector unidimensional de coeficientes de transformada y se aplica codificación de entropía para lograr una compresión aún mayor.
[0115] En una especificación de códec de vídeo, las imágenes se identifican para múltiples propósitos, incluido su uso como imagen de referencia en la interpredicción, para la salida de imágenes desde el búfer de imágenes decodificadas (DPB), para escalar vectores de movimiento, para la predicción ponderada, etc. En AVC y HEVC, las imágenes se identifican mediante recuento de orden de imágenes (POC). En AVC y HEVC, las imágenes en el DPB se pueden marcar como "utilizadas para referencia a corto plazo", "utilizadas para referencia a largo plazo" o "no utilizadas para referencia". Una vez que una imagen ha sido marcada como "no utilizada para referencia", la imagen ya no se puede utilizar para la predicción. Cuando la imagen ya no es necesaria para la salida, la imagen se puede eliminar del DPB.
[0116] En AVC, hay dos tipos de imágenes de referencia, a corto plazo y a largo plazo. Una imagen de referencia se marca como "no utilizada para referencia" cuando ya no se necesita para la referencia de predicción. La conversión entre estos tres estados (a corto plazo, a largo plazo y no utilizada como referencia) se controla mediante el proceso de marcado de imágenes de referencia decodificadas. Hay dos mecanismos alternativos de marcado de imágenes de referencia decodificadas, el proceso de ventana deslizante implícito y el proceso de operación de control de gestión de memoria (MMCO, por sus siglas en inglés) explícito. El proceso de ventana deslizante marca una imagen de referencia a corto plazo como "no utilizada para referencia" cuando el número de fotogramas de referencia es igual a un número máximo dado (max_num_ref_frames en el conjunto de parámetros de secuencia (SPS, por sus siglas en inglés)). Las imágenes de referencia a corto plazo se almacenan en una forma de 'primera en entrar, primera en salir', de manera que las imágenes a corto plazo decodificadas más recientemente se conservan en el DPB.
[0117] El proceso MMCO explícito puede incluir múltiples comandos MMCO. Un comando MMCO puede marcar una o más imágenes de referencia a corto o largo plazo como "no utilizadas como referencia", marcar todas las imágenes como "no utilizadas como referencia" o marcar la imagen de referencia actual o una imagen de referencia a corto plazo existente como de largo plazo y luego asigna un índice de imagen a largo plazo a esa imagen de referencia a largo plazo.
[0118] En AVC, las operaciones de marcado de imágenes de referencia, así como los procesos de salida y eliminación de imágenes del DPB, se realizan después de que se haya decodificado una imagen.
[0120] HEVC introduce un enfoque diferente para la gestión de imágenes de referencia, denominado conjunto de imágenes de referencia (RPS). La diferencia más fundamental con el concepto RPS en comparación con el proceso de MMCO/ventana deslizante de AVC es que para cada segmento o fragmento en particular se proporciona un conjunto completo de las imágenes de referencia utilizadas por la imagen actual o cualquier imagen posterior. Por lo tanto, se señaliza un conjunto completo de todas las imágenes que se deben mantener en el DPB para su uso por la imagen actual o futura. Esto es diferente del esquema AVC donde solo se señalizan cambios relativos en el DPB. Con el concepto RPS, no se necesita información de imágenes anteriores en orden de decodificación para mantener el estado correcto de las imágenes de referencia en el DPB.
[0122] En HEVC, el orden de decodificación de imágenes y las operaciones de DPB están modificados en comparación con AVC para aprovechar las ventajas del RPS y mejorar la resistencia a los errores. En AVC, las operaciones de marcado de imágenes y de búfer (tanto la salida como la eliminación de imágenes decodificadas del DPB) generalmente se aplican después de que se haya decodificado una imagen actual. En HEVC, el RPS se decodifica primero a partir de un encabezado de segmento o fragmento de la imagen actual, luego se aplican generalmente operaciones de marcado de imágenes y de búfer antes de decodificar la imagen actual.
[0124] Cada encabezado de segmento o fragmento en HEVC debe incluir parámetros para la señalización del RPS para la imagen que contiene los segmentos o fragmentos. La única excepción es que no se señaliza ningún RPS para los segmentos o fragmentos de Refresco de Decodificación Instantánea (IDR, por sus siglas en inglés). En cambio, se deduce que el RPS está vacío. Para los segmentos o fragmentos I que no pertenecen a una imagen IDR, se proporciona un RPS, incluso si pertenecen a una imagen I, ya que hay imágenes que siguen a la imagen I en orden de decodificación que utilizan interpredicción de imágenes que precedían a la imagen I en orden de decodificación. El número de imágenes en un RPS no deberá exceder el límite de tamaño del DPB especificado por el elemento de sintaxis sps_max_dec_pic_buffering en el SPS.
[0126] Cada imagen está asociada con un valor POC que representa el orden de salida. Los encabezados de segmentos o fragmentos contienen una palabra código de longitud fija, pic_order_cnt_lsb, que representa los bits menos significativos (LSB, por sus siglas en inglés) del valor POC completo, también conocidos como LSB de POC. La longitud de la palabra código se señaliza en el SPS y está comprendida entre 4 y 16 bits. El concepto RPS utiliza POC para identificar imágenes de referencia. Además de su propio valor POC, cada encabezado de segmento o fragmento contiene directamente o hereda del SPS una representación codificada de los valores POC (o los LSB) de cada imagen en el RPS.
[0128] El RPS para cada imagen consta de cinco listas diferentes de imágenes de referencia, también denominadas los cinco subconjuntos de RPS. RefPicSetStCurrBefore consiste en todas las imágenes de referencia a corto plazo que son anteriores a la imagen actual, en orden tanto de decodificación como de salida, y que se utilizan en la interpredicción de la imagen actual. RefPicSetStCurrAfter consiste en todas las imágenes de referencia a corto plazo que son anteriores a la imagen actual en orden de decodificación, que suceden a la imagen actual en orden de salida, y que se utilizan en la interpredicción de la imagen actual. RefPicSetStFoll consiste en todas las imágenes de referencia a corto plazo que se utilizan en la interpredicción de una o más de las imágenes que siguen a la imagen actual en orden de decodificación y que no se utilizan en la interpredicción de la imagen actual. RefPicSetLtCurr consiste en todas las imágenes de referencia a largo plazo que se utilizan en la interpredicción de la imagen actual. RefPicSetLtFoll consiste en todas las imágenes de referencia a largo plazo que se utilizan en la interpredicción de una o más de las imágenes que siguen a la imagen actual en orden de decodificación y que no se utilizan en la interpredicción de la imagen actual.
[0130] El RPS se señaliza utilizando hasta tres bucles que iteran diferentes tipos de imágenes de referencia; imágenes de referencia a corto plazo con un valor POC más bajo que la imagen actual, imágenes de referencia a corto plazo con un valor POC más alto que la imagen actual, e imágenes de referencia a largo plazo. Además, se envía un señalizador (used_by_curr_pic_X_flag) para cada imagen de referencia que indica si la imagen de referencia es utilizada para referencia por la imagen actual (incluida en una de las listas RefPicSetStCurrBefore, RefPicSetStCurrAfter o RefPicSetLtCurr) o no (incluida en una de las listas RefPicSetStFoll o RefPicSetLtFoll).
[0131] La FIGURA 4 ilustra un RPS 400 que tiene una imagen actual B14 con entradas (por ejemplo, una imagen) en todos los subconjuntos 402 del RPS 400. En el ejemplo de la FIGURA 4, la imagen actual B14 contiene exactamente una imagen en cada uno de los cinco subconjuntos 402 (también conocidos como subconjuntos RPS). P8 es la imagen del subconjunto 402 denominada RefPicSetStCurrBefore porque la imagen está antes en orden de salida y la utiliza B14. P12 es la imagen del subconjunto 402 denominada RefPicSetStCurrAfter porque la imagen está después en orden de salida y la utiliza B14. P13 es la imagen del subconjunto 402 denominada RefPicSetStFoll porque la imagen es una imagen de referencia a corto plazo no utilizada por B14 (pero debe mantenerse en el DPB , ya que la utiliza B15). P4 es la imagen del subconjunto 402 denominada RefPicSetLtCurr porque la imagen es una imagen de referencia a largo plazo utilizada por B14. I0 es la imagen del subconjunto 402 denominada RefPicSetLtFoll, ya que la imagen es una imagen de referencia a largo plazo no utilizada por la imagen actual (pero debe mantenerse en el DPB, ya que la utiliza B15).
[0133] La parte a corto plazo del RPS 400 se incluye directamente en el encabezado de segmento o fragmento. Alternativamente, el encabezado de segmento o fragmento 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 utilizando cualquiera de dos esquemas diferentes; Inter RPS, como se describe posteriormente, o Intra RPS, como se describe aquí. Cuando se utiliza IntraRPS, num_negative_pics y num_positive_pics se señalizan representando la longitud de dos listas diferentes de imágenes de referencia. Estas listas contienen las imágenes de referencia con diferencia de POC negativa y diferencia de POC positiva en comparación con la imagen actual, respectivamente. Cada elemento de estas listas está codificado con un código de longitud variable que representa la diferencia en el valor POC en relación con el elemento anterior de la lista menos uno. Para la primera imagen de cada lista, la señalización es relativa al valor POC de la imagen actual menos uno.
[0135] Al codificar los RPS recurrentes en el conjunto de parámetros de secuencia, es posible codificar los elementos de un RPS (por ejemplo, RPS 400) con referencia a otro RPS ya codificado en el conjunto de parámetros de secuencia. Esto se denomina Inter RPS. No hay problemas de robustez contra errores asociados con este método, ya que todos los RPS del conjunto de parámetros de secuencia están en la misma unidad de capa de abstracción de red (NAL). 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, bien imágenes de referencia de la imagen anterior, bien la propia imagen decodificada anteriormente. Solo es necesario indicar cuáles de estas imágenes deben ser imágenes de referencia y utilizarse para la predicción de la imagen actual. Por lo tanto, la sintaxis comprende lo siguiente: un índice que apunta al RPS para su uso como predictor, un delta_POC que se ha de agregar al delta_POC del predictor para obtener el delta POC del RPS actual, y un conjunto de indicadores para indicar qué imágenes son imágenes de referencia y si solo se utilizan para la predicción de imágenes futuras.
[0137] 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 se pueden señalizar entonces en el encabezado de segmento o fragmento mediante palabras 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 clave pic_order_cnt_lsb que se señalizó para una imagen a largo plazo en particular. También es posible señalizar un conjunto de imágenes a largo plazo en el SPS como una lista de valores LSB de POC. Los LSB de POC para una imagen a largo plazo pueden señalizarse entonces en el encabezado de segmento o fragmento como un índice para esta lista.
[0139] El elemento de sintaxis delta_poc_msb_cycle_lt_minus1 se puede señalizar adicionalmente para posibilitar el cálculo de la distancia POC completa de una imagen de referencia a largo plazo en relación con la imagen actual. Se requiere que la palabra clave delta_poc_msb_cycle_lt_minus1 esté señalizada para cada imagen de referencia a largo plazo que tenga el mismo valor LSB de POC que cualquier otra imagen de referencia en el RPS.
[0141] Para el marcado de imágenes de referencia en HEVC, normalmente habrá varias imágenes presentes en el DPB antes de la decodificación de imágenes. Algunas de las imágenes están disponibles para la predicción y, como tales, marcadas como "utilizadas para referencia". Otras imágenes no están disponibles para la predicción, pero están esperando la salida y, como tales, marcadas como "no utilizadas para referencia". Cuando se ha analizado el encabezado de sector, se lleva a cabo un proceso de marcado de imágenes antes de decodificar los datos de segmento o fragmento. Las imágenes que están presentes en el DPB y marcadas como "utilizadas para referencia", pero que no están incluidas en el RPS, están marcadas como "no utilizadas para referencia". Las imágenes que no están presentes en el DPB, pero que se incluyen en el conjunto de imágenes de referencia, se ignoran cuando used_by_curr_pic_X_flag es igual a cero. Sin embargo, cuando used_by_curr_pic_X_flag es en su lugar igual a uno, esta imagen de referencia estaba destinada a ser utilizada para la predicción en la imagen actual, pero falta. Entonces se infiere una pérdida de imagen no intencionada y el decodificador debe tomar las medidas apropiadas.
[0143] Después de decodificar la imagen actual, se marca como "utilizada para referencia a corto plazo".
[0145] A continuación, se expone la construcción de la lista de imágenes de referencia en HEVC. En HEVC, el término interpredicción se utiliza para denotar la predicción obtenida de elementos de datos (por ejemplo, valores de muestra o vectores de movimiento) de imágenes de referencia distintas de la imagen decodificada actual. Al igual que en AVC, una imagen se predice a partir de múltiples imágenes de referencia. Las imágenes de referencia que se utilizan para la interpredicción se organizan en una o más listas de imágenes de referencia. El índice de referencia identifica cuál de las imágenes de referencia de la lista debe utilizarse para crear la señal de predicción.
[0146] Se utilizan una sola lista de imágenes de referencia, Lista 0, para un segmento o fragmento P y dos listas de imágenes de referencia, Lista 0 y Lista 1, para los segmentos o fragmentos B. De manera similar a AVC, la construcción de la lista de imágenes de referencia en HEVC incluye la inicialización de la lista de imágenes de referencia y la modificación de la lista de imágenes de referencia.
[0147] En AVC, el proceso de inicialización para la Lista 0 es diferente para el segmento o fragmento P (para la que se utiliza el orden de decodificación) y los segmentos o fragmentos B (para las que se utiliza el orden de salida). En HEVC, el orden de salida se utiliza en ambos casos.
[0148] La inicialización de la lista de imágenes de referencia crea la Lista 0 y la Lista 1 por defecto (si el segmento o fragmento es un segmento o fragmento B) basándose en tres subconjuntos RPS: RefPicSetStCurrBefore, RefPicSetStCurrAfter y RefPicSetLtCurr. Las imágenes a corto plazo con un orden de salida anterior (posterior) se insertan primero en la Lista 0 (Lista 1) en orden ascendente de distancia POC a la imagen actual, luego las imágenes a corto plazo con un orden de salida posterior (anterior) se insertan en la Lista 0 (Lista 1) en orden ascendente de distancia POC a la imagen actual, y luego, finalmente, las imágenes a largo plazo se insertan al final. En términos de RPS, para la Lista 0, las entradas de RefPicSetStCurrBefore se insertan en la lista inicial, seguidas de las entradas de RefPicSetStCurrAfter. Posteriormente, se anexan las entradas de RefPicSetLtCurr, si están disponibles.
[0149] En HEVC, se repite el proceso anterior (se vuelven a agregar las imágenes de referencia que ya se han agregado a la lista de imágenes de referencia) cuando el número de entradas de una lista es menor que el número objetivo de imágenes de referencia activas (señalizadas en el conjunto de parámetros de imagen o en el encabezado de segmento o fragmento). Cuando el número de entradas es mayor que el número objetivo, la lista se trunca.
[0150] Una vez inicializada una lista de imágenes de referencia, se modifica de manera que las imágenes de referencia para la imagen actual se organicen en cualquier orden, incluido el caso en que una imagen de referencia en particular puede aparecer en más de una posición de la lista, en función de los comandos de modificación de la lista de imágenes de referencia. Cuando el señalizador que indica la presencia de modificaciones de la lista se establece en uno, se señalizan un número fijo (igual al número objetivo de entradas en la lista de imágenes de referencia) de comandos y cada comando inserta una entrada para una lista de imágenes de referencia. Una imagen de referencia se identifica en el comando por el índice de la lista de imágenes de referencia para la imagen actual derivada de la señalización RPS. Esto es diferente de la modificación de listas de imágenes de referencia en H.264/AVC, en donde una imagen se identifica ya sea por el número de imagen (derivado del elemento de sintaxis frame_num) o el índice de imagen de referencia a largo plazo, y es posible que se necesiten menos comandos, por ejemplo, para intercambiar las dos primeras entradas de una lista inicial o insertar una entrada al comienzo de la lista inicial y desplazar las demás.
[0151] Una lista de imágenes de referencia no está permitida que incluya ninguna imagen de referencia con un TemporalId superior al de la imagen actual. Un flujo de bits HEVC puede consistir en varias subcapas temporales. Cada unidad NAL pertenece a una subcapa específica según lo indicado por TemporalId (igual a temporal_id_plus1 - 1).
[0152] La gestión de imágenes de referencia se basa directamente en listas de imágenes de referencia. El documento JCTVC-G643 de JCT-VC incluye un enfoque para utilizar directamente tres listas de imágenes de referencia, lista 0 de imágenes de referencia, lista 1 de imágenes de referencia y una lista de imágenes de referencia libre, para la gestión de las imágenes de referencia en el DPB, evitando así la necesidad de los procesos de señalización y decodificación, incluidos, bien 1) los procesos de ventana deslizante y de MMCO, así como los procesos de inicialización y modificación de la lista de imágenes de referencia en AVC, bien 2) el conjunto de imágenes de referencia, así como los procesos de inicialización y modificación de la lista de imágenes de referencia en HEVC.
[0153] Los enfoques para la gestión de imágenes de referencia pueden tener varios problemas. El enfoque AVC involucra la ventana deslizante, los procesos MMCO y los procesos de inicialización y modificación de la lista de imágenes de referencia, que son complejos. Además, la pérdida de imágenes puede conducir a la pérdida del estado del DPB en términos de qué imágenes deberían haber estado en el DPB para fines de referencia de interpredicción posteriores. El enfoque HEVC no tiene el problema de pérdida de estado del DPB. Sin embargo, el enfoque HEVC implica un complejo proceso de señalización y obtención de conjuntos de imágenes de referencia, así como los procesos de inicialización y modificación de listas de imágenes de referencia, que son complejos. El enfoque en JCTVC-G643 para utilizar directamente tres listas de imágenes de referencia, lista 0 de imágenes de referencia, lista 1 de imágenes de referencia, así como una lista de imágenes de referencia libre, para la gestión de las imágenes de referencia en el DPB implica los siguientes aspectos: una tercera lista de imágenes de referencia, es decir, la lista de imágenes de referencia libre; la codificación en dos partes de las diferencias de POC como una parte "a corto plazo" y una parte "a largo plazo" codificada por ue(v); la granularidad de POC basada en TemporalId para la codificación de diferencias de POC, el uso de la codificación en dos partes de las diferencias de POC para determinar el marcado entre "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo"; una descripción del subconjunto de listas de imágenes de referencia que posibilite la capacidad de especificar una lista de imágenes de referencia mediante la eliminación de imágenes de referencia de la cola de una determinada descripción de lista de imágenes de referencia anterior; el modo de copia de listas de imágenes de referencia posibilitado por el elemento de sintaxis ref_pic_list_copy_flag; y el proceso de descripción de listas de imágenes de referencia. Cada uno de los aspectos anteriores hace que el enfoque sea innecesariamente complejo. Además, el proceso de decodificación para listas de imágenes de referencia en JCTVC-G643 también es complejo. La señalización de imágenes de referencia a largo plazo necesita la señalización del ciclo POC en los encabezados de segmentos o fragmentos. Esto no es eficaz.
[0155] Con el fin de abordar los problemas enumerados anteriormente, en la presente memoria se describen las siguientes soluciones, cada una de las cuales puede aplicarse individualmente y algunas de las cuales pueden aplicarse en combinación.1) El marcado de la imagen de referencia se basa directamente en las dos listas de imágenes de referencia, a saber, la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia.
[0156] 1a) La información para la obtención de las dos listas de imágenes de referencia se señaliza en función de elementos de sintaxis y estructuras de sintaxis en el SPS, PPS y/o el encabezado de segmento o fragmento.
[0157] 1b) Cada una de las dos listas de imágenes de referencia para una imagen se señaliza explícitamente en una estructura de lista de imágenes de referencia.1b.i) Una o más estructuras de lista de imágenes de referencia pueden señalizarse en SPS y cada una de ellas puede ser mencionada por un índice desde el encabezado de segmento o fragmento. 1b.ii) Cada una de las listas 0 y 1 de imágenes de referencia se puede señalizar directamente en el encabezado de segmento o fragmento.2) La información para la obtención de las dos listas de imágenes de referencia está señalizada para todos los tipos de segmentos o fragmentos, es decir, segmentos o fragmentos B (bipredictiva), P (unipredictiva) e I (intra). El término segmentos o fragmentos se refiere a una colección de unidades de árbol de codificación, tales como un segmento o fragmento en HEVC o el último WD de VVC; también se puede referir a alguna otra colección de unidades de árbol de codificación, tales como un mosaico (tile) en HEVC.3) Las dos listas de imágenes de referencia se generan para todos los tipos de segmentos o fragmentos, es decir, segmentos o fragmentos B, P e I.4) Las dos listas de imágenes de referencia se construyen directamente sin utilizar un proceso de inicialización de lista de imágenes de referencia y un proceso de modificación de lista de imágenes de referencia.5) En cada una de las dos listas de imágenes de referencia, las imágenes de referencia que se utilizan para la interpredicción de la imagen actual solo pueden ser mencionadas por una serie de entradas al principio de la lista. Estas entradas se denominan entradas activas en la lista, mientras que otras entradas se denominan entradas inactivas en la lista. El número de entradas totales y el número de entradas activas en la lista pueden obtenerse ambos. 6) No se permite que a la imagen a la que hace referencia una entrada inactiva en una lista de imágenes de referencia haga referencia otra entrada en la lista de imágenes de referencia ni cualquier entrada en la otra lista de imágenes de referencia.7) Las imágenes de referencia a largo plazo solo se identifican mediante cierto número de LSB de POC, donde este número es mayor que el número de LSB de POC señalizados en los encabezados de segmentos o fragmentos para la obtención de valores POC, y este número se indica en el SPS.8) Las estructuras de lista de imágenes de referencia se señalizan solo en encabezados de segmentos o fragmentos, tanto las imágenes de referencia a corto plazo como las imágenes de referencia a largo plazo se identifican mediante sus LSB de POC, que están representados por números de bits que son diferentes del número de bits utilizado para representar los LSB de POC señalizados en encabezados de segmentos o fragmentos para la obtención de valores POC, y el número de bits utilizado para representar los LSB de POC para identificar imágenes de referencia a corto plazo e imágenes de referencia a largo plazo es diferente. 9) Las estructuras de lista de imágenes de referencia se señalizan solo en encabezados de segmentos o fragmentos, no se hace distinción entre imágenes de referencia a corto y largo plazo, todas las imágenes de referencia se denominan simplemente imágenes de referencia y las imágenes de referencia se identifican por sus LSB de POC, que están representados por un número de bits que es diferente del número de bits utilizado para representar los LSB de POC señalizados en encabezados de segmentos o fragmentos para la obtención de valores POC.
[0159] Se proporciona una primera realización de la presente invención. La descripción es relativa al último WD de VVC. En esta realización, se señalizan en el SPS dos conjuntos de estructuras de lista de imágenes de referencia, uno para la lista 0 de imágenes de referencia y otro para la lista 1 de imágenes de referencia.
[0160] Se proporcionan definiciones de algunas de las expresiones utilizadas en la presente memoria. Una imagen de punto de acceso intraaleatorio (IRAP): una imagen codificada para la cual cada unidad NAL de capa de codificación de vídeo (VCL, por sus siglas en inglés) tiene nal_unit_type igual a IRAP_NUT. Imagen no-IRAP: una imagen codificada para la cual cada unidad NAL de VCL tiene nal_unit_type igual a NON_IRAP_NUT. Lista de imágenes de referencia: una lista de imágenes de referencia que se utiliza para la interpredicción de un segmento o fragmento P o B. Se generan dos listas de imágenes de referencia, la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia, para cada segmento o fragmento de una imagen no-IRAP. El conjunto de imágenes únicas a las que hacen referencia todas las entradas de las dos listas de imágenes de referencia asociadas con una imagen consiste en todas las imágenes de referencia que se utilizan para la interpredicción de la imagen asociada o cualquier imagen que siga a la imagen asociada en orden de decodificación. Para decodificar los datos de un segmento o fragmento P, solo se utiliza la lista 0 de imágenes de referencia para la interpredicción. Para decodificar los datos de un segmento o fragmento B, se utilizan ambas listas de imágenes de referencia para la interpredicción. Para decodificar los datos de un segmento o fragmento I, no se utiliza ninguna lista de imágenes de referencia para la interpredicción. Imagen de referencia a largo plazo (LTRP, por sus siglas en inglés): una imagen que se marca como "utilizada para referencia a largo plazo". Imagen de referencia a corto plazo (STRP, por sus siglas en inglés): una imagen que se marca como "utilizada para referencia a corto plazo".
[0161] Las expresiones "utilizada para referencia a corto plazo", "utilizada para referencia a largo plazo" o "no utilizada para referencia" se definen en VVC en la sección 8.3.3 Proceso de decodificación para el marcado de imágenes de referencia, se definen en HEVC en la sección 8.3.2 Proceso de decodificación para el conjunto de imágenes de referencia y se definen en AVC en la sección 7.4.3.3 Semántica de marcado de imágenes de referencia decodificadas. Tal como se utilizan en la presente memoria, las expresiones tienen el mismo significado. La sintaxis y semántica relevantes para la primera realización se proporcionan a continuación.
[0162] Sintaxis de encabezado de unidad NAL.
[0165]
[0167] Sintaxis de Carga Útil de Secuencia de Bytes Sin Procesar (RBSP) del conjunto de parámetros de secuencia.
[0170]
[0171]
[0173] Sintaxis RBSP del conjunto de parámetros de imagen.
[0176]
[0178] Sintaxis de encabezado de segmento o fragmento.
[0181]
[0183] Sintaxis de la estructura de lista de imágenes de referencia.
[0186]
[0187]
[0189] Semántica de encabezado de unidad NAL.
[0190] Un forbidden_zero_bit será igual a 0. nal_unit_type especifica el tipo de estructura de datos de RBSP contenida en la unidad NAL.
[0191] Tabla 7-1 - Códigos de tipo de unidad NAL y clases de tipo de unidad NAL
[0194]
[0196] El nuh_temporal_id_plus1 minus 1 especifica un identificador temporal para la unidad NAL. El valor de nuh_temporal_id_plus1 no será igual a 0. La variable TemporalId se especifica como sigue: TemporalId = nuh_temporal_id_plus1 - 1. Cuando nal_unit_type es igual a IRAP_NUT, el segmento o fragmento codificada pertenece a una imagen IRAP, TemporalId será igual a 0. El valor de TemporalId será el mismo para todas las unidades NAL de VCL de una unidad de acceso. El valor de TemporalId de una imagen codificada o de una unidad de acceso es el valor de TemporalId de las unidades NAL de VCL de la imagen codificada o de la unidad de acceso. El valor de TemporalId para las unidades NAL no-VCL se limita de la siguiente manera: si nal_unit_type es igual a SPS_NUT, TemporalId será igual a 0 y TemporalId de la unidad de acceso que contiene la unidad NAL será igual a 0. De lo contrario, si nal_unit_type es igual a EOS_NUT o EOB_NUT, TemporalId será igual a 0. De lo contrario, TemporalId será mayor o igual que TemporalId de la unidad de acceso que contiene la unidad NAL. Cuando la unidad NAL es una unidad NAL no-VCL, el valor de TemporalId es igual al valor mínimo de los valores de TemporalId de todas las unidades de acceso a las que se aplica la unidad NAL no-VCL. Cuando nal_unit_type es igual a PPS_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso continente, ya que todos los conjuntos de parámetros de imagen (PPS) se incluyen en el comienzo de un flujo de bits, en donde la primera imagen codificada tiene TemporalId igual a 0. Cuando nal_unit_type es igual a PREFIX_SEI_NUT o SUFFIX_SEI_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso continente, ya que una unidad NAL de SEI puede contener información que se aplica a un subconjunto de flujo de bits que incluye unidades de acceso para las que los valores de TemporalId son mayores que TemporalId de la unidad de acceso que contiene la unidad NAL de SEI. nuh_reserved_zero_7bits será igual a '0000000'. Otros valores de nuh_reserved_zero_7bits serán especificados en el futuro por la ITU-T | ISO/IEC. Los decodificadores deberán ignorar (es decir, eliminar del flujo de bits y descartar) las unidades NAL con valores de nuh_reserved_zero_7bits no iguales a '0000000'.
[0197] Semántica RBSP del conjunto de parámetros de secuencia.
[0198] Un log2_max_pic_order_ cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se utiliza en el proceso de decodificación para el recuento de orden de imágenes de la siguiente manera: MaxPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 4 ). El valor de log2_max_pic_order_cnt_lsb_minus4 estará en el intervalo de 0 a 12, ambos inclusive. sps_max_dec_pic_buffering_minus1 más 1 especifica el tamaño máximo requerido del búfer de imágenes decodificadas para la CVS en unidades de búferes de almacenamiento de imágenes. El valor de sps_max_dec_pic_buffering_minus1 estará en el intervalo de 0 a MaxDpbSize - 1, 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 la interpredicción de ninguna imagen codificada en la CVS. long_term _ref_pics_flag igual a 1 especifica que se utilizan LTRP para la interpredicción de una o más imágenes codificadas en la CVS. additional_lt_poc_lsb especifica el valor de la variable MaxLtPicOrderCntLsb que se utiliza en el proceso de decodificación para las listas de imágenes de referencia de la siguiente manera: MaxLtPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 4 additional _lt_poc_lsb ). El valor de additional_lt_poc_lsb estará en el intervalo de 0 a 32 - log2_max_pic_order_cnt_lsb_minus4 - 4, inclusive. Cuando no está presente, el valor de additional_lt_poc_lsb se deduce que es igual a 0. num_ref_pic_lists_in_sps[ i ] especifica el número de las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i incluidas en el SPS. El valor de num_ref_pic_lists_in_sps[ i ] estará en el intervalo de 0 a 64, 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 ) señalizada directamente en los encabezados de segmentos o fragmentos de una imagen actual.
[0199] Semántica RBSP del conjunto de parámetros de imagen.
[0200] Un num_ref_idx_default_active_minus1[ i ] plus 1, cuando i es igual a 0, especifica el valor deducido de la variable NumRefIdxActive[ 0 ] para los segmentos o fragmentos P o B con num_ref_idx_active_override_flag igual a 0 y, cuando i es igual a 1, especifica el valor deducido de NumRefIdxActive[ 1 ] para los segmentos o fragmentos B con num_ref_idx_active_override_flag igual a 0. El valor de num_ref_idx_default_active_minus1[ i ] estará en el intervalo de 0 a 14, inclusive.
[0201] Semántica de encabezado de segmento o fragmento.
[0202] Cuando estén presentes, el valor de cada uno de los elementos de sintaxis de encabezado de segmento o fragmento slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todos los encabezados de segmentos o fragmentos de una imagen codificada.... slice_type especifica el tipo de codificación del segmento o fragmento de acuerdo con la Tabla 7-3.
[0203] Tabla 7-3 - Asociación de nombres a slice_type
[0206]
[0208] Cuando nal_unit_type es igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type será igual a 2.... slice_pic_order_cnt_lsb especifica el módulo de recuento de orden de imágenes MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice_pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de slice_pic_order_cnt_lsb estará en el intervalo de 0 a MaxPicOrderCntLsb - 1, ambos inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se deduce que slice_pic_order_cnt_lsb es igual a 0. ref_pic_list_sps_flag[ i ] igual a 1 especifica que la lista i de imágenes de referencia de la imagen actual se obtiene sobre la base de una de las estructuras de sintaxis ref_piclist_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i en el SPS activo. ref_pic_list_sps _flag[ i ] igual a 0 especifica que la lista i de imágenes de referencia de la imagen actual se obtiene sobre la base de la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i que se incluye directamente en los encabezados de segmentos o fragmentos de la imagen actual. Cuando num_ref_pic_lists_in_sps[ i ] es igual a 0, el valor de ref_pic_list_sps_flag[ i ] será igual a 0. ref_pic_list_idx[ i ] especifica el índice, en la lista de la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i que se incluye en el SPS activo, de la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) con listIdx igual a i que se utiliza para la obtención de la lista i de imágenes de referencia de la imagen actual. El elemento de sintaxis ref_pic_list_idx[ i ] se representa por Redondeo hacia infinito positivo( Log2( num_ref_pic_lists_in_sps[ i ] ) ) bits. Cuando no está presente, el valor de ref_pic_list_idx[ i ] se deduce que es igual a 0. El valor de ref_pic_list _idx[ i ] debe estar en el intervalo de 0 a num ref_pic_lists_in _sps[ i ] - 1, inclusive. num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num _ref_idx_active_minus1 [ 0 ] está presente para segmentos o fragmentos P y B y que el elemento de sintaxis num_ref_idx _active_minus1 [ 1 ] está presente para segmentos o fragmentos B. num_ref_idx_active_override_flag igual a 0 especifica que los elementos de sintaxis num_ref_idx_active_minus1 [ 0 ] y num_ref_idx_active_minus1[ 1 ] no están presentes. num_ref_idx_active_minus1 [ i ], cuando está presente, especifica el valor de la variable NumRefIdxActive[ i ] de la siguiente manera: NumRefIdxActive[ i ] = num_ref_idx_active_minus1 [ i ] 1. El valor de num_ref_idx_active_minus1 [ i ] estará en el intervalo de 0 a 14, inclusive.
[0210] El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista i de imágenes de referencia que se utiliza para decodificar el segmento o fragmento. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se utiliza ningún índice de referencia para la lista i de imágenes de referencia para decodificar el segmento o fragmento. Para i igual a 0 o 1, cuando el segmento o fragmento actual es un segmento o fragmento B y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1 [ i ] 1. Cuando el segmento o fragmento actual es un segmento o fragmento P y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ 0 ] es igual a num_ref_idx_default_active_ minus1 [ 0 ] 1. Cuando el segmento o fragmento actual es un segmento o fragmento P, se deduce que NumRefIdxActive[ 1 ] es igual a 0. Cuando el segmento o fragmento actual es un segmento o fragmento I, se deduce que tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] son iguales a 0.
[0212] Como alternativa, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: sea rplsIdx1 establecido igual a ref_pic_list_sps_flag[ i ] ? ref_pic_list_idx[ i ] : num ref_pic_lists_in _sps[ i ], y numRpEntries[ i ] igual a num_strp_entries[ i ][ rplsIdx1 ] num_ltrp_entries[ i ][ rplsIdx1 ]. Cuando NumRefIdxActive[ i ] es mayor que numRpEntries[ i ], el valor de NumRefIdxActive[ i ] se establece igual a numRpEntries[ i ]
[0214] Semántica de estructura de lista de imágenes de referencia.
[0216] La estructura de sintaxis ref_piclist_struct( listIdx, rplsIdx, ltrpFlag ) está presente en un SPS o en un encabezado de segmento o fragmento. Dependiendo de si la estructura de sintaxis está incluida en un encabezado de segmento o fragmento o en un SPS, se aplica lo siguiente: si está presente en un encabezado de segmento o fragmento, la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) especifica la lista listIdx de imágenes de referencia de la imagen actual (la imagen que contiene el segmento o fragmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) especifica un candidato para la lista listIdx de imágenes de referencia, y 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) tenga uno o más segmentos o fragmentos que contengan ref_pic_list_idx[ listIdx ] igual a un índice en la lista de las estructuras de sintaxis ref_piclist_struct( listIdx, rplsIdx, ltrpFlag ) incluidas en el SPS, y 2) esté en una CVS que tenga el SPS como 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, el valor de num_ltrp_entries[ listIdx ][ rplsIdx ] se infiere que es igual a 0. La variable NumEntriesInList[ listIdx ][ rplsIdx ] se deriva de la siguiente manera: NumEntriesInList[ listIdx ][ rplsIdx ] = num_strp_entries[ listIdx ][ rplsIdx ] num_ltrp_entries[ listIdx ] [ rplsIdx ]. El valor de NumEntriesInList[ listIdx ][ rplsIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, 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 deduce que el valor de lt_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] es igual a 0. Es un requisito de conformidad de flujo de bits que la suma de lt_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] para todos los valores de i en el intervalo de 0 a NumEntriesInList[ listIdx ][ rplsIdx ] - 1, inclusive, sea igual a num_ltrp_entries[ listIdx ][ rplsIdx ]. delta_poc_st[ listIdx ][ rplsIdx ][ i ], cuando la i-ésima entrada es la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imágenes de la imagen actual y la imagen a la que hace referencia la iésima entrada o, cuando la i-ésima entrada es una entrada STRP, pero no la primera entrada STRP, en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imágenes de las imágenes a las que hacen referencia la i-ésima entrada y la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ). El valor de delta_poc_st[ listIdx ][ rplsIdx ][ i ] estará en el intervalo de -215 a 215 - 1, inclusive. poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxLtPicOrderCntLsb de la imagen a la que hace referencia la i-ésima entrada en la estructura de sintaxis ref_piclist_struct( listIdx, rplsIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] es Log2( MaxLtPicOrderCntLsb ) bits.
[0217] Se expone el proceso de decodificación. El proceso de decodificación funciona de la siguiente manera para la imagen actual CurrPic. La decodificación de las unidades NAL se especifica posteriormente. Los procesos expuestos posteriormente especifican los siguientes procesos de decodificación utilizando elementos de sintaxis en la capa de encabezado de segmento o fragmento y superiores. Se obtienen variables y funciones relacionadas con el recuento de orden de imágenes. Es necesario invocar esto solo para la primera segmento o fragmento de una imagen. Al comienzo del proceso de decodificación para cada segmento o fragmento de una imagen no-IRAP, se invoca el proceso de decodificación para la construcción de listas de imágenes de referencia para la obtención de la lista 0 de imágenes de referencia (RefPicList[ 0 ]) y la lista 1 de imágenes de referencia (RefPicList[ 1 ]). Se invoca el proceso de decodificación para el marcado de imágenes de referencia, en donde las imágenes de referencia se marcan como "no utilizadas para referencia" o "utilizadas para referencia a largo plazo". Es necesario invocar esto solo para la primera segmento o fragmento de una imagen. Se invocan los procesos de decodificación para codificar unidades de árbol, cambiar la escala, transformar, filtrar en bucle, etc. Después de que se hayan decodificado todas los segmentos o fragmentos de la imagen actual, la imagen decodificada actual se marca como "utilizada para referencia a corto plazo".
[0218] Se expone el proceso de decodificación de la unidad NAL. Las entradas a este proceso son unidades NAL de la imagen actual y sus unidades NAL no-VCL asociadas. Las salidas de este proceso son las estructuras de sintaxis de RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis RBSP de la unidad NAL y, a continuación, analiza la estructura de sintaxis RBSP.
[0219] Se expone el proceso de decodificación de segmentos o fragmentos, incluido el proceso de decodificación para el recuento de orden de imágenes. La salida de este proceso es PicOrderCntVal, el recuento de orden de imagen de la imagen actual. Los recuentos de orden de imágenes se utilizan para identificar imágenes, para obtener parámetros de movimiento en modo de fusión y la predicción de vectores de movimiento, y para la verificación de conformidad del decodificador. Cada imagen codificada está asociada con una variable de recuento de orden de imágenes, denominada PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se obtienen de la siguiente manera: sea prevTid0Pic la imagen anterior en orden de decodificación que tenga TemporalId igual a 0. La variable prevPicOrderCntLsb se establece como igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece como igual a PicOrderCntMsb de prevTid0Pic.
[0220] La variable PicOrderCntMsb de la imagen actual se obtiene de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece como igual a 0. De lo contrario, PicOrderCntMsb se obtiene de la siguiente manera:
[0223]
[0225] PicOrderCntVal se obtiene de la siguiente manera: PicOrderCntVal = PicOrderCntMsb slice_pic_order_cnt_lsb.
[0226] Todas las imágenes IRAP tendrán PicOrderCntVal igual a 0, ya que se deduce que slice_pic_order_cnt_lsb es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se establecen ambos como iguales a 0. El valor de PicOrderCntVal estará en el intervalo de -231 a 231 - 1, inclusive. En una CVS, los valores de PicOrderCntVal para dos imágenes codificadas cualesquiera no serán los mismos.
[0227] La función PicOrderCnt( picX ) se especifica de la siguiente manera: PicOrderCnt( picX ) = PicOrderCntVal de la imagen picX. La función DiffPicOrderCnt( picA, picB ) se especifica de la siguiente manera: DiffPicOrderCnt( picA, picB ) = PicOrderCnt( picA) - PicOrderCnt( picB ). El flujo de bits no contendrá datos que den como resultado valores de DiffPicOrderCnt( picA, picB ) utilizados en el proceso de decodificación que no estén en el intervalo de -215 a 215 - 1, inclusive. Sea X la imagen actual y sean Y y Z otras dos imágenes en la misma secuencia de vídeo codificada (CVS, por sus siglas en inglés), Y y Z se considera que están en la misma dirección de orden de salida de X cuando DiffPicOrderCnt( X, Y ) y DiffPicOrderCnt( X, Z ) son ambos positivos o ambos negativos.
[0228] Se expone el proceso de decodificación para la construcción de listas de imágenes de referencia. Este proceso se invoca al principio del proceso de decodificación para cada segmento o fragmento de una imagen no-IRAP. Las imágenes de referencia se direccionan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar un segmento o fragmento I, no se utiliza ninguna lista de imágenes de referencia en la decodificación de los datos del segmento o fragmento. Cuando se decodifica un segmento o fragmento P, solo se utiliza la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos del segmento o fragmento. Al decodificar un segmento o fragmento B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se utilizan en la decodificación de los datos del segmento o fragmento. Al comienzo del proceso de decodificación para cada segmento o fragmento de una imagen no-IRAP, se obtienen las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos del segmento o fragmento. Para un segmento o fragmento I de una imagen no-IRAP que no sea el primer segmento o fragmento de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se obtienen con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Para un segmento o fragmento P que no sea la primera segmento o fragmento de una imagen, RefPicList[ 1 ] se obtiene con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
[0231]
[0234] Para cada i igual a 0 o 1, se aplica lo siguiente: las primeras entradas NumRefIdxActive[ i ] en RefPicList[ i ] se denominan entradas activas en RefPicList[ i ], y las otras entradas en RefPicList[ i ] se denominan entradas inactivas en RefPicList[ i ]. Cada entrada en RefPicList[ i ][ j ] para j en el intervalo de 0 a NumEntriesInList[ i ][ RplsIdx[ i ] ] - 1, inclusive, se conoce como una entrada STRP si lt_ref_pic_flag[ i ][ RplsIdx[ i ] ][ j ] es igual a 0, y como una entrada LTRP de lo contrario. Es posible que a una imagen en particular hagan referencia tanto una entrada en RefPicList[ 0 ] como una entrada en RefPicList[ 1 ]. También es posible que a una imagen en particular hagan referencia más de una entrada en RefPicList[ 0 ] o más de una entrada en RefPicList[ 1 ]. Las entradas activas en RefPicList[ 0 ] y las entradas activas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que se utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en orden de decodificación. Las entradas inactivas en RefPicList[ 0 ] y las entradas inactivas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que no se utilizarán para la interpredicción de la imagen actual pero se pueden utilizar en la interpredicción para una o más imágenes que siguen a la imagen actual en el orden de decodificación. Hay una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que son iguales a "ninguna imagen de referencia" porque las imágenes correspondientes no están presentes en el DPB. Cada entrada inactiva en RefPicList[ 0 ] o RefPicList[ 0 ] que sea igual a "ninguna imagen de referencia" debe ignorarse. Se debe inferir una pérdida de imagen no intencional para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que es igual a "ninguna imagen de referencia".
[0236] Es un requisito de conformidad de flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ][ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento o fragmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o fragmento o de un segmento o fragmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 y setOfRefPics será el mismo para todos los segmentos o fragmentos de una imagen.
[0237] Proceso de decodificación para el marcado de imágenes de referencia.
[0238] Este proceso se invoca una vez por imagen, después de decodificar un encabezado de segmento o fragmento y el proceso de decodificación para la construcción de listas de imágenes de referencia para el segmento o fragmento, pero antes de la decodificación de los datos del segmento o fragmento. Este proceso puede dar como resultado que una o más imágenes de referencia en el DPB se marquen como "no utilizadas como referencia" o "utilizadas como referencia a largo plazo". Una imagen decodificada en el DPB puede marcarse como "no utilizada para referencia", "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo", pero solo una de estas tres en cualquier momento dado durante la operación del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando corresponda. Cuando se hace referencia a una imagen como marcada como "utilizada para referencia", esto se refiere colectivamente a que la imagen está marcada como "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo" (pero no ambas). Cuando la imagen actual es una imagen IRAP, todas las imágenes de referencia actualmente presentes en el DPB (si las hay) se marcan como "no utilizadas para referencia". Las STRP se identifican por sus valores PicOrderCntVal. Las LTRP se identifican mediante los Log2( MaxLtPicOrderCntLsb ) LSB de sus valores PicOrderCntVal. Se aplica lo siguiente: para cada entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ], cuando la imagen a la que se hace referencia es una STRP, la imagen se marca como "utilizada para referencia a largo plazo". Cada imagen de referencia en el DPB a la que no se hace referencia en ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no usada como referencia".
[0239] Se proporciona una descripción detallada de la segunda realización de la invención. Esta sección documenta una segunda realización de la invención como se describió anteriormente. La descripción es relativa al último WD de VVC. En esta realización, un conjunto de estructuras de listas de imágenes de referencia se señaliza en el SPS, compartido por la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia.
[0240] Sintaxis RBSP del conjunto de parámetros de secuencia.
[0243]
[0244]
[0246] Sintaxis RBSP del conjunto de parámetros de imagen.
[0248]
[0250] Sintaxis de encabezado de segmento o fragmento.
[0252]
[0253] Sintaxis de la estructura de lista de imágenes de referencia.
[0256]
[0258] Se expone la semántica del encabezado de unidad NAL.
[0259] Semántica RBSP del conjunto de parámetros de secuencia.
[0260] Un log2_max_pic_order_ cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se utiliza en el proceso de decodificación para el recuento de orden de imágenes de la siguiente manera: MaxPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 4 ). El valor de log2_max_pic_order_cnt_lsb_minus4 estará en el intervalo de 0 a 12, ambos inclusive. sps_max_dec_pic_buffering_minus1 más 1 especifica el tamaño máximo requerido del búfer de imágenes decodificadas para la CVS en unidades de búferes de almacenamiento de imágenes. El valor de sps_max_dec_pic_buffering_minus1 estará en el intervalo de 0 a MaxDpbSize - 1, ambos inclusive, donde MaxDpbSize es como se especifica en otro lugar. num_ref_pic_lists_in_sps especifica el número de estructuras de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) incluidas en el SPS. El valor de num_ref_pic_lists_in_sps estará en el intervalo de 0 a 128, inclusive. Un decodificador debe asignar memoria para un número total de estructuras de sintaxis num_short_term_ref_pic_sets 2 ref_pic_list_struct( rplsIdx, ltrpFlag ) , ya que hay dos estructuras de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag) señalizadas directamente en los encbezados de segmentos o fragmentos de una imagen actual. long_term_ref_pics_flag igual a 0 especifica que no se utiliza LTRP para interpredicción de ninguna imagen codificada en la CVS. long_term_ref_pics_flag igual a 1 especifica que se utilizarán LTRP para la interpredicción de una o más imágenes codificadas en la CVS. additional_lt_poc_lsb especifica el valor de la variable MaxLtPicOrderCntLsb que se 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 estará en el intervalo de 0 a 32 - log2_max_pic_order_cnt_lsb_minus4 - 4, ambos inclusive. Cuando no está presente, se deduce que el valor de additional_lt_poc_lsb es igual a 0.
[0261] Se expone la semántica de RBSP del conjunto de parámetros de imagen.
[0262] Semántica de encabezado de segmento o fragmento.
[0263] Cuando estén presentes, el valor de cada uno de los elementos de sintaxis de encabezado de segmento o fragmento slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todos los encabezados de segmentos o fragmentos de una imagen codificada. slice_type especifica el tipo de codificación del segmento o fragmento de acuerdo con la Tabla 7-3.
[0264] Tabla 7-3 - Asociación de nombres a slice_type
[0267]
[0268]
[0271] Cuando nal_unit_type es igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type será igual a 2.... slice_pic_order_cnt_lsb especifica el módulo de recuento de orden de imágenes MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice_pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de slice_pic_order_cnt_lsb estará en el intervalo de 0 a MaxPicOrderCntLsb - 1, ambos inclusive. Cuando slice_pic_order_cnt_lsb no esté presente, se infiere que slice_pic_order_cnt_lsb es igual a 0. ref_pic_list sps_flag[ i ] igual a 1 especifica que la lista de imágenes de referencia i de la imagen actual se deriva basándose en las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) en el SPS activo. ref_pic_list_sps_flag[ i ] igual a 0 especifica que la lista de imágenes de referencia i de la imagen actual se deriva basándose en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) que se incluye directamente en las encabezados de segmentos o fragmentos de la imagen actual. Cuando num_ref_pic_lists_in_sps es igual a 0, el valor de ref_pic_list_sps_flag[ i ] será igual a 0. ref_pic_list_idx[ i ] especifica el índice, en la lista de las estructuras de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) que se incluyen en el SPS activo, de la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) que se utiliza para la obtención de la lista i de imágenes de referencia de la imagen actual. El elemento de sintaxis ref_pic_list_idx[ i ] se representa por Ceil( Log2( num_ref_pic_lists_in_sps ) ) bits. Cuando no está presente, se deduce que el valor de ref_pic_list_idx[ i ] es igual a 0. El valor de ref_pic_list_idx[ i ] estará en el intervalo de 0 a num_ref_pic_lists _in_sps - 1, inclusive. num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num _ref_idx_active_minus1 [ 0 ] está presente para segmentos o fragmentos P y B y que el elemento de sintaxis num_ref_idx_active_minus1 [ 1 ] está presente para segmentos o fragmentos 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.
[0272] num_ref_idx_active_minus1 [i], cuando está presente, especifica el valor de la variable NumRefIdxActive[ i ] de la siguiente manera: NumRefIdxActive[ i ] = num_ref_idx _active_ minus1 [ i ] 1. El valor de num_ref_idx_active_minus1 [ i ] estará en el intervalo de 0 a 14, inclusive. El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista i de imágenes de referencia que se utiliza para decodificar el segmento o fragmento. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se utiliza ningún índice de referencia para la lista i de imágenes de referencia para decodificar el segmento o fragmento. Para i igual a 0 o 1, cuando el segmento o fragmento actual es un segmento o fragmento B y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1 [ i ] 1. Cuando el segmento o fragmento actual es un segmento o fragmento P y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ 0 ] es igual a num_ref_idx_default_active_ minus1 [ 0 ] 1. Cuando el segmento o fragmento actual es un segmento o fragmento P, se deduce que NumRefIdxActive[ 1 ] es igual a 0. Cuando el segmento o fragmento actual es un segmento o fragmento I, se deduce que tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] son iguales a 0.
[0274] Como alternativa, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: sea rplsIdx1 establecido igual a ref_pic_list_sps_flag[ i ] ? ref_pic_list_idx[ i ] : num ref_pic_lists_in _sps[ i ], y numRpEntries[ i ] igual a num_strp_entries[ i ][ rplsIdx1 ] num_ltrp_entries[ i ][ rplsIdx1 ]. Cuando NumRefIdxActive[ i ] es mayor que numRpEntries[ i ], el valor de NumRefIdxActive[ i ] se establece igual a numRpEntries[ i ].
[0276] Semántica de estructura de lista de imágenes de referencia.
[0278] La estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) está presente en un SPS o en un encabezado de segmento o fragmento. Dependiendo de si la estructura de sintaxis está incluida en un encabezado de segmento o fragmento o en un SPS, se aplica lo siguiente: si está presente en un encabezado de segmento o fragmento, 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 o fragmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) especifica un candidato para la lista de imágenes de referencia, y el término "la imagen actual" en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tiene uno o más segmentos o fragmentos que contienen ref_pic_list_idx[ i ] igual a un índice en la lista de las estructuras de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) incluidas en el SPS, y 2) está en una CVS que tiene el SPS como el SPS activo. num_strp_entries[ rplsIdx ] especifica el número de entradas STRP en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ). num_ltrp_entries[ rplsIdx ] especifica el número de entradas LTRP en la estructura de sintaxis ef_pic_list_struct( rplsIdx, ltrpFlag ). Cuando no está presente, el valor de num_ltrp_entries[ rplsIdx ] se infiere que es igual a 0.
[0280] La variable NumEntriesInList[ rplsIdx ] se deriva de la siguiente manera: NumEntriesInList[ rplsIdx ] = num_strp_entries[ rplsIdx ] num_ltrp_entries[ rplsIdx ]. El valor de NumEntriesInList[ rplsIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, inclusive. lt_ref_pic_flag[ rplsIdx ][ i ] igual a 1 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) es una entrada LTRP. lt_ref_pic_flag[ rplsIdx ][ i ] igual a 0 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ) es una entrada STRP. Cuando no está presente, se deduce que el valor de lt_ref_pic_flag[ rplsIdx ][ i ] es igual a 0. Es un requisito de conformidad de flujo de bits que la suma de lt_ref_pic_flag[ rplsIdx ][ i ] para todos los valores de i en el intervalo de 0 a NumEntriesInList[ rplsIdx ] - 1, inclusive, sea igual a num_ltrp_entries[ rplsIdx ]. delta_poc_st[ rplsIdx ][ i ], cuando la i-ésima entrada es la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imágenes de la imagen actual y la imagen a la que hace referencia la i-ésima entrada o, cuando la i-ésima entrada es una entrada STRP, pero no la primera entrada STRP, en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imágenes de las imágenes a las que hacen referencia la i-ésima entrada y la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ). El valor de delta_poc_st[ rplsIdx ][ i ] estará en el intervalo de 0 a 215 - 1, inclusive. poc_lsb_lt[ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxLtPicOrderCntLsb de la imagen a la que hace referencia la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( rplsIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ rplsIdx ][ i ] es Log2( MaxLtPicOrderCntLsb ) bits.
[0281] Se aplica el proceso de decodificación general especificado como parte de la descripción detallada de la primera realización de esta invención. Se describe el proceso de decodificación de la unidad NAL. Se aplica el proceso de decodificación de la unidad NAL especificado como parte de la descripción detallada de la primera realización de esta invención.
[0282] Se proporciona el proceso de decodificación de segmentos o fragmentos.
[0283] Proceso de decodificación para el recuento de orden de imagen.
[0284] Se aplica el proceso de decodificación para el recuento de orden de imágenes especificado como parte de la descripción detallada de la primera realización de esta invención.
[0285] Proceso de decodificación para construcción de listas de imágenes de referencia.
[0286] Este proceso se invoca al principio del proceso de decodificación para cada segmento o fragmento de una imagen no IRAP. Las imágenes de referencia se direccionan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar un segmento o fragmento I, no se utiliza ninguna lista de imágenes de referencia en la decodificación de los datos del segmento o fragmento. Al decodificar un segmento o fragmento P, solo se utiliza la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos del segmento o fragmento. Al decodificar un segmento o fragmento B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se utilizan en la decodificación de los datos del segmento o fragmento. Al comienzo del proceso de decodificación para cada segmento o fragmento de una imagen no-IRAP, se obtienen las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos del segmento o fragmento. Para un segmento o fragmento I de una imagen no-IRAP que no sea la primera segmento o fragmento de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se obtienen con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Para un segmento o fragmento P que no sea la primera segmento o fragmento de una imagen, RefPicList[ 1 ] se obtiene con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
[0287]
[0290] Para cada i igual a 0 o 1, se aplica lo siguiente: las primeras entradas NumRefIdxActive[ i ] en RefPicList[ i ] se denominan entradas activas en RefPicList[ i ], y las otras entradas en RefPicList[ i ] se denominan entradas inactivas en RefPicList[ i ]. Cada entrada en RefPicList[ i ][ j ] para j en el intervalo de 0 a NumEntriesInList[ RplsIdx[ i ] ] - 1, ambos inclusive, se denomina entrada STRP si lt_ref_pic_flag[ i ][ RplsIdx[ i ] ][ j ] es igual a 0, y entrada LTRP de lo contrario. Es posible que se haga referencia a una imagen particular tanto en una entrada en RefPicList[ 0 ] como en una entrada en RefPicList[ 1 ]. También es posible que a una imagen en particular hagan referencia más de una entrada en RefPicList[ 0 ] o más de una entrada en RefPicList[ 1 ]. Las entradas activas en RefPicList[ 0 ] y las entradas activas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que se utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en orden de decodificación. Las entradas inactivas en RefPicList[ 0 ] y las entradas inactivas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que no se utilizarán para la interpredicción de la imagen actual pero se pueden utilizar en la interpredicción para una o más imágenes que siguen a la imagen actual en el orden de decodificación. Hay una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que son iguales a "ninguna imagen de referencia" porque las imágenes correspondientes no están presentes en el DPB. Cada entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] que sea igual a "ninguna imagen de referencia" debe ignorarse. Se debe inferir una pérdida de imagen no intencional para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que es igual a "ninguna imagen de referencia".
[0292] Es un requisito de conformidad de flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento o fragmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o fragmento o de un segmento o fragmento diferente de la misma imagen no se referirán a la misma imagen. A la imagen actual en sí misma no hará referencia ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1, y setOfRefPics será el mismo para todos los segmentos o fragmentos de una imagen.
[0294] Se expone el proceso de decodificación para el marcado de imágenes de referencia.
[0296] Este proceso se invoca una vez por imagen, después de decodificar un encabezado de segmento o fragmento y el proceso de decodificación para la construcción de listas de imágenes de referencia para el segmento o fragmento, pero antes de la decodificación de los datos del segmento o fragmento. Este proceso puede dar como resultado que una o más imágenes de referencia en el DPB se marquen como "no utilizadas como referencia" o "utilizadas como referencia a largo plazo". Una imagen decodificada en el DPB puede marcarse como "no utilizada para referencia", "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo", pero solo una de estas tres en cualquier momento dado durante la operación del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando corresponda. Cuando se hace referencia a una imagen como marcada como "utilizada para referencia", esto se refiere colectivamente a que la imagen está marcada como "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo" (pero no ambas). Cuando la imagen actual es una imagen IRAP, todas las imágenes de referencia actualmente presentes en el DPB (si las hay) se marcan como "no utilizadas para referencia". Las STRP se identifican por sus valores PicOrderCntVal. Las LTRP se identifican mediante los Log2( MaxLtPicOrderCntLsb ) LSB de sus valores PicOrderCntVal.
[0297] Se aplica lo siguiente: para cada entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ], cuando la imagen a la que se hace referencia es una STRP, la imagen se marca como "utilizada para referencia a largo plazo". Cada imagen de referencia en el DPB a la que no se hace referencia en ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no usada como referencia".
[0298] La FIGURA 5 es una realización de un método 500 de decodificación de un flujo de bits de vídeo codificado implementado por un decodificador de vídeo (por ejemplo, el decodificador de vídeo 30). El método 500 puede realizarse después de que el flujo de bits decodificado haya sido recibido directa o indirectamente desde un codificador de vídeo (por ejemplo, el codificador de vídeo 20). El método 500 se realiza para mejorar el proceso de decodificación (por ejemplo, hacer el proceso de decodificación más eficaz, más rápido, etc., que los procesos de decodificación convencionales).
[0299] En el bloque 502, se obtienen una primera lista de imágenes de referencia de un segmento o fragmento actual representada en el flujo de bits de vídeo codificado y una segunda lista de imágenes de referencia del segmento o fragmento actual. En una realización, la lista de imágenes de referencia se denomina RefPictList[0] y la segunda lista de imágenes de referencia se denomina RefPictList[1].
[0300] En el bloque 504, se marca un estado de una imagen de referencia en un búfer de imágenes decodificadas (DPB) en función de la primera lista de imágenes de referencia y la segunda lista de imágenes de referencia cuando el segmento o fragmento actual es un primer segmento o fragmento en una imagen actual a la que pertenece el segmento o fragmento actual. En una realización, el estado de la imagen de referencia en el búfer de imágenes decodificadas es uno de utilizado para referencia a corto plazo, utilizado para referencia a largo plazo o no utilizado para referencia.
[0301] En el bloque 506, la imagen de referencia se utiliza en un proceso de reconstrucción de la imagen actual (o una imagen siguiente a la imagen actual) cuando el estado de la imagen de referencia se utiliza para referencia a corto plazo o se utiliza para referencia a largo plazo. Después del proceso de reconstrucción, el decodificador de vídeo puede generar un vídeo o una imagen. En una realización, ese vídeo o imagen se muestra en la pantalla de un dispositivo electrónico (por ejemplo, un teléfono inteligente, una tableta, un ordenador portátil, etc.).
[0302] La FIGURA 6 es una realización de un método 600 de decodificación de un flujo de bits de vídeo codificado implementado por un decodificador de vídeo (por ejemplo, el decodificador de vídeo 30). El método 600 se realiza después de que el flujo de bits decodificado haya sido recibido directa o indirectamente desde un codificador de vídeo (por ejemplo, el codificador de vídeo 20). El método 600 se realiza para mejorar el proceso de decodificación (por ejemplo, hacer el proceso de decodificación más eficaz, más rápido, etc., que los procesos de decodificación convencionales).
[0303] En el bloque 602, el decodificador de vídeo decodifica una primera imagen (incluyendo todos los segmentos o fragmentos de la misma) para obtener una primera imagen decodificada. En el bloque 604, la primera imagen decodificada es almacenada por el decodificador de vídeo en un búfer de imagen decodificada (DPB) después de la decodificación. En una realización, el DPB contiene una pluralidad de imágenes de referencia además, de la primera imagen decodificada. El contenido del DPB se gestiona para garantizar la sincronización entre el codificador y el decodificador. El conjunto de imágenes retenidas en el DPB se denomina Conjunto de imágenes de referencia (RPS).
[0304] En el bloque 606, la primera imagen se marca como utilizada para referencia a corto plazo después de que se hayan decodificado todos los segmentos o fragmentos de la primera imagen. En una realización, la primera imagen se denomina STRP cuando se marca como utilizada para referencia a corto plazo. En una realización, STRP se identifica mediante un valor de conteo de orden de imagen (PicOrderCntVal).
[0305] En el bloque 608, se decodifica un primer segmento o fragmento de una imagen actual. En una realización, el proceso de decodificación para el primer segmento o fragmento de la imagen actual comprende obtener una primera lista de imágenes de referencia y una segunda lista de imágenes de referencia, volver a marcar, por medio del decodificador de vídeo, la primera imagen como utilizada para referencia a largo plazo cuando la primera imagen es mencionada por una entrada de imagen de referencia a largo plazo (LTRP) en la primera lista de imágenes de referencia o la segunda lista de imágenes de referencia, y volver a marcar, por medio del decodificador de vídeo, la primera imagen como no utilizada para referencia cuando la primera imagen no es mencionada en la primera lista de imágenes de referencia o la segunda lista de imágenes de referencia. De este modo, el estado de la primera imagen se cambia o se actualiza de STRP a no utilizada para referencia cuando la primera imagen no está mencionada por una entrada LTRP en la primera lista de imágenes de referencia o en la segunda lista de imágenes de referencia.
[0306] En una realización, la primera lista de imágenes de referencia se denomina RefPictList[0] y la segunda lista de imágenes de referencia se denomina RefPictList[1]. En una realización, la imagen actual comprende una imagen que no es IRAP. En una realización, un LTRP se identifica mediante una función logarítmica del conteo máximo de orden de imagen a largo plazo de bits menos significativos (Log2(MaxLtPicOrderCntLsb)) de un valor de conteo de orden de imagen (PicOrderCntVal).
[0307] En una realización, en cualquier momento dado la primera imagen solo se marca o se vuelve a marcar como una de las utilizadas para referencia a corto plazo, utilizadas para referencia a corto plazo y no utilizadas para referencia. En una realización, marcar o volver a marcar la primera imagen como una de las utilizadas para referencia a corto plazo, utilizadas para referencia a corto plazo y no utilizadas para referencia elimina cualquier otra marca para la primera imagen.
[0308] Se proporciona un resumen de realizaciones alternativas basadas en la primera y la segunda realizaciones. Esta sección proporciona breves resúmenes de otras realizaciones alternativas de la invención. Los resúmenes son relativos a la descripción de la primera realización. Sin embargo, el concepto básico de la invención para las siguientes realizaciones alternativas también es aplicable para la implementación sobre la invención para la segunda realización. Tal implementación es con el mismo espíritu de cómo los aspectos se implementan sobre la primera realización.
[0309] Semántica del delta POC de las entradas de imágenes de referencia a corto plazo.
[0310] En una realización alternativa de la invención, la semántica del elemento de sintaxis que especifica el delta POC de la i-ésima entrada en una estructura de lista de imágenes de referencia ref_pic_list_struct( ) se define como la diferencia de POC entre la imagen actual y la imagen de referencia asociada con esa i-ésima entrada. Parte de la descripción utilizada en la presente memoria es relativa al presente borrador estándar (por ejemplo, el borrador de trabajo de VVC) donde solo se muestra o describe el delta. El texto eliminado se indica mediante tachadura y cualquier texto agregado está resaltado.
[0311] La semántica de delta_poc_st[ listIdx ][ rplsIdx ][ i ] se define de la siguiente manera: delta_poc_st[ listIdx ][ rplsIdx ][ i ] especifica la diferencia entre los valores de recuento de orden de imágenes de la imagen actual y la imagen a la que hace referencia la i-ésima entrada. El valor de delta_poc_st[ listIdx ][ rplsIdx ][ i ] estará en el intervalo de -215 a 215 - 1, inclusive.
[0312] Es necesario actualizar la ecuación en el proceso de construcción de la lista de imágenes de referencia. Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
[0315]
[0316] Señalización de entradas de imágenes de referencia a largo plazo.
[0317] En una realización alternativa de la invención, las entradas de imagen de referencia a largo plazo no se señalizan en la misma estructura de lista de imágenes de referencia que contiene entradas de imagen de referencia a corto plazo. Las entradas de imagen de referencia a largo plazo se señalizan en una estructura separada y para cada entrada en la estructura hay un elemento de sintaxis que describe la posición prevista de la entrada de imagen de referencia a largo plazo para la obtención del índice de entrada correspondiente en la lista de imágenes de referencia final.
[0318] Sintaxis RBSP del conjunto de parámetros de secuencia.
[0321]
[0323] Sintaxis de encabezado de segmento o fragmento.
[0326]
[0327]
[0329] Sintaxis de la estructura de lista de imágenes de referencia.
[0332]
[0334] Sintaxis de la estructura de lista de imágenes de referencia a largo plazo.
[0336]
[0338] Semántica RBSP del conjunto de parámetros de secuencia.
[0339] Un num_ref_pic_lists_lt_in_sps especifica el número de estructuras de sintaxis ref_pic_list_lt_struct( ltRplsIdx ) incluidas en el SPS. El valor de num_ref_pic_lists_lt_in_sps estará en el intervalo de 0 a 64, inclusive. Cuando no está presente, se deduce que el valor de num ref_pic_lists_lt_in_sps es igual a 0.
[0340] Semántica de encabezado de segmento o fragmento.
[0341] Una ref_pic_list_lt_idx[ i ] especifica el índice en la lista de las estructuras de sintaxis ref_pic_list_lt_struct( ltRplsIdx ) incluidas en el SPS activo que se utiliza para obtención de la lista de imágenes de referencia i de la imagen actual. El elemento de sintaxis ref_pic_list_lt_idx[ i ] está representado por Ceil( Log2( num_ref_pic_lists_lt_in_sps ) ) bits. El valor de ref_pic_list_lt_idx estará en el intervalo de 0 y num_ref_pic_lists_lt_in_sps - 1, ambos inclusive.
[0342] Semántica de estructura de lista de imágenes de referencia.
[0343] La estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) está presente en un SPS o en un encabezado de segmento o fragmento. Dependiendo de si la estructura de sintaxis está incluida en un encabezado de segmento o fragmento o en un SPS, se aplica lo siguiente: si está presente en un encabezado de segmento o fragmento, la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) especifica la lista listIdx de imágenes de referencia a corto plazo de la imagen actual (la imagen que contiene el segmento o fragmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct( listldx, rplsIdx ) especifica un candidato para la lista listIdx de imágenes de referencia a corto plazo, y 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) tenga uno o más segmentos o fragmentos que contengan ref_pic_list_idx[ listIdx ] igual a un índice en la lista de las estructuras de sintaxis ref_pic_list struct( listIdx, rplsIdx ) incluidas en el SPS, y 2) esté en una CVS que tenga el SPS como 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 ).
[0344] delta_poc_st[ listIdx ][ rplsIdx ][ i ], cuando la i-ésima entrada es la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ), especifica la diferencia entre los valores de recuento de orden de imágenes de la imagen actual y la imagen a la que hace referencia la i-ésima entrada o, cuando la i-ésima entrada es una entrada STRP, pero no la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ), especifica la diferencia entre los valores de recuento de orden de imágenes de las imágenes a las que hacen referencia la i-ésima entrada y la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ). El valor de delta_poc_st[ listIdx ][ rplsIdx ][ i ] estará en el intervalo de -215 a 215 - 1, inclusive.
[0345] Semántica de estructura de lista de imágenes de referencia a largo plazo.
[0346] La estructura de sintaxis ref_pic_list_lt_struct( ltRplsIdx ) está presente en un SPS o en un encabezado de segmento o fragmento. Dependiendo de si la estructura de sintaxis está incluida en un encabezado de segmento o fragmento o en un SPS, se aplica lo siguiente: si está presente en un encabezado de segmento o fragmento, 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 o fragmento). De lo contrario (presente en un SPS), la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx ) especifica un candidato para la lista de imágenes de referencia a largo plazo, y el término "la imagen actual" en la semántica especificada en el resto de esta sección se refiere a cada imagen que 1) tenga uno o más segmentos o fragmentos que contengan ref_pic_list_lt_idx[ i ] igual a un índice en la lista de las estructuras de sintaxis ref_pic_list_lt_struct( ltRplsIdx ) incluidas en el SPS, y 2) esté en una CVS que tenga el SPS como SPS activo. num_ltrp_entries[ ltRplsIdx ] especifica el número de entradas LTRP en la estructura de sintaxis ref_pic_list_lt_struct( ltRplsIdx ). poc_lsb_lt[ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxLtPicOrderCntLsb de la imagen a la que hace referencia la i-ésima entrada en la estructura de sintaxis ref_pic_list_lt_struct( rplsIdx ). La longitud del elemento de sintaxis poc_lsb_lt[ rplsIdx ][ i ] es Log2( MaxLtPicOrderCntLsb ) bits. lt_pos_idx[ rplsIdx ][ i ] especifica el índice de la i-ésima entrada en la estructura de sintaxis ref_pic_list_lt_struct( rplsIdx ) en la lista de imágenes de referencia después de la construcción de la lista de imágenes de referencia. La longitud del elemento de sintaxis lt_pos_idx[ rplsIdx ][ i ] es Log2( sps_max_dec_pic_buffering_minus1 1 ) bits. Cuando num_ltrp_entries[ ltRplsIdx ] es mayor de 1, poc_lsb_lt[ rplsIdx ][ i ] y lt_pos_idx[ rplsIdx ][ i ] estarán en el orden descendente de los valores lt_pos_idx[ rplsIdx ][ i ].
[0347] Se describe el proceso de decodificación.
[0348] Proceso de decodificación para construcción de listas de imágenes de referencia.
[0349] Este proceso se invoca al principio del proceso de decodificación para cada segmento o fragmento de una imagen no IRAP. Las imágenes de referencia se direccionan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar un segmento o fragmento I, no se utiliza ninguna lista de imágenes de referencia en la decodificación de los datos del segmento o fragmento. Cuando se decodifica un segmento o fragmento P, solo se utiliza la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos del segmento o fragmento. Al decodificar un segmento o fragmento B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se utilizan en la decodificación de los datos del segmento o fragmento. Al comienzo del proceso de decodificación para cada segmento o fragmento de una imagen no-IRAP, se obtienen las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos del segmento o fragmento. Para un segmento o fragmento I de una imagen no-IRAP que no sea la primera segmento o fragmento de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se obtienen con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Para un segmento o fragmento P que no sea la primera segmento o fragmento de una imagen, RefPicList[ 1 ] se obtiene con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
[0352]
[0355] Para cada i igual a 0 o 1, se aplica lo siguiente: las primeras entradas NumRefIdxActive[ i ] en RefPicList[ i ] se denominan entradas activas en RefPicList[ i ], y las otras entradas en RefPicList[ i ] se denominan entradas inactivas en RefPicList[ i ]. Cada entrada en RefPicList[ i ][ j ] para j en el intervalo de 0 a NumEntriesInList[ i ][ RplsIdx[ i ] ] - 1, inclusive, se conoce como una entrada STRP si lt_ref_pic_flag[ i ][ RplsIdx[ i ] ][ j ] es igual a 0, y como una entrada LTRP de lo contrario. Es posible que a una imagen en particular hagan referencia tanto una entrada en RefPicList[ 0 ] como una entrada en RefPicList[ 1 ]. También es posible que se haga referencia a una imagen particular por más de una entrada en RefPicList[ 0 ] o por más de una entrada en RefPicList[ 1 ]. Las entradas activas en RefPicList[ 0 ] y las entradas activas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que se utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en orden de decodificación. Las entradas inactivas en RefPicList[ 0 ] y las entradas inactivas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que no se utilizarán para la interpredicción de la imagen actual pero se pueden utilizar en la interpredicción para una o más imágenes que siguen a la imagen actual en el orden de decodificación. Hay una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que son iguales a "ninguna imagen de referencia" porque las imágenes correspondientes no están presentes en el DPB. Cada entrada inactiva en RefPicList[ 0 ] o RefPicList[ 0 ] que sea igual a "ninguna imagen de referencia" debe ignorarse. Se debe inferir una pérdida de imagen no intencional para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que es igual a "ninguna imagen de referencia".
[0356] Es un requisito de conformidad de flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, el número de entradas en RefPicList[ i ] no será menor que NumRefIdxActive[ i ]. La imagen a la que haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento o fragmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o fragmento o de un segmento o fragmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de RefPicList[ 1]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1, y setOfRefPics será el mismo para todas los segmentos o fragmentos de una imagen.
[0358] Se expone la señalización del número de entradas de imágenes de referencia a corto plazo.
[0360] En una realización alternativa de la invención, el elemento de sintaxis que especifica el número de entradas asociadas con imágenes de referencia a corto plazo en una estructura de lista de imágenes de referencia ref_pic_list_struct( ) se define como num_strp_entries_minus1[ listIdx ][ rplsIdx ], en lugar de num_strp_entries[ listIdx ][ rplsIdx ]. El cambio tiene dos efectos para la señalización de la lista de imágenes de referencia: puede guardar bits para señalizar el número de entradas asociadas con la imagen de referencia a corto plazo en la estructura de lista de imágenes de referencia a medida que el elemento se codifica utilizando ue(v). Impone implícitamente una restricción tal que cada lista de imágenes de referencia contendrá al menos una imagen de referencia a corto plazo. Para acomodar esta idea se necesitan algunos cambios en relación con la primera realización.
[0362] Para la señalización de listas de imágenes de referencia en encabezados de segmentos o fragmentos, solo se señaliza la lista de imágenes de referencia necesaria de acuerdo con el tipo de segmento o fragmento, es decir, una lista de imágenes de referencia (es decir, la lista 0 de imágenes de referencia) para los segmentos o fragmentos I o P y dos listas de imágenes de referencia (es decir, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia) para los segmentos o fragmentos B. La sintaxis del encabezado de segmento o fragmento se cambia de la siguiente manera:
[0365]
[0366]
[0369] Aplicando el cambio anterior en el encabezado de segmento o fragmento (es decir, la lista 0 de imágenes de referencia para los segmentos o fragmentos I o P; la imagen 0 de referencia y la imagen 1 de referencia para los segmentos o fragmentos B), se evitaría el esquema del problema en donde para un segmento o fragmento P solo hay una imagen de referencia a corto plazo. Sin embargo, no se puede señalizar una imagen de referencia a corto plazo duplicada en la lista 0 de imágenes de referencia y en la lista 1 de imágenes de referencia, cuando la entrada en la lista 1 de imágenes de referencia es una entrada inactiva, ya que el número de entradas activas en la lista 1 de imágenes de referencia debe ser igual a 0. La semántica de num_strp_entries_minus1 [ listIdx ][ rplsIdx ] se cambia de la siguiente manera: num_strp_entries_minus1[ listIdx ][ rplsIdx ] plus 1 especifica el número de entradas 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 ] estará en el intervalo de 1 a sps_max_dec_pic_buffering_minus1, inclusive.
[0371] Permitir la inclusión de la imagen actual en listas de imágenes de referencia.
[0373] En una realización alternativa de la invención, se permite incluir la imagen actual en sus listas de imágenes de referencia. Para admitir esta característica, no se requiere ningún cambio de sintaxis y semántica en relación con esas descripciones en la primera y la segunda realizaciones. Sin embargo, las restricciones de conformidad de flujo de bits que se describen en el proceso de decodificación para la construcción de listas de imágenes de referencia tendrían que modificarse de la siguiente manera: es un requisito de conformidad de flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ][ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento o fragmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o fragmento o de un segmento o fragmento diferente de la misma imagen no se referirán a la misma imagen. Cuando una entrada en RefPicList[ i ] haga referencia a la imagen actual, para i igual a 0 o 1, el índice de entrada será menor que NumRefIdxActive[ i ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. Si la imagen actual no se incluye en setOfRefPics, el número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1; de lo contrario, el número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 1. El setOfRefPics será el mismo para todos los segmentos o fragmentos de una imagen.
[0375] Uso de diferentes bits LSB de POC para entradas LTRP en listas de imágenes de referencia.
[0377] En una realización alternativa de la invención, se permite que el número de bits utilizados para identificar imágenes de referencia a largo plazo en una estructura de lista de imágenes de referencia sea diferente entre la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia. Para admitir esta característica, se necesitan los siguientes cambios:
[0380]
[0381]
[0383] Un additional_lt_poc_lsb[ i ] especifica el valor de la variable MaxLtPicOrderCntLsb[ i ] que se utiliza en el proceso de decodificación para la lista listIdx de imágenes de referencia igual a i de la siguiente manera: MaxLtPicOrderCntLsb[ i ] = 2( log2_max_pic_order_cnt_lsb_ minus4 4 additional_lt_poc_lsb[ i ] ). El valor de additional_lt_poc_lsb[ i ] estará en el intervalo de 0 a 32 - log2_max_pic_order _cnt_lsb_minus4 - 4, inclusive. Cuando no está presente, se deduce que el valor de additional_lt_poc_lsb[ i ] es igual a 0.
[0384] Un poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxLtPicOrderCntLsb[ listIdx ] de la imagen a la que hace referencia la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] es Log2( MaxLtPicOrderCntLsb[ listIdx ] ) bits.
[0385] Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
[0388]
[0389] Uso del mismo ref_pic_list_sps_flag para las listas 0 y 1 de imágenes de referencia.
[0390] En una realización alternativa de la invención, en lugar de utilizar dos señalizadores para indicar si la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia se obtienen sobre la base de estructuras de sintaxis ref_pic_list_struct( ) en el SPS activo, se utiliza un señalizador para ambas listas de imágenes de referencia. Tal alternativa restringe que, bien ambas listas de imágenes de referencia se obtengan sobre la base de ref_pic_list_struct( ) en el SPS activo, bien se obtengan sobre la base de estructuras de sintaxis ref_pic_list_struct( ) que se incluyen directamente en los encabezados de segmentos o fragmentos de la imagen actual. Para admitir esta característica, se necesitan los siguientes cambios:
[0393]
[0395] Un ref_pic_list_sps_flag igual a 1 especifica que las listas de imágenes de referencia de la imagen actual se obtienen sobre la base de las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) en el SPS activo. ref_pic_list_sps_flag igual a 0 especifica que las listas de imágenes de referencia de la imagen actual se obtienen sobre la base de las estructuras de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ) que se incluyen directamente en los encabezados de segmentos o fragmentos de la imagen actual. Cuando num ref_pic_lists in sps[ 0 ] o num ref_pic_lists_in_sps[ 1 ] son iguales a 0, el valor de ref_pic_list_sps_flag será igual a 0. pic_lists_in_sps[ 1 ] es igual a 0, el valor de ref_pic_list_sps_flag será igual a 0.
[0396] Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
[0397]
[0400] Señalización del Bit Más Significativo (MSB) de delta POC para entradas de imagen de referencia a largo plazo.
[0401] En una realización alternativa de la invención, en lugar de utilizar bits adicionales para representar LSB de POC de entradas de imagen de referencia a largo plazo en ref_pic_list_struct( ), se señaliza el ciclo de MSB de POC para diferenciar imágenes de referencia a largo plazo. Cuando se señaliza, la información del ciclo de MSB de POC se señaliza para cada entrada en ref_pic_list_struct( ) que haga referencia a una imagen de referencia a largo plazo. La estructura de sintaxis ref_pic_list_struct( ) no está señalizada en SPS, sino solo en encabezados de segmentos o fragmentos. Para admitir esta característica, se necesitan los siguientes cambios:
[0404]
[0408]
[0409]
[0413]
[0416] La estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ) está presente en un encabezado de segmento o fragmento. Cuando está presente en un encabezado de segmento o fragmento, la estructura de sintaxis ref_pic_list_struct( listldx, ltrpFlag ) especifica la lista listIdx de imágenes de referencia de la imagen actual (la imagen que contiene el segmento o fragmento). 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 deduce que el valor de num _ltrp_entries[ listIdx ][ rplsIdx ] es igual a 0.
[0418] La variable NumEntriesInList[ listIdx ] se deriva de la siguiente manera:
[0421]
[0424] El valor de NumRefPicEntries[ listIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, inclusive. lt_ref_pic_flag[ listIdx ][ i ] igual a 1 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ) es una entrada LTRP. lt_ref_pic_flag[ listIdx ][ i ] igual a 0 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ) es una entrada STRP. Cuando no está presente, se deduce que el valor de lt_ref_pic_flag[ listIdx ][ i ] es igual a 0. Es un requisito de conformidad de flujo de bits que la suma de lt_ref_pic_flag[ listIdx ][ i ] para todos los valores de i en el intervalo de 0 a NumRefPicEntries[ listIdx ] - 1, inclusive, sea igual a num_ltrp_entries[ listIdx ]. delta_poc_st[ listIdx ][ i ], cuando la i-ésima entrada es la primera entrada STRP en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imágenes de la imagen actual y la imagen a la que hace referencia la i-ésima entrada o, cuando la i-ésima entrada es una entrada STRP, pero no la primera entrada STRP, en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ), especifica la diferencia entre los valores de recuento de orden de imágenes de las imágenes a las que hacen referencia la i-ésima entrada y la entrada STRP anterior en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ). El valor de delta_poc_st[ listIdx ][ i ] estará en el intervalo de -2<15>a 2<15>- 1, inclusive. poc_lsb_lt[ listIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxLtPicOrderCntLsb de la imagen a la que hace referencia la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][i ] es Log2( MaxLtPicOrderCntLsb ) bits. delta_poc_msb_present_flag[ listIdx ][ i ] igual a 1 especifica que delta_pocmsb_cycle_lt[ listIdx ][ i ] está presente. delta_poc_msb_present_flag[ listIdx ][ i ] igual a 0 especifica que delta_poc_msb_cycle_lt[ listIdx ][ i ] no está presente. Cuando num_ltrp_entries[ listIdx ] es mayor que 0 y hay más de una imagen de referencia en el DPB en el momento en que se decodifica está encabezado de segmento o fragmento para el cual el módulo MaxPicOrderCntLsb de PicOrderCntVal es igual a poc_lsb_lt[ listIdx ][ i ], delta_poc_msb_present_flag[ listIdx ][ i ] será igual a 1. Cuando no está presente, se infiere que el valor de delta_poc_msb_cycle_lt[ listIdx ][ i ] es igual a 0. delta_poc_msb_cycle_lt[ listIdx ][ i ] se utiliza para determinar el valor de los bits más significativos del valor de recuento de orden de imagen de la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ). Cuando delta_poc_msb_cycle_lt[ listIdx ][ i ] no está presente, se deduce que es igual a 0. Cambios en el proceso de decodificación para el recuento de orden de imágenes:
[0426] Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
[0429]
[0432] Como alternativa, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] puede expresarse como delta de delta, de manera que la construcción de listas de imágenes de referencia se puede actualizar de la siguiente manera: las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
[0435]
[0436]
[0439] Es un requisito de conformidad de flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ][ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento o fragmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o fragmento o de un segmento o fragmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de RefPicList[ 1]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1, y setOfRefPics será el mismo para todos los segmentos o fragmentos de una imagen.
[0441] Cada STRP se identifica por su valor PicOrderCntVal. Para cada LTRP, si hace referencia a la misma una entrada en RefPicList[ 0 ] o RefPicList[ 1 ] con delta_poc_msb_present_flag[ listIdx ][ i ] igual a 1, se identifica por su valor PicOrderCntVal, de lo contrario, se identifica por Log2( MaxPicOrderCntLsb ) LSB de su valor PicOrderCntVal.
[0443] Alternativa 1 de señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo.
[0445] 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 utilizar bits adicionales para representar LSB del POC de imagen de referencia a largo plazo en ref_pic_list_struct( ), el ciclo de MSB del POC se señaliza para diferenciar imágenes de referencia a largo plazo. Sin embargo, en esta alternativa, cuando se señaliza, la información del ciclo de MSB del POC no se señaliza dentro de ref_pic_list_struct( ), en cambio, cuando se necesita información del ciclo de MSB del POC, se señaliza en la encabezado de segmento o fragmento. La estructura de sintaxis ref_pic_list_struct( ) se señaliza en el SPS y en encabezados de segmentos o fragmentos.
[0448]
[0449]
[0450]
[0451]
[0454] Un delta_poc_msb_present_flag[ i ][ j ] igual a 1 especifica que delta_poc_msb_cycle_lt[ i ][ j ] está presente. delta_poc_msb_present_flag[ i ][ j ] igual a 0 especifica que delta_poc_msb_cycle_lt[ i ][ j ] no está presente. Cuando NumLtrpEntries[ i ] sea mayor de 0 y para la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1) haya más de una imagen de referencia en el DPB en el momento en que se decodifica este encabezado de segmento o fragmento para las que el módulo MaxPicOrderCntLsb de PicOrderCntVal sea igual a poc_lsb_lt[ i ][ rplsIdx ][ jj ], donde jj es el índice de entrada de la entrada en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1 ) que es la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1 ), delta_pocmsb_present_flag[ i ][ j ] será igual a 1. Cuando no está presente, se deduce que el valor de delta_poc_msb_cycle_lt[ i ] [ j ] es igual a 0. delta_poc_msb_cycle_lt[ i ][ j ] se utiliza para determinar el valor de los bits más significativos del valor de recuento de orden de imágenes de la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1 ). Cuando delta_poc_msb_cycle_lt[ i ][ j ] no está presente, se deduce que es igual a 0.
[0457]
[0458]
[0461] Un delta_poc_msb_present_flag[ i ][ j ] igual a 1 especifica que delta_poc_msb_cycle_lt[ i ][ j ] está presente. delta_poc_msb_present_flag[ i ][ j ] igual a 0 especifica que delta_poc_msb_cycle_lt[ i ][ j ] no está presente. Cuando NumLtrpEntries[ i ] sea mayor de 0 y haya más de una imagen de referencia en el DPB en el momento en que se decodifica este encabezado de segmento o fragmento para las que el módulo MaxPicOrderCntLsb de PicOrderCntVal sea igual a poc_lsb_lt[ i ][ rplsIdx ][ j ], delta_pocmsb_present_flag[ i ][ j ] será igual a 1. Cuando no está presente, se deduce que el valor de delta_poc_msb_cycle_lt[ i ][ j ] es igual a 0. delta_poc_msb_cycle_lt[ i ][ j ] se utiliza para determinar el valor de los bits más significativos del valor de recuento de orden de imágenes de la j-ésima entrada en la estructura de sintaxis ref_pic_list struct( i, rplsIdx, 1). Cuando delta_pocmsb_cycle_lt[ i ][ j ] no está presente, se deduce que es igual a 0. poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] especifica el valor del módulo de recuento de orden de imágenes MaxPicOrderCntLsb de la imagen a la que hace referencia la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, rplsIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] es Log2( MaxPicOrderCntLsb ) bits.
[0463] Cambios en el proceso de decodificación para el recuento de orden de imágenes:
[0465] Para el diseño 1 de encabezado de segmento o fragmento, las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
[0466]
[0469] Como alternativa, para el diseño 1 de encabezado de segmento o fragmento, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] puede expresarse como delta de delta, de manera que la construcción de listas de imágenes de referencia se puede actualizar de la siguiente manera: las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
[0472]
[0473]
[0476] Para el diseño 2 de encabezado de segmento o fragmento, las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
[0479]
[0482] Como alternativa, para el diseño 2 de encabezado de segmento o fragmento, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] puede expresarse como delta de delta, de manera que la construcción de listas de imágenes de referencia se puede actualizar de la siguiente manera: las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
[0485]
[0486]
[0489] Es un requisito de conformidad de flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ][ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento o fragmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o fragmento o de un segmento o fragmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1, y setOfRefPics será el mismo para todos los segmentos o fragmentos de una imagen.
[0491] Cada STRP se identifica por su valor PicOrderCntVal. Para cada LTRP, si hace referencia a la misma una entrada en RefPicList[ 0 ] o RefPicList[ 1 ] con delta_poc_msb_present_flag[ i ][ j ] igual a 1, se identifica por su valor PicOrderCntVal, de lo contrario, se identifica por sus Log2( MaxPicOrderCntLsb ) LSB de su valor PicOrderCntVal.
[0493] Alternativa 2 de señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo.
[0495] En una realización alternativa de la invención, la invención descrita en la primera realización o la segunda realización se puede combinar con las realizaciones descritas anteriormente y denominadas "Señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo" y "Alternativa 1 de señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo", respectivamente. Los aspectos de las divulgaciones que se han de combinar son la señalización de additional_lt_poc_lsb (es decir, de la primera realización o la segunda realización) e información del ciclo de MSB de POC (es decir, de la realización descrita anteriormente y denominada "Señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo" o "Alternativa 1 de señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo"). Un ejemplo de cómo se puede hacer la combinación, que combina la primera realización y la realización descrita anteriormente y denominada "Alternativa 1 de señalización de MSB de delta POC para las entradas de imágenes de referencia a largo plazo", se describe de la siguiente manera:
[0496]
[0499] Un delta_poc_msb_present_flag[ i ][ j ] igual a 1 especifica que delta_poc_msb_cycle_lt[ i ][ j ] está presente. delta_poc_msb_present_flag[ i ][ j ] igual a 0 especifica que delta_poc_msb_cycle_lt[ i ][ j ] no está presente. Cuando NumLtrpEntries[ i ] sea mayor de 0 y para la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1) haya más de una imagen de referencia en el DPB en el momento en que se decodifica este encabezado de segmento o fragmento para las que el módulo MaxPicOrderLtCntLsb de PicOrderCntVal sea igual a poc_lsb_lt[ i ][ rplsIdx ][ jj ], donde jj es el índice de entrada de la entrada en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1 ) que es la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1 ), delta_pocmsb_present_flag[ i ][ j ] será igual a 1. Cuando no está presente, se deduce que el valor de delta_poc_msb_cycle_lt[ i ] [ j ] es igual a 0. delta_poc_msb_cycle_lt[ i ][ j ] se utiliza para determinar el valor de los bits más significativos del valor de recuento de orden de imágenes de la j-ésima entrada LTRP en la estructura de sintaxis ref_pic_list_struct( i, rplsIdx, 1 ). Cuando delta_poc_msb_cycle_lt[ i ][ j ] no está presente, se deduce que es igual a 0.
[0501] Cambios en el proceso de decodificación para el recuento de orden de imágenes:
[0502] Las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
[0505]
[0508] Como alternativa, la semántica de delta_poc_msb_cycle_lt[ listIdx ][ i ] se expresa como delta de delta, de manera que la construcción de listas de imágenes de referencia se puede actualizar de la siguiente manera: las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia se construyen de la siguiente manera:
[0509]
[0512] Es un requisito de conformidad de flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ][ RplsIdx[ i ] ] no será menor que NumRefIdxActive[ i ]. La imagen a la que haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento o fragmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o fragmento o de un segmento o fragmento diferente de la misma imagen no se referirán a la misma imagen. No se hará referencia a la propia imagen actual por ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que se refiere la entrada sea mayor o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1, y setOfRefPics será el mismo para todos los segmentos o fragmentos de una imagen.
[0514] Cada STRP se identifica por su valor PicOrderCntVal. Para cada LTRP, si hace referencia a la misma una entrada en RefPicList[ 0 ] o RefPicList[ 1 ] con delta_poc_msb_present_flag[ i ][ j ] igual a 1, se identifica por su valor PicOrderCntVal, de lo contrario, se identifica por sus Log2( MaxLtPicOrderCntLsb ) LSB de su valor PicOrderCntVal.
[0516] Señalización siempre de listas de imágenes de referencia en encabezados de segmentos o fragmentos con diferenciación entre imágenes de referencia a corto y largo plazo.
[0518] Esta sección describe otra realización alternativa de la invención. La descripción es relativa al último WD de VVC (es decir, solo se describe el delta relativo al último WD de VVC en JVET-K1001-v1, mientras que los textos en el último WD de VVC que no se mencionan posteriormente se aplican como son). Esta realización alternativa se resume de la siguiente manera: las estructuras de lista de imágenes de referencia se señalizan solo en encabezados de segmentos o fragmentos. Tanto las imágenes de referencia a corto plazo como las imágenes de referencia a largo plazo se identifican mediante sus LSB de POC, que están representados por números de bits que son diferentes del número de bits utilizado para representar los LSB de POC señalizados en encabezados de segmentos o fragmentos para la obtención de valores de POC. Además, los números de bits utilizados para representar los LSB de POC para identificar imágenes de referencia a corto plazo e imágenes de referencia a largo plazo son diferentes.
[0519] Sintaxis de encabezado de unidad NAL.
[0522]
[0524] Sintaxis RBSP del conjunto de parámetros de secuencia.
[0527]
[0529] Sintaxis RBSP del conjunto de parámetros de imagen.
[0532]
[0534] Sintaxis de encabezado de segmento o fragmento.
[0535]
[0537] Sintaxis de la estructura de lista de imágenes de referencia.
[0540]
[0542] Semántica de encabezado de unidad NAL.
[0543] Un forbidden_zero_bit será igual a 0. nal_unit_type especifica el tipo de estructura de datos de RBSP contenida en la unidad NAL.
[0544] Tabla 7-1 - Códigos de tipo de unidad NAL y clases de tipo de unidad NAL
[0547]
[0548]
[0551] Un nuh_temporal_id_plus1 minus 1 especifica un identificador temporal para la unidad NAL. El valor de nuh_temporal_id_plus1 no será igual a 0. La variable TemporalId se especifica como sigue: TemporalId = nuh_temporal_id_plus1 - 1.
[0553] Cuando nal_unit_type es igual a IRAP_NUT, el segmento o fragmento codificado pertenece a una imagen IRAP y TemporalId será igual a 0. El valor de TemporalId será el mismo para todas las unidades NAL de VCL de una unidad de acceso. El valor de TemporalId de una imagen codificada o de una unidad de acceso es el valor de TemporalId de las unidades NAL de VCL de la imagen codificada o de la unidad de acceso. El valor de TemporalId para las unidades NAL no-VCL se limita de la siguiente manera: si nal_unit_type es igual a SPS_NUT, TemporalId será igual a 0 y TemporalId de la unidad de acceso que contiene la unidad NAL será igual a 0. De lo contrario, si nal_unit_type es igual a EOS_NUT o EOB_NUT, TemporalId será igual a 0. De lo contrario, TemporalId será mayor o igual que TemporalId de la unidad de acceso que contiene la unidad NAL. Cuando la unidad NAL es una unidad NAL no-VCL, el valor de TemporalId es igual al valor mínimo de los valores de TemporalId de todas las unidades de acceso a las que se aplica la unidad NAL no-VCL. Cuando nal_unit_type es igual a PPS_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso continente, ya que todos los conjuntos de parámetros de imagen (PPS) se incluyen en el comienzo de un flujo de bits, en donde la primera imagen codificada tiene TemporalId igual a 0. Cuando nal_unit_type es igual a PREFIX_SEI_NUT o SUFFIX_SEI_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso continente, ya que una unidad NAL de información de mejora suplementaria (SEI, por sus siglas en inglés) contiene información que se aplica a un subconjunto de flujo de bits que incluye unidades de acceso para las que los valores de TemporalId son mayores que TemporalId de la unidad de acceso que contiene la unidad NAL de SEI. nuh_reserved_zero_7bits será igual a '0000000'. Otros valores de nuh_reserved_zero_7bits serán especificados en el futuro por la ITU-T | ISO/IEC. Los decodificadores deberán ignorar (es decir, eliminar del flujo de bits y descartar) las unidades NAL con valores de nuh_reserved_zero_7bits no iguales a '0000000'.
[0554] Semántica RBSP del conjunto de parámetros de secuencia.
[0556] Un log2_max_pic_order_cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se utiliza en el proceso de decodificación para el recuento de orden de imágenes de la siguiente manera:
[0559]
[0562] El valor de log2_max_pic_order_cnt_lsb_minus4 estará en el intervalo de 0 a 12, inclusive. sps _max _dec_pic_buffering_minus1 plus 1 especifica el tamaño máximo requerido del búfer de imágenes decodificadas para la CVS en unidades de búferes de almacenamiento de imágenes. El valor de sps_max_dec_pic_buffering_minus1 estará en el intervalo de 0 a MaxDpbSize - 1, inclusive, donde MaxDpbSize es como se especifica en otro lugar. additional_st_poc_lsb especifica el valor de la variable MaxStPicOrderCntLsb que se utiliza en el proceso de decodificación para las listas de imágenes de referencia de la siguiente manera:
[0565]
[0568] El valor de additional_st_poc_1sb estará en el intervalo de 0 a 32 - log2_max_pic_order_cnt_lsb_minus4 - 4, inclusive. long_term_ref_pics_flag igual a 0 especifica que no se utiliza LTRP para la interpredicción de ninguna imagen codificada en la CVS. long_term_ref_pics_flag igual a 1 especifica que se utilizan LTRP para la interpredicción de una o más imágenes codificadas en la CVS. additional_lt_poc_lsb especifica el valor de la variable MaxLtPicOrderCntLsb que se utiliza en el proceso de decodificación para las listas de imágenes de referencia de la siguiente manera:
[0570]
[0572] El valor de additional_lt_poc_lsb deberá estar en el intervalo de 0 a 32 - log2_max_pic_order_cnt_lsb_minus4 - 4 - additional_st_poc_lsb, inclusive. Cuando no está presente, se deduce que el valor de additional_lt_poc_lsb es igual a 0.
[0573] Semántica RBSP del conjunto de parámetros de imagen.
[0574] Un num_ref_idx_default_active_minus1[ i ] plus 1, cuando i es igual a 0, especifica el valor deducido de la variable NumRefIdxActive[ 0 ] para los segmentos o fragmentos P o B con num_ref_idx_active_override_flag igual a 0 y, cuando i es igual a 1, especifica el valor deducido de NumRefIdxActive[ 1 ] para los segmentos o fragmentos B con num_ref_idx_active_override_flag igual a 0. El valor de num_ref_idx_default_active_minus1[ i ] estará en el intervalo de 0 a 14, inclusive.
[0575] Semántica de encabezado de segmento o fragmento.
[0576] Cuando estén presentes, el valor de cada uno de los elementos de sintaxis de encabezado de segmento o fragmento slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todos los encabezados de segmentos o fragmentos de una imagen codificada. slice_type especifica el tipo de codificación del segmento o fragmento de acuerdo con la Tabla 7-3.
[0577] Tabla 7-3 - Asociación de nombres a slice_type
[0580]
[0582] Cuando nal_unit_type sea igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type será igual a 2.
[0583] Un slice_pic_order_cnt_lsb especifica el módulo de recuento de orden de imágenes MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice_pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de slice_pic_order_cnt_lsb estará en el intervalo de 0 a MaxPicOrderCntLsb - 1, ambos inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se deduce que slice_pic_order_cnt_lsb es igual a 0. num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num _ref_idx_active_minus1[ 0 ] está presente para los segmentos o fragmentos P y B y que el elemento de sintaxis num_ref_idx_active_minus1[ 1] está presente para los segmentos o fragmentos 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:
[0585]
[0587] El valor de num_ref_idx_active_minus1[ i ] estará en el intervalo de 0 a 14, inclusive. El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista i de imágenes de referencia que se utiliza para decodificar el segmento o fragmento. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se utiliza ningún índice de referencia para la lista i de imágenes de referencia para decodificar el segmento o fragmento. Para i igual a 0 o 1, cuando el segmento o fragmento actual es un segmento o fragmento B y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1[ i ] 1. Cuando el segmento o fragmento actual es un segmento o fragmento P y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ 0 ] es igual a num_ref_idx_default_active_minus1[ 0 ] 1. Cuando el segmento o fragmento actual es un segmento o fragmento P, se deduce que NumRefIdxActive[ 1 ] es igual a 0. Cuando el segmento o fragmento actual es un segmento o fragmento I, se deduce que tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] son iguales a 0. Como alternativa, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: sea rplsIdx1 establecido como igual a ref_pic_list_sps_flag[ i ] ? ref_pic_list_idx[ i ] : num_ref_pic_lists_in_sps[ i ], y sea numRpEntries[ i ] igual a num_strp_entries[ i ][ rplsIdx1 ] num_ltrp_entries[ i ][ rplsIdx1 ]. Cuando NumRefIdxActive[ i ] es mayor que numRpEntries[ i ], el valor de NumRefIdxActive[ i ] se establece igual a numRpEntries[ i ].
[0588] Semántica de estructura de lista de imágenes de referencia.
[0589] La estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ) está presente en un encabezado de segmento o fragmento. Cuando está presente en un encabezado de segmento o fragmento, la estructura de sintaxis ref_pic_list_struct( listldx, ltrpFlag ) especifica la lista listIdx de imágenes de referencia de la imagen actual (la imagen que contiene el segmento o fragmento). 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 deduce que el valor de num_ltrp_entries[ listIdx ] es igual a 0. La variable NumEntriesInList[ listIdx ] se obtiene de la siguiente manera:
[0591]
[0593] El valor de NumEntriesInList[ listIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, ambos inclusive. lt_ref_pic_flag[ listIdx ][ i ] igual a 1 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ) es una entrada LTRP. lt_ref_pic_flag[ listIdx ][i] igual a 0 especifica que la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ) es una entrada STRP. Cuando no está presente, se deduce que el valor de lt_ref_pic_flag[ listIdx ][ i ] es igual a 0. Es un requisito de conformidad de flujo de bits que la suma de lt_ref_pic_flag[ listIdx ][ i ] para todos los valores de i en el intervalo de 0 a NumEntriesInList[ listIdx ] - 1, inclusive, sea igual a num_ltrp_entries[ listIdx ]. poc_lsb_st[ listIdx ][ i ], cuando lt_ref_pic_flag[ listIdx ][ i ] es igual a 0, especifica el valor del módulo de recuento de orden de imágenes MaxStPicOrderCntLsb de la imagen a la que hace referencia la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_st[ listIdx ][ i ] es Log2( MaxStPicOrderCntLsb ) bits. poc_lsb_lt[ listIdx ][ i ], cuando lt_ref_pic_flag[ listIdx ][ i ] es igual a 1, especifica el valor del módulo de recuento de orden de imágenes MaxLtPicOrderCntLsb de la imagen a la que hace referencia la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx, ltrpFlag ). La longitud del elemento de sintaxis poc_lsb_lt[ listIdx ][ i ] es Log2( MaxLtPicOrderCntLsb ) bits.
[0594] Se expone el proceso de decodificación.
[0595] Proceso general de decodificación.
[0596] El proceso de decodificación funciona de la siguiente manera para la imagen actual CurrPic: la decodificación de las unidades NAL se especifica a continuación. Los procesos expuestos posteriormente especifican los siguientes procesos de decodificación utilizando elementos de sintaxis en la capa de encabezado de segmento o fragmento y superiores: se obtienen variables y funciones en relación con el recuento de orden de imágenes. Es necesario invocar esto solo para la primera segmento o fragmento de una imagen. Al comienzo del proceso de decodificación para cada segmento o fragmento de una imagen no-IRAP, se invoca el proceso de decodificación para la construcción de listas de imágenes de referencia para la obtención de la lista 0 de imágenes de referencia (RefPicList[ 0 ]) y la lista 1 de imágenes de referencia (RefPicList[ 1 ]). Se invoca el proceso de decodificación para el marcado de imágenes de referencia, en donde las imágenes de referencia se marcan como "no utilizadas para referencia" o "utilizadas para referencia a largo plazo". Es necesario invocar esto solo para la primera segmento o fragmento de una imagen. Se invocan los procesos de decodificación para codificar unidades de árbol, cambiar la escala, transformar, filtrar en bucle, etc. Después de que se hayan decodificado todos los segmentos o fragmentos de la imagen actual, la imagen decodificada actual se marca como "utilizada como referencia a corto plazo".
[0597] Proceso de decodificación de la unidad NAL.
[0598] Las entradas a este proceso son unidades NAL de la imagen actual y sus unidades NAL no VCL asociadas. Las salidas de este proceso son las estructuras de sintaxis de RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis RBSP de la unidad NAL y, a continuación, analiza la estructura de sintaxis RBSP.
[0599] Proceso de decodificación de segmentos o fragmentos.
[0600] Proceso de decodificación para el recuento de orden de imagen.
[0601] La salida de este proceso es PicOrderCntVal, el recuento de orden de imagen de la imagen actual. Los recuentos de orden de imágenes se utilizan para identificar imágenes, para obtener parámetros de movimiento en modo de fusión y la predicción de vectores de movimiento, y para la verificación de conformidad del decodificador. Cada imagen codificada está asociada con una variable de recuento de orden de imágenes, denominada PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se obtienen de la siguiente manera: sea prevTid0Pic la imagen anterior en orden de decodificación que tenga TemporalId igual a 0. La variable prevPicOrderCntLsb se establece como igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece como igual a PicOrderCntMsb de prevTid0Pic. La variable PicOrderCntMsb de la imagen actual se obtiene de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece como igual a 0. De lo contrario, PicOrderCntMsb se obtiene de la siguiente manera:
[0604]
[0607] PicOrderCntVal se obtiene de la siguiente manera:
[0610]
[0613] Todas las imágenes IRAP tendrán PicOrderCntVal igual a 0, ya que se deduce que slice_pic_order_cnt_lsb es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se establecen ambos como iguales a 0. El valor de PicOrderCntVal estará en el intervalo de -231 a 231 - 1, inclusive. En una CVS, los valores de PicOrderCntVal para dos imágenes codificadas cualesquiera no serán los mismos. En cualquier momento durante el proceso de decodificación, los valores de PicOrderCntVal & ( MaxStPicOrderCntLsb - 1 ) para dos imágenes de referencia a corto plazo cualesquiera en el DPB no serán los mismos. En cualquier momento durante el proceso de decodificación, los valores de PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 ) para dos imágenes de referencia cualesquiera en el DPB no serán los mismos.
[0615] La función PicOrderCnt( picX ) se especifica de la siguiente manera:
[0618]
[0621] La función DiffPicOrderCnt( picA, picB ) se especifica de la siguiente manera:
[0624]
[0627] El flujo de bits no contendrá datos que den como resultado valores de DiffPicOrderCnt( picA, picB ) utilizados en el proceso de decodificación que no estén en el intervalo de -2<15>a 2<15>- 1, inclusive. Sea X la imagen actual y sean Y y Z otras dos imágenes en la misma CVS, Y y Z se considera que están en la misma dirección de orden de salida de X cuando DiffPicOrderCnt( X, Y ) y DiffPicOrderCnt( X, Z ) son ambos positivos o ambos negativos.
[0629] Proceso de decodificación para construcción de listas de imágenes de referencia.
[0631] Este proceso se invoca al principio del proceso de decodificación para cada segmento o fragmento de una imagen no IRAP. Las imágenes de referencia se direccionan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar un segmento o fragmento I, no se utiliza ninguna lista de imágenes de referencia en la decodificación de los datos del segmento o fragmento. Cuando se decodifica un segmento o fragmento P, solo se utiliza la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos del segmento o fragmento. Al decodificar un segmento o fragmento B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se utilizan en la decodificación de los datos del segmento o fragmento. Al comienzo del proceso de decodificación para cada segmento o fragmento de una imagen no-IRAP, se obtienen las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos del segmento o fragmento. Para un segmento o fragmento I de una imagen no-IRAP que no sea la primera segmento o fragmento de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se obtienen con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Para un segmento o fragmento P que no sea la primera segmento o fragmento de una imagen, RefPicList[ 1 ] se obtiene con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación.
[0632] Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
[0633]
[0636] Para cada i igual a 0 o 1, se aplica lo siguiente:
[0638] las primeras entradas NumRefIdxActive[ i ] en RefPicList[ i ] se denominan entradas activas en RefPicList[ i ], y las demás entradas en RefPicList[ i ] se denominan entradas inactivas en RefPicList[ i ]. Cada entrada en RefPicList[ i ][ j ] para j en el intervalo de 0 a NumEntriesInList[ i ] - 1, ambos inclusive, se denomina entrada STRP si lt_ref_pic_flag[ i ][ j ] es igual a 0, y entrada LTRP de lo contrario. Es posible que a una imagen en particular hagan referencia tanto una entrada en RefPicList[ 0 ] como una entrada en RefPicList[ 1 ]. También es posible que se haga referencia a una imagen particular por más de una entrada en RefPicList[ 0 ] o por más de una entrada en RefPicList[ 1 ]. Las entradas activas en RefPicList[ 0 ] y las entradas activas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que se utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en orden de decodificación. Las entradas inactivas en RefPicList[ 0 ] y las entradas inactivas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que no se utilizarán para la interpredicción de la imagen actual pero se pueden utilizar en la interpredicción para una o más imágenes que siguen a la imagen actual en el orden de decodificación. Hay una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que son iguales a "ninguna imagen de referencia" porque las imágenes correspondientes no están presentes en el DPB. Cada entrada inactiva en RefPicList[ 0 ] o RefPicList[ 0 ] que sea igual a "ninguna imagen de referencia" debe ignorarse. Se debe inferir una pérdida de imagen no intencional para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que es igual a "ninguna imagen de referencia".
[0640] Es un requisito de conformidad de flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 ó 1, NumEntriesInList[ i ] no será menor que NumRefIdxActive[ i ]. La imagen a la que haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1]. Una entrada STRP en RefPicList[ 0 ] o RefPicList[ 1 ] de un segmento o fragmento de una imagen y una entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] del mismo segmento o fragmento o de un segmento o fragmento diferente de la misma imagen no se referirán a la misma imagen. A la imagen actual en sí misma no hará referencia ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada LTRP en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas de RefPicList[ 0 ] y todas las entradas de RefPicList[ 1]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1, y setOfRefPics será el mismo para todos los segmentos o fragmentos de una imagen.
[0642] Proceso de decodificación para el marcado de imágenes de referencia.
[0644] Este proceso se invoca una vez por imagen, después de decodificar un encabezado de segmento o fragmento y el proceso de decodificación para la construcción de listas de imágenes de referencia para el segmento o fragmento, pero antes de la decodificación de los datos del segmento o fragmento. Este proceso puede dar como resultado que una o más imágenes de referencia en el DPB se marquen como "no utilizadas como referencia" o "utilizadas como referencia a largo plazo". Una imagen decodificada en el DPB puede marcarse como "no utilizada para referencia", "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo", pero solo una de estas tres en cualquier momento dado durante la operación del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando corresponda. Cuando se hace referencia a una imagen como marcada como "utilizada para referencia", esto se refiere colectivamente a que la imagen está marcada como "utilizada para referencia a corto plazo" o "utilizada para referencia a largo plazo" (pero no ambas). Cuando la imagen actual es una imagen IRAP, todas las imágenes de referencia actualmente presentes en el DPB (si las hay) se marcan como "no utilizadas para referencia". Las STRP se identifican mediante los Log2( MaxStPicOrderCntLsb ) LSB de sus valores PicOrderCntVal. Las LTRP se identifican mediante los Log2( MaxLtPicOrderCntLsb ) LSB de sus valores PicOrderCntVal.
[0645] 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 como referencia a largo plazo". Cada imagen de referencia en el DPB a la que no se hace referencia en ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no usada como referencia".
[0646] Señalización siempre de listas de imágenes de referencia en encabezados de segmentos o fragmentos sin diferenciación entre imágenes de referencia a corto y largo plazo.
[0647] Esta sección describe otra realización alternativa de la invención. La descripción es relativa al último WD de VVC (es decir, solo se describe el delta relativo al último WD de VVC en JVET-K1001-v1, mientras que los textos en el último WD de VVC que no se mencionan posteriormente se aplican como son). Esta realización alternativa se resume de la siguiente manera: las estructuras de lista de imágenes de referencia se señalizan solo en encabezados de segmentos o fragmentos. No se hace distinción entre imágenes de referencia a corto y largo plazo. Todas las imágenes de referencia se denominan simplemente imágenes de referencia. Las imágenes de referencia se identifican por sus LSB de POC, que se representarán por un número de bits que es diferente del número de bits utilizados para representar los LSB de POC señalizados en encabezados de segmentos o fragmentos para obtención de valores de POC.
[0648] Abreviaturas. Se aplica el texto de la cláusula 4 del WD de VVC.
[0649] Sintaxis de encabezado de unidad NAL.
[0652]
[0654] Sintaxis RBSP del conjunto de parámetros de secuencia.
[0657]
[0658]
[0660] Sintaxis RBSP del conjunto de parámetros de imagen.
[0663]
[0665] Sintaxis de encabezado de segmento o fragmento.
[0668]
[0670] Sintaxis de la estructura de lista de imágenes de referencia.
[0673]
[0675] Semántica de encabezado de unidad NAL.
[0676] Un forbidden_zero_bit será igual a 0. nal_unit_type especifica el tipo de estructura de datos de RBSP contenida en la unidad NAL.
[0677] Tabla 7-1 - Códigos de tipo de unidad NAL y clases de tipo de unidad NAL
[0680]
[0682] Un nuh_temporal_id_plus1 minus 1 especifica un identificador temporal para la unidad NAL. El valor de nuh_temporal_id_plus1 no será igual a 0. La variable TemporalId se especifica de la siguiente manera:
[0684]
[0686] Cuando nal_unit_type es igual a IRAP_NUT, el segmento o fragmento codificado pertenece a una imagen IRAP, TemporalId será igual a 0. El valor de TemporalId será el mismo para todas las unidades NAL de VCL de una unidad de acceso. El valor de TemporalId de una imagen codificada o de una unidad de acceso es el valor de TemporalId de las unidades NAL de VCL de la imagen codificada o de la unidad de acceso. El valor de TemporalId para las unidades NAL no-VCL se limita de la siguiente manera:
[0687] Si nal_unit_type es igual a SPS_NUT, TemporalId será igual a 0 y TemporalId de la unidad de acceso que contiene la unidad NAL será igual a 0. De lo contrario, si nal_unit_type es igual a EOS_NUT o EOB_NUT, TemporalId será igual a 0. De lo contrario, TemporalId será mayor o igual que TemporalId de la unidad de acceso que contiene la unidad NAL. Cuando la unidad NAL es una unidad NAL no-VCL, el valor de TemporalId es igual al valor mínimo de los valores de TemporalId de todas las unidades de acceso a las que se aplica la unidad NAL no-VCL. Cuando nal_unit_type es igual a PPS_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso continente, ya que todos los conjuntos de parámetros de imagen (PPS) se incluyen en el comienzo de un flujo de bits, en donde la primera imagen codificada tiene TemporalId igual a 0. Cuando nal_unit_type es igual a PREFIX_SEI_NUT o SUFFIX_SEI_NUT, TemporalId es mayor o igual que TemporalId de la unidad de acceso continente, ya que una unidad NAL de SEI contiene información que se aplica a un subconjunto de flujo de bits que incluye unidades de acceso para las que los valores de TemporalId son mayores que TemporalId de la unidad de acceso que contiene la unidad NAL de SEI. nuh_reserved_zero_7bits será igual a '0000000'. Otros valores de nuh_reserved_zero_7bits serán especificados en el futuro por la ITU-T | ISO/IEC. Los decodificadores deberán ignorar (es decir, eliminar del flujo de bits y descartar) las unidades NAL con valores de nuh_reserved_zero_7bits no iguales a '0000000'.
[0688] Semántica RBSP del conjunto de parámetros de secuencia.
[0689] log2_max_pic_order_cnt_lsb_minus4 especifica el valor de la variable MaxPicOrderCntLsb que se utiliza en el proceso de decodificación para el recuento de orden de imágenes de la siguiente manera:
[0691]
[0693] El valor de log2_max_pic_order_cnt_lsb_minus4 estará en el intervalo de 0 a 12, inclusive. sps _max _dec_pic_buffering_minus1 plus 1 especifica el tamaño máximo requerido del búfer de imágenes decodificadas para la CVS en unidades de búferes de almacenamiento de imágenes. El valor de sps_max_dec_pic_buffering_minus1 estará en el intervalo de 0 a MaxDpbSize - 1, inclusive, donde MaxDpbSize es como se especifica en otro lugar. additional_ref_poc_lsb especifica el valor de la variable MaxRefPicOrderCntLsb que se utiliza en el proceso de decodificación para las listas de imágenes de referencia de la siguiente manera:
[0696]
[0699] El valor de additional_ref_poc_lsb estará en el intervalo de 0 y 32 - log2_max_pic_order_cnt_lsb_minus4 - 4, ambos inclusive.
[0701] Semántica RBSP del conjunto de parámetros de imagen.
[0703] Un num_ref_idx_default_active_minus1[ i ] plus 1, cuando i es igual a 0, especifica el valor deducido de la variable NumRefIdxActive[ 0 ] para los segmentos o fragmentos P o B con num_ref_idx_active_override_flag igual a 0 y, cuando i es igual a 1, especifica el valor deducido de NumRefIdxActive[ 1 ] para los segmentos o fragmentos B con num_ref_idx_active_override_flag igual a 0. El valor de num_ref_idx_default_active_minus1[ i ] estará en el intervalo de 0 a 14, inclusive.
[0705] Semántica de encabezado de segmento o fragmento.
[0707] Cuando estén presentes, el valor de cada uno de los elementos de sintaxis de encabezado de segmento o fragmento slice_pic_parameter_set_id y slice_pic_order_cnt_lsb será el mismo en todos los encabezados de segmentos o fragmentos de una imagen codificada.... slice_type especifica el tipo de codificación del segmento o fragmento de acuerdo con la Tabla 7-3.
[0709] Tabla 7-3 - Asociación de nombres a slice_type
[0712]
[0715] Cuando nal_unit_type es igual a IRAP_NUT, es decir, la imagen es una imagen IRAP, slice_type será igual a 2.... slice_pic_order_cnt_lsb especifica el módulo de recuento de orden de imágenes MaxPicOrderCntLsb para la imagen actual. La longitud del elemento de sintaxis slice_pic_order_cnt_lsb es log2_max_pic_order_cnt_lsb_minus4 4 bits. El valor de slice_pic_order_cnt_lsb estará en el intervalo de 0 a MaxPicOrderCntLsb - 1, ambos inclusive. Cuando slice_pic_order_cnt_lsb no está presente, se deduce que slice_pic_order_cnt_lsb es igual a 0. num_ref_idx_active_override_flag igual a 1 especifica que el elemento de sintaxis num _ref_idx_active_minus1[ 0 ] está presente para los segmentos o fragmentos P y B y que el elemento de sintaxis num_ref_idx_active_minus1[ 1] está presente para los segmentos o fragmentos 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:
[0718]
[0721] El valor de num_ref_idx_active_minus1[ i ] estará en el intervalo de 0 a 14, inclusive. El valor de NumRefIdxActive[ i ] - 1 especifica el índice de referencia máximo para la lista i de imágenes de referencia que se utiliza para decodificar el segmento o fragmento. Cuando el valor de NumRefIdxActive[ i ] es igual a 0, no se utiliza ningún índice de referencia para la lista i de imágenes de referencia para decodificar el segmento o fragmento. Para i igual a 0 o 1, cuando el segmento o fragmento actual es un segmento o fragmento B y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ i ] es igual a num_ref_idx_default_active_minus1[ i ] 1. Cuando el segmento o fragmento actual es un segmento o fragmento P y num_ref_idx_active_override_flag es igual a 0, se deduce que NumRefIdxActive[ 0 ] es igual a num_ref_idx_default_active_minus1[ 0 ] 1. Cuando el segmento o fragmento actual es un segmento o fragmento P, se deduce que NumRefIdxActive[ 1 ] es igual a 0. Cuando el segmento o fragmento actual es un segmento o fragmento I, se deduce que tanto NumRefIdxActive[ 0 ] como NumRefIdxActive[ 1 ] son iguales a 0. Como alternativa, para i igual a 0 o 1, se aplica lo siguiente después de lo anterior: sea rplsIdx1 establecido como igual a ref_pic_list_sps_flag[ i ] ? ref_pic_list_idx[ i ] : num_ref_pic_lists_in_sps[ i ], y sea numRpEntries[ i ] igual a num_strp_entries[ i ][ rplsIdx1 ] num_ltrp_entries[ i ][ rplsIdx1 ]. Cuando NumRefIdxActive[ i ] es mayor que numRpEntries[ i ], el valor de NumRefIdxActive[ i ] se establece igual a numRpEntries[ i ].
[0722] Semántica de estructura de lista de imágenes de referencia.
[0723] La estructura de sintaxis ref_pic_list_struct( listIdx ) está presente en un encabezado de segmento o fragmento. Cuando está presente en un encabezado de segmento o fragmento, la estructura de sintaxis ref_pic_list_struct( listIdx ) especifica la lista listIdx de imágenes de referencia de la imagen actual (la imagen que contiene el segmento o fragmento). num_ref_entries[ listIdx ] especifica el número de entradas en la estructura de sintaxis ref_pic_list_struct( listIdx ). La variable NumEntriesInList[ listIdx ] se obtiene de la siguiente manera:
[0725]
[0727] El valor de NumRefPicEntries[ listIdx ] estará en el intervalo de 0 a sps_max_dec_pic_buffering_minus1, ambos inclusive. poc_ref_lsb[ listIdx ][ i ] especifica el valor del módulo de recuento de orden de imagen MaxRefPicOrderCntLsb de la imagen a la que se refiere la i-ésima entrada en la estructura de sintaxis ref_pic_list_struct( listIdx ). La longitud del elemento de sintaxis poc_ref_lsb[ listIdx ][ i ] es Log2( MaxRefPicOrderCntLsb ) bits.
[0728] Se analiza el proceso de decodificación.
[0729] Proceso general de decodificación.
[0730] El proceso de decodificación funciona de la siguiente manera para la imagen actual CurrPic: la decodificación de las unidades NAL se especifica a continuación. Los procesos expuestos posteriormente especifican los siguientes procesos de decodificación utilizando elementos de sintaxis en la capa de encabezado de segmento o fragmento y superiores: se obtienen variables y funciones en relación con el recuento de orden de imágenes. Es necesario invocar esto solo para la primera segmento o fragmento de una imagen. Al comienzo del proceso de decodificación para cada segmento o fragmento de una imagen no-IRAP, se invoca el proceso de decodificación para la construcción de listas de imágenes de referencia para la obtención de la lista 0 de imágenes de referencia (RefPicList[ 0 ]) y la lista 1 de imágenes de referencia (RefPicList[ 1 ]). Se invoca el proceso de decodificación para el marcado de imágenes de referencia, en donde las imágenes de referencia se marcan como "no utilizadas para referencia". Es necesario invocar esto solo para la primera segmento o fragmento de una imagen. Se invocan los procesos de decodificación para codificar unidades de árbol, cambiar la escala, transformar, filtrar en bucle, etc. Después de que se hayan decodificado todos los segmentos o fragmentos de la imagen actual, la imagen decodificada actual se marca como "utilizada como referencia". Proceso de decodificación de la unidad NAL.
[0731] Las entradas a este proceso son unidades NAL de la imagen actual y sus unidades NAL no VCL asociadas. Las salidas de este proceso son las estructuras de sintaxis de RBSP analizadas encapsuladas dentro de las unidades NAL. El proceso de decodificación para cada unidad NAL extrae la estructura de sintaxis RBSP de la unidad NAL y, a continuación, analiza la estructura de sintaxis RBSP.
[0732] Proceso de decodificación de segmentos o fragmentos.
[0733] Proceso de decodificación para el recuento de orden de imagen.
[0734] La salida de este proceso es PicOrderCntVal, el recuento de orden de imagen de la imagen actual. Los recuentos de orden de imágenes se utilizan para identificar imágenes, para obtener parámetros de movimiento en modo de fusión y la predicción de vectores de movimiento, y para la verificación de conformidad del decodificador. Cada imagen codificada está asociada con una variable de recuento de orden de imágenes, denominada PicOrderCntVal. Cuando la imagen actual no es una imagen IRAP, las variables prevPicOrderCntLsb y prevPicOrderCntMsb se obtienen de la siguiente manera: sea prevTid0Pic la imagen anterior en orden de decodificación que tenga TemporalId igual a 0. La variable prevPicOrderCntLsb se establece como igual a slice_pic_order_cnt_lsb de prevTid0Pic. La variable prevPicOrderCntMsb se establece como igual a PicOrderCntMsb de prevTid0Pic. La variable PicOrderCntMsb de la imagen actual se obtiene de la siguiente manera: si la imagen actual es una imagen IRAP, PicOrderCntMsb se establece como igual a 0. De lo contrario, PicOrderCntMsb se obtiene de la siguiente manera:
[0737]
[0738] PicOrderCntVal se obtiene de la siguiente manera:
[0741]
[0744] Todas las imágenes IRAP tendrán PicOrderCntVal igual a 0, ya que se deduce que slice_pic_order_cnt_lsb es 0 para las imágenes IRAP y prevPicOrderCntLsb y prevPicOrderCntMsb se establecen ambos como iguales a 0. El valor de PicOrderCntVal estará en el intervalo de -231 a 231 - 1, inclusive. En una CVS, los valores de PicOrderCntVal para dos imágenes codificadas cualesquiera no serán los mismos. En cualquier momento durante el proceso de decodificación, los valores de PicOrderCntVal & ( MaxRefPicOrderCntLsb - 1 ) para dos imágenes de referencia cualesquiera en el DPB no serán los mismos.
[0746] La función PicOrderCnt( picX ) se especifica de la siguiente manera:
[0749]
[0752] La función DiffPicOrderCnt( picA, picB ) se especifica de la siguiente manera:
[0755]
[0758] El flujo de bits no contendrá datos que den como resultado valores de DiffPicOrderCnt( picA, picB ) utilizados en el proceso de decodificación que no estén en el intervalo de -215 a 215 - 1, ambos inclusive. Sea X la imagen actual y sean Y y Z otras dos imágenes en la misma CVS, Y y Z se considera que están en la misma dirección de orden de salida de X cuando DiffPicOrderCnt( X, Y ) y DiffPicOrderCnt( X, Z ) son ambos positivos o ambos negativos.
[0760] Proceso de decodificación para construcción de listas de imágenes de referencia.
[0762] Este proceso se invoca al principio del proceso de decodificación para cada segmento o fragmento de una imagen no IRAP. Las imágenes de referencia se direccionan a través de índices de referencia. Un índice de referencia es un índice en una lista de imágenes de referencia. Al decodificar un segmento o fragmento I, no se utiliza ninguna lista de imágenes de referencia en la decodificación de los datos del segmento o fragmento. Cuando se decodifica un segmento o fragmento P, solo se utiliza la lista 0 de imágenes de referencia (es decir, RefPicList[ 0 ]) en la decodificación de los datos del segmento o fragmento. Al decodificar un segmento o fragmento B, tanto la lista 0 de imágenes de referencia como la lista 1 de imágenes de referencia (es decir, RefPicList[ 1 ]) se utilizan en la decodificación de los datos del segmento o fragmento. Al comienzo del proceso de decodificación para cada segmento o fragmento de una imagen no-IRAP, se obtienen las listas RefPicList[ 0 ] y RefPicList[ 1 ] de imágenes de referencia. Las listas de imágenes de referencia se utilizan en el marcado de imágenes de referencia o en la decodificación de los datos del segmento o fragmento. Para un segmento o fragmento I de una imagen no-IRAP que no sea el primer segmento o fragmento de la imagen, RefPicList[ 0 ] y RefPicList[ 1 ] se obtienen con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Para un segmento o fragmento P que no sea el primer segmento o fragmento de una imagen, RefPicList[ 1 ] se obtiene con el propósito de verificar la conformidad del flujo de bits, pero su obtención no es necesaria para decodificar la o las imágenes actuales que siguen a la imagen actual en orden de decodificación. Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
[0765]
[0768] Para cada i igual a 0 o 1, las primeras entradas NumRefIdxActive[ i ] en RefPicList[ i ] se denominan entradas activas en RefPicList[ i ], y las otras entradas en RefPicList[ i ] se denominan entradas inactivas en RefPicList[ i ]. Es posible que a una imagen en particular hagan referencia tanto una entrada en RefPicList[ 0 ] como una entrada en RefPicList[ 1 ]. También es posible que a una imagen en particular hagan referencia más de una entrada en RefPicList[ 0 ] o más de una entrada en RefPicList[ 1 ]. Las entradas activas en RefPicList[ 0 ] y las entradas activas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que se utilizan para la interpredicción de la imagen actual y una o más imágenes que siguen a la imagen actual en orden de decodificación. Las entradas inactivas en RefPicList[ 0 ] y las entradas inactivas en RefPicList[ 1 ] se refieren colectivamente a todas las imágenes de referencia que no se utilizarán para la interpredicción de la imagen actual pero se pueden utilizar en la interpredicción para una o más imágenes que siguen a la imagen actual en el orden de decodificación. Hay una o más entradas en RefPicList[ 0 ] o RefPicList[ 1 ] que son iguales a "ninguna imagen de referencia" porque las imágenes correspondientes no están presentes en el DPB. Cada entrada inactiva en RefPicList[ 0 ] o RefPicList[ 0 ] que sea igual a "ninguna imagen de referencia" debe ignorarse. Se debe inferir una pérdida de imagen no intencional para cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] que es igual a "ninguna imagen de referencia".
[0770] Es un requisito de conformidad del flujo de bits que se apliquen las siguientes restricciones: para cada i igual a 0 o 1, NumEntriesInList[ i ] no será menor que NumRefIdxActive[ i ]. La imagen a la que haga referencia cada entrada activa en RefPicList[ 0 ] o RefPicList[ 1 ] estará presente en el DPB y tendrá TemporalId menor o igual que el de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: el índice de entrada de cualquier entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se utilizará como índice de referencia para la decodificación de la imagen actual. Opcionalmente, se especifica además, la siguiente restricción: una entrada inactiva en RefPicList[ 0 ] o RefPicList[ 1 ] no se referirá a la misma imagen que cualquier otra entrada en RefPicList[ 0 ] o RefPicList[ 1]. A la imagen actual en sí misma no hará referencia ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ]. No habrá ninguna entrada en RefPicList[ 0 ] o RefPicList[ 1 ] para la que la diferencia entre PicOrderCntVal de la imagen actual y PicOrderCntVal de la imagen a la que hace referencia la entrada sea superior o igual a 224. Sea setOfRefPics el conjunto de imágenes únicas a las que hacen referencia todas las entradas en RefPicList[ 0 ] y todas las entradas en RefPicList[ 1 ]. El número de imágenes en setOfRefPics será menor o igual que sps_max_dec_pic_buffering_minus1 y setOfRefPics será el mismo para todos los segmentos o fragmentos de una imagen.
[0772] Proceso de decodificación para el marcado de imágenes de referencia.
[0774] Este proceso se invoca una vez por imagen, después de decodificar un encabezado de segmento o fragmento y el proceso de decodificación para la construcción de listas de imágenes de referencia para el segmento o fragmento, pero antes de la decodificación de los datos del segmento o fragmento. Este proceso puede dar como resultado que una o más imágenes de referencia en el DPB se marquen como "no utilizadas como referencia". Una imagen decodificada en el DPB puede marcarse como "no utilizada para referencia" o "utilizada para referencia", pero solo una de estas dos en cualquier momento dado durante la operación del proceso de decodificación. Asignar una de estas marcas a una imagen elimina implícitamente otra de estas marcas cuando corresponda. Cuando la imagen actual es una imagen IRAP, todas las imágenes de referencia actualmente presentes en el DPB (si las hay) se marcan como "no utilizadas para referencia". Las imágenes de referencia en el DPB se identifican mediante los Log2( MaxRefPicOrderCntLsb ) LSB de sus valores PicOrderCntVal. Cada imagen de referencia en el DPB a la que no se hace referencia en ninguna entrada de RefPicList[ 0 ] o RefPicList[ 1 ] está marcada como "no utilizada como referencia".
[0776] Otra realización alternativa más.
[0778] Esta sección describe una realización alternativa al enfoque especificado anteriormente que se denomina "señalización siempre de listas de imágenes de referencia en encabezados de segmentos o fragmentos con diferenciación entre imágenes de referencia a corto y largo plazo". En esta realización alternativa, en el encabezado de segmento o fragmento, se señaliza un ciclo de MSB de POC para cada entrada LTRP, de manera similar a como se hace en HEVC o en los enfoques descritos anteriormente, y se elimina la siguiente restricción: en cualquier momento durante el proceso de decodificación, los valores de PicOrderCntVal & (MaxLtPicOrderCntLsb - 1 ) para dos imágenes de referencia cualesquiera en el DPB no serán los mismos.
[0779] La FIGURA 7 es un diagrama esquemático de un dispositivo de codificación de vídeo 700 (por ejemplo, un codificador de vídeo 20 o un decodificador de vídeo 30) según una realización de la invención. El dispositivo de codificación de vídeo 700 es adecuado para implementar las realizaciones divulgadas como se describe en la presente memoria. El dispositivo de codificación de vídeo 700 comprende puertos de entrada 710 y unidades receptoras (Rx) 720 para recibir datos; un procesador, unidad lógica o unidad de procesamiento central (CPU) 730 para procesar los datos; unidades transmisoras (Tx) 740 y puertos de salida 750 para transmitir los datos; y una memoria 760 para almacenar los datos. El dispositivo de codificación de vídeo 700 también puede comprender componentes ópticos a eléctricos (OE) y componentes eléctricos a ópticos (EO) acoplados a los puertos de entrada 710, a las unidades de recepción 720 , a las unidades de transmisión 740 y a puertos de salida 750 para la salida o entrada de señales ópticas o eléctricas.
[0781] El procesador 730 está implementado por hardware y software. El procesador 730 se implementa como uno o más chips de CPU, núcleos (por ejemplo, como un procesador multinúcleo), agrupaciones de puertas programables en campo (FPGA, por sus siglas en inglés), circuitos integrados de aplicación específica (ASIC, por sus siglas en inglés) y procesadores de señales digitales (DSP, por sus siglas en inglés). El procesador 730 está en comunicación con los puertos de entrada 710, con las unidades receptoras 720, con las unidades transmisoras 740, con los puertos 750 de salida y con la memoria 760. El procesador 730 comprende un módulo de codificación 770. El módulo 770 de codificación implementa las realizaciones descritas anteriormente. Por ejemplo, el módulo de codificación 770 implementa, procesa, prepara o proporciona las diversas funciones de conexión en red. Por lo tanto, la inclusión del módulo de codificación 770 proporciona una mejora sustancial a la funcionalidad del dispositivo de codificación de vídeo 700 y efectúa una transformación del dispositivo de codificación de vídeo 700 a un estado diferente. Alternativamente, el módulo de codificación 770 se implementa como instrucciones almacenadas en la memoria 760 y ejecutadas por el procesador 730.
[0782] El dispositivo de codificado de vídeo 700 también puede incluir dispositivos de entrada y/o salida (E/S) 780 para comunicar datos hacia y desde un usuario. Los dispositivos de E/S 780 pueden incluir dispositivos de salida, tales como un dispositivo de visualización para visualizar datos de vídeo, altavoces para emitir datos de audio, etc. Los dispositivos de E/S 780 también pueden incluir dispositivos de entrada, tales como un teclado, ratón, bola de seguimiento, etc., y/o interfaces correspondientes para interactuar con tales dispositivos de salida.
[0783] La memoria 760 comprende uno o más discos, unidades de cinta magnética y/o unidades de estado sólido y se utiliza como un dispositivo de almacenamiento de datos de desbordamiento para almacenar programas, cuando tales programas se seleccionan para ejecutarlos, y para almacenar instrucciones y datos que se leen durante la ejecución del programa. La memoria 760 es volátil y/o no volátil y es memoria de solo lectura (ROM, por sus siglas en inglés), memoria de acceso aleatorio (RAM, por sus siglas en inglés), memoria ternaria de contenido direccionable (TCAM, por sus siglas en inglés) y/o memoria estática de acceso aleatorio (SRAM, por sus siglas en inglés).
[0784] La FIGURA 8 es un diagrama esquemático de una realización de un medio de codificación 800. En una realización, el medio de codificación 800 se implementa en un dispositivo de codificación de vídeo 802 (por ejemplo, un codificador de vídeo 20 o un decodificador de vídeo 30). El dispositivo de codificación de vídeo 802 incluye medios o medio de recepción 801. Los medios o medio de recepción 801 se configuran para recibir una imagen para codificar o para recibir un flujo de bits para decodificar. El dispositivo de codificación de vídeo 802 incluye medios o medio de transmisión 807 acoplados a los medios o medio de recepción 801. Los medios o medio de transmisión 807 están configurados para transmitir el flujo de bits a un decodificador o para transmitir una imagen decodificada a un medio de visualización (por ejemplo, uno de los dispositivos de E/S 780).
[0785] El dispositivo de codificación de vídeo 802 incluye un soporte de almacenamiento 803. Los medios o medio de almacenamiento 803 están acoplados al menos a uno de los medios o medio de recepción 801 o los medios o medio de transmisión 807. Los soportes de almacenamiento 803 se configuran para almacenar instrucciones. El dispositivo de codificación de vídeo 802 también incluye medios o medio de procesamiento 805. Los medios o medio de procesamiento 805 están acoplados a los medios o medio de almacenamiento 803. Los medios o medio de procesamiento 805 están configurados para ejecutar las instrucciones almacenadas en los medios o medio de almacenamiento 803 para realizar los métodos descritos en la presente memoria.

Claims (12)

1. REIVINDICACIONES
1. Un método de decodificación de un flujo de bits de vídeo codificado implementado por un decodificador de vídeo, comprendiendo el método:
decodificar, mediante el decodificador de vídeo, de una imagen anterior incluyendo todos sus segmentos o fragmentos para obtener una imagen decodificada previa;
almacenar, mediante el decodificador de vídeo, la imagen decodificada anterior en un búfer de imagen decodificada (DPB) después de la decodificación;
marcar, mediante el decodificador de vídeo, la imagen decodificada anterior como utilizada para referencia a corto plazo después de que se hayan decodificado todos los segmentos o fragmentos de la imagen decodificada anterior; y
decodificar, mediante el decodificador de vídeo, un primer segmento o fragmento de una imagen actual, comprendiendo la decodificación del primer segmento o fragmento de la imagen actual:
obtener, mediante el decodificador de vídeo, una primera lista de imágenes de referencia del primer segmento o fragmento y una segunda lista de imágenes de referencia del primer segmento o fragmento;
volver a marcar, mediante el decodificador de vídeo, la imagen decodificada anterior como utilizada para referencia a largo plazo cuando la imagen decodificada anterior es mencionada por una entrada de imagen de referencia a largo plazo (LTRP) en la primera lista de imágenes de referencia o la segunda lista de imágenes de referencia; y
volver a marcar, mediante el decodificador de vídeo, la imagen decodificada anterior como no utilizada para referencia cuando la imagen decodificada anterior no es mencionada en la primera lista de imágenes de referencia o en la segunda lista de imágenes de referencia.
2. El método de la reivindicación 1, en donde la imagen actual comprende una imagen de punto de acceso aleatorio no intra (IRAP).
3. El método de la reivindicación 1, en donde la imagen decodificada anterior se denomina imagen de referencia a corto plazo (STRP) cuando se marca como utilizada para referencia a corto plazo.
4. El método de la reivindicación 3, en donde la STRP se identifica mediante un valor de recuento de orden de imagen (PicOrderCntVal).
5. El método de la reivindicación 1, en donde el DPB contiene una pluralidad de imágenes de referencia además, de la imagen decodificada anterior después de la decodificación de la imagen actual.
6. El método de la reivindicación 1, en donde en cualquier momento dado la imagen decodificada anterior solo se marca o se vuelve a marcar como una de las utilizadas para referencia a corto plazo, utilizada para referencia a largo plazo y no utilizada para referencia.
7. El método de la reivindicación 1, en donde marcar o volver a marcar la imagen decodificada anterior como una de las utilizadas para referencia a corto plazo, utilizada para referencia a largo plazo y no utilizada para referencia elimina cualquier otra marca para la imagen decodificada anterior.
8. Un dispositivo de decodificación que comprende:
un receptor configurado para recibir un flujo de bits de vídeo codificado;
una memoria acoplada al receptor, la memoria que almacena instrucciones; y
un procesador acoplado a la memoria y al receptor, el procesador configurado para ejecutar las instrucciones almacenadas en la memoria para hacer que el procesador:
decodifique una imagen anterior incluyendo todos sus segmentos o fragmentos para obtener una imagen decodificada anterior;
almacene la imagen decodificada anterior en un búfer de imagen decodificada (DPB) después de la decodificación;
marque la imagen decodificada anterior como utilizada para referencia a corto plazo después de que se hayan
decodificado todos los segmentos o fragmentos de la imagen decodificada anterior; y decodifique un primer segmento o fragmento de una imagen actual, lo que además hace que el procesador: obtenga una primera lista de imágenes de referencia del primer segmento o fragmento y una segunda lista de imágenes de referencia del primer segmento o fragmento;
vuelva a marcar la imagen decodificada anterior como utilizada para referencia a largo plazo cuando la imagen decodificada anterior es mencionada por una entrada de imagen de referencia a largo plazo (LTRP) en la primera lista de imágenes de referencia o la segunda lista de imágenes de referencia; y
vuelva a marcar la imagen decodificada anterior como no utilizada para referencia cuando la primera imagen no se menciona en la lista de imágenes de referencia decodificadas anterior o en la lista de la segunda imagen de referencia.
9. El dispositivo de decodificación de la reivindicación 8, que comprende, además, una pantalla configurada para mostrar la imagen actual.
10. El dispositivo de decodificación de la reivindicación 8,
en donde el procesador está configurado además, para ejecutar las instrucciones almacenadas en la memoria para realizar el método de cualquiera de las reivindicaciones 1 a 7.
11. Un sistema, que comprende:
un codificador; y
un decodificador en comunicación con el codificador, en donde el codificador incluye el dispositivo de decodificación o el aparato de codificación de cualquiera de las reivindicaciones 8 a 10.
12. Un producto de programa informático que comprende un código de programa para realizar el método según cualquiera de las reivindicaciones 1 a 7 cuando se ejecuta en un ordenador o un procesador.
ES19850236T 2018-08-17 2019-08-16 Reference picture management in video coding Active ES3062309T3 (en)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
ES3062309T3 true ES3062309T3 (en) 2026-04-09

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 (1)

Application Number Title Priority Date Filing Date
ES19850237T Active ES3010144T3 (en) 2018-08-17 2019-08-16 Reference picture management in video coding

Family Applications After (2)

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

Country Status (25)

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

Families Citing this family (23)

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

Family Cites Families (117)

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

Also Published As

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

Similar Documents

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