ES2974627T3 - Manejo de múltiples tamaños de imagen y ventanas de conformidad para el remuestreo de imágenes de referencia en la codificación de video - Google Patents
Manejo de múltiples tamaños de imagen y ventanas de conformidad para el remuestreo de imágenes de referencia en la codificación de video Download PDFInfo
- Publication number
- ES2974627T3 ES2974627T3 ES20790974T ES20790974T ES2974627T3 ES 2974627 T3 ES2974627 T3 ES 2974627T3 ES 20790974 T ES20790974 T ES 20790974T ES 20790974 T ES20790974 T ES 20790974T ES 2974627 T3 ES2974627 T3 ES 2974627T3
- Authority
- ES
- Spain
- Prior art keywords
- image
- parameters
- luma
- samples
- window
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012952 Resampling Methods 0.000 title claims description 30
- 238000000034 method Methods 0.000 claims abstract description 150
- 230000033001 locomotion Effects 0.000 claims description 140
- 239000013598 vector Substances 0.000 claims description 62
- 230000008569 process Effects 0.000 claims description 53
- 241000023320 Luma <angiosperm> Species 0.000 claims description 35
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 35
- 230000005540 biological transmission Effects 0.000 claims description 16
- 230000002457 bidirectional effect Effects 0.000 claims description 13
- 230000003287 optical effect Effects 0.000 claims description 9
- 239000010410 layer Substances 0.000 description 78
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 31
- 238000013139 quantization Methods 0.000 description 25
- 238000007906 compression Methods 0.000 description 17
- 230000006835 compression Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 230000002123 temporal effect Effects 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 12
- 239000011229 interlayer Substances 0.000 description 12
- 230000011664 signaling Effects 0.000 description 12
- 238000005192 partition Methods 0.000 description 11
- 230000009466 transformation Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000000638 solvent extraction Methods 0.000 description 7
- 238000001914 filtration Methods 0.000 description 5
- 238000011017 operating method Methods 0.000 description 5
- 239000002356 single layer Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 229920000069 polyphenylene sulfide Polymers 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 101150114515 CTBS gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 101150067185 ppsA gene Proteins 0.000 description 1
- 101150010264 ppsB gene Proteins 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 235000019587 texture Nutrition 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/521—Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/547—Motion estimation performed in a transform domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un método de decodificación incluye recibir un primer conjunto de parámetros de imagen y un segundo conjunto de parámetros de imagen, cada uno de los cuales hace referencia al mismo conjunto de parámetros de secuencia, en el que cuando el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de ancho y alto de imagen, el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de una ventana de conformidad; y aplicar la ventana de conformidad a una imagen actual correspondiente al primer conjunto de parámetros de imagen o al segundo conjunto de parámetros de imagen. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Manejo de múltiples tamaños de imagen y ventanas de conformidad para el remuestreo de imágenes de referencia en la codificación de video
Campo técnico
En general, esta descripción describe técnicas para soportar múltiples tamaños de imagen y ventanas de conformidad en la codificación de video. Más concretamente, esta descripción garantiza que los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen también tienen la misma ventana de conformidad.
Antecedentes de la invención
La cantidad de datos de video necesaria para representar incluso un video relativamente corto puede ser considerable, lo que puede dar lugar a dificultades cuando los datos deben ser transmitidos o comunicados de otro modo a través de una red de comunicaciones con una capacidad de ancho de banda limitada. Por ello, los datos de video suelen comprimirse antes de ser comunicados a través de las redes de telecomunicaciones actuales. El tamaño de un video también puede ser un problema cuando se almacena en un dispositivo de almacenamiento porque los recursos de memoria pueden ser limitados. Los dispositivos de compresión de video suelen utilizar software y/o hardware en la fuente para codificar los datos de video antes de su transmisión o almacenamiento, disminuyendo así la cantidad de datos necesarios para representar las imágenes de video digital. Los datos comprimidos son recibidos en el destino por un dispositivo de descompresión de video que decodifica los datos de video. Con unos recursos de red limitados y una demanda cada vez mayor de mayor calidad de video, son deseables unas técnicas de compresión y descompresión mejoradas que aumenten la relación de compresión con poco o ningún sacrificio de la calidad de la imagen. HENDRY (FUTUREWEI) ET AL: "AHG8: Support for reference picture resampling - handling of picture size signalling, conformance Windows, and DPB management", 15a REUNIÓN JVET; 20190703-20190712; GOTEMBURGO; (EL EQUIPO EXPERTOS DE JUNTA DE VIDEO DE ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16), N.° JVET-00133; m48225 30 de junio de 2019, recuperado de Internet: URL: http://phenix.intevry.fr/jvet/doc_end_user/documents/15_Gothenburg/wg11/JVET-00133-v2zip JVET-00133-v2.docx describe el manejo de ventanas de conformidad.
Compendio
La invención se define en las reivindicaciones independientes. Se proporcionan características adicionales de la invención en las reivindicaciones dependientes. Un primer aspecto se refiere a un método de decodificación de un flujo de bits de video codificado implementado por un decodificador de video, según la reivindicación 1. El método incluye recibir, por el decodificador de video, un primer conjunto de parámetros de imagen y un segundo conjunto de parámetros de imagen, cada uno de los cuales se refiere al mismo conjunto de parámetros de secuencia, en el que cuando el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de anchura y altura de imagen, el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de una ventana de conformidad; y aplicar, mediante el decodificador de video, la ventana de conformidad a una imagen actual correspondiente al primer conjunto de parámetros de imagen o al segundo conjunto de parámetros de imagen.
El método proporciona técnicas que restringen los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen para tener también el mismo tamaño de ventana de conformidad (por ejemplo, tamaño de ventana de recorte). Al mantener la ventana de conformidad del mismo tamaño para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen, se puede evitar el procesamiento excesivamente complejo cuando se habilita el remuestreo de imagen de referencia (RPR). De este modo, se puede reducir el uso del procesador, la memoria y/o los recursos de red tanto en el codificador como en el decodificador. Así, el codificador/decodificador (también conocido como "códec") en la codificación de video se mejora en relación con los códecs actuales. En la práctica, el proceso de codificación de video mejorado ofrece al usuario una mejor experiencia cuando se envían, reciben y/o visualizan videos.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona que la ventana de conformidad comprende un desplazamiento izquierdo de la ventana de conformidad, un desplazamiento derecho de la ventana de conformidad, un desplazamiento superior de la ventana de conformidad y un desplazamiento inferior de la ventana de conformidad.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona la decodificación de la imagen actual correspondiente al primer conjunto de parámetros de la imagen o al segundo conjunto de parámetros de la imagen usando la inter-predicción después de que se haya aplicado la ventana de conformidad, en la que la inter-predicción se basa en una imagen de referencia remuestreada.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona el remuestreo de una imagen de referencia asociada a la imagen actual correspondiente al primer conjunto de parámetros imágenes o al segundo conjunto de parámetros de imágenes usando el remuestreo de imágenes de referencia (RPS).
Opcionalmente, en cualquiera de los aspectos anteriores, otra modalidad del aspecto proporciona que el remuestreo de la imagen de referencia cambie una resolución de la imagen de referencia usada para la inter predicción de la imagen actual correspondiente al primer conjunto de parámetros de imágenes o al segundo conjunto de parámetros de imágenes.
Opcionalmente, en cualquiera de los aspectos anteriores, otra modalidad del aspecto proporciona que la anchura y la altura de la imagen se midan en muestras de luma.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona determinar si el flujo óptico bidireccional (BDOF) está habilitado para decodificar la imagen basándose en el ancho de la imagen, la altura de la imagen y la ventana de conformidad de la imagen actual y una imagen de referencia para la imagen actual.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona la determinación de si el refinamiento del vector de movimiento del lado del decodificador (DMVR) está habilitado para decodificar la imagen basándose en la anchura de la imagen, la altura de la imagen y la ventana de conformidad de la imagen actual y una imagen de referencia para la imagen actual.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona la visualización en una pantalla de un dispositivo electrónico de una imagen generada utilizando el bloque actual.
Un segundo aspecto se refiere a un método de codificación de un flujo de bits de video implementado por un codificador de video según la reivindicación 8. El método incluye la generación, por parte del codificador de video, de un primer conjunto de parámetros de imagen y un segundo conjunto de parámetros de imagen, cada uno de los cuales se refiere al mismo conjunto de parámetros de secuencia, en el que cuando el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de anchura y altura de imagen, el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de una ventana de conformidad; la codificación, por parte del codificador de video, del primer conjunto de parámetros de imagen y del segundo conjunto de parámetros de imagen en un flujo de bits de video; y el almacenamiento, por parte del codificador de video, del flujo de bits de video para su transmisión hacia un decodificador de video.
El método proporciona técnicas que restringen los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen para tener también el mismo tamaño de ventana de conformidad (por ejemplo, tamaño de ventana de recorte). Al mantener la ventana de conformidad del mismo tamaño para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen, se puede evitar el procesamiento excesivamente complejo cuando se habilita el remuestreo de imagen de referencia (RPR). De este modo, se puede reducir el uso del procesador, la memoria y/o los recursos de red tanto en el codificador como en el decodificador. Así, el codificador/decodificador (también conocido como "códec") en la codificación de video se mejora en relación con los códecs actuales. En la práctica, el proceso de codificación de video mejorado ofrece al usuario una mejor experiencia cuando se envían, reciben y/o visualizan videos.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona que la ventana de conformidad comprende un desplazamiento izquierdo de la ventana de conformidad, un desplazamiento derecho de la ventana de conformidad, un desplazamiento superior de la ventana de conformidad y un desplazamiento inferior de la ventana de conformidad.
Opcionalmente, en cualquiera de los aspectos anteriores, otra modalidad del aspecto prevé que la anchura y la altura de la imagen se midan en muestras de luma.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona la transmisión del flujo de bits de video que contiene el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen hacia el decodificador de video.
Un tercer aspecto se refiere a un dispositivo de decodificación según la reivindicación 11. El dispositivo de decodificación incluye un receptor configurado para recibir un flujo de bits de video codificado; una memoria acoplada al receptor, la memoria que almacena instrucciones; y un procesador acoplado a la memoria, el procesador configurado para ejecutar las instrucciones para hacer que el dispositivo de decodificación reciba un primer conjunto de parámetros de imagen y un segundo conjunto de parámetros de imagen referidos cada uno al mismo conjunto de parámetros de secuencia, en el que cuando el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de anchura y altura de imagen, el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de una ventana de conformidad; y aplique la ventana de conformidad a una imagen actual correspondiente al primer conjunto de parámetros de imagen o al segundo conjunto de parámetros de imagen.
El dispositivo de decodificación proporciona técnicas que restringen los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen para que también tengan el mismo tamaño de ventana de conformidad (por ejemplo, tamaño de ventana de recorte). Al mantener la ventana de conformidad del mismo tamaño para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen, se puede evitar el procesamiento excesivamente complejo cuando se habilita el remuestreo de imagen de referencia (RPR). De este modo, se puede reducir el uso del procesador, la memoria y/o los recursos de red tanto en el codificador como en el decodificador. Así, el codificador/decodificador (también conocido como "códec") en la codificación de video se mejora en relación con los códecs actuales. En la práctica, el proceso de codificación de video mejorado ofrece al usuario una mejor experiencia cuando se envían, reciben y/o visualizan videos.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona que la ventana de conformidad comprende un desplazamiento izquierdo de la ventana de conformidad, un desplazamiento derecho de la ventana de conformidad, un desplazamiento superior de la ventana de conformidad y un desplazamiento inferior de la ventana de conformidad.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona la decodificación de la imagen actual correspondiente al primer conjunto de parámetros de la imagen o al segundo conjunto de parámetros de la imagen utilizando la inter-predicción después de que se haya aplicado la ventana de conformidad, en la que la inter-predicción se basa en una imagen de referencia remuestreada.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona una pantalla configurada para mostrar una imagen generada con base en la imagen actual.
Un cuarto aspecto se refiere a un dispositivo de codificación según la reivindicación 12. El dispositivo de codificación incluye una memoria que contiene instrucciones; un procesador acoplado a la memoria, el procesador configurado para implementar las instrucciones para hacer que el dispositivo de codificación genere un primer conjunto de parámetros de imagen y un segundo conjunto de parámetros de imagen, cada uno de ellos referido al mismo conjunto de parámetros de secuencia, en donde cuando el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de anchura y altura de imagen, el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de una ventana de conformidad; y codifique el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen en un flujo de bits de video; y un transmisor acoplado al procesador, el transmisor configurado para transmitir el flujo de bits de video que contiene el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen hacia un decodificador de video.
El dispositivo de codificación proporciona técnicas que restringen los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen para tener también el mismo tamaño de ventana de conformidad (por ejemplo, tamaño de ventana de recorte). Al mantener la ventana de conformidad del mismo tamaño para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen, se puede evitar un procesamiento demasiado complejo cuando se habilita el remuestreo de imagen de referencia (RPR). De este modo, se puede reducir el uso del procesador, la memoria y/o los recursos de red tanto en el codificador como en el decodificador. Así, el codificador/decodificador (también conocido como "códec") en la codificación de video se mejora en relación con los códecs actuales. En la práctica, el proceso de codificación de video mejorado ofrece al usuario una mejor experiencia cuando se envían, reciben y/o visualizan videos.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona que la ventana de conformidad comprende un desplazamiento izquierdo de la ventana de conformidad, un desplazamiento derecho de la ventana de conformidad, un desplazamiento superior de la ventana de conformidad y un desplazamiento inferior de la ventana de conformidad.
Opcionalmente, en cualquiera de los aspectos anteriores, otra modalidad del aspecto proporciona que la anchura y la altura de la imagen se miden en muestras de luma.
Un quinto aspecto se refiere a un aparato de codificación. El aparato de codificación incluye un receptor configurado para recibir una imagen para codificar o para recibir un flujo de bits para 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 a al menos uno de los receptores o el 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 cualquiera de los métodos descritos en el presente documento.
El aparato de codificación proporciona técnicas que restringen los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen para tener también el mismo tamaño de ventana de conformidad (por ejemplo, tamaño de ventana de recorte). Al mantener la ventana de conformidad del mismo tamaño para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen, se puede evitar el procesamiento excesivamente complejo cuando se habilita el remuestreo de imagen de referencia (RPR). De este modo, se puede reducir el uso del procesador, la memoria y/o los recursos de red tanto en el codificador como en el decodificador. Así, el codificador/decodificador (también conocido como "códec") en la codificación de video se mejora en relación con los códecs actuales. En la práctica, el proceso de codificación de video mejorado ofrece al usuario una mejor experiencia cuando se envían, reciben y/o visualizan videos.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona un elemento de visualización configurado para mostrar una imagen.
Un sexto aspecto se refiere a un flujo de bits según la reivindicación 13.
El sistema proporciona técnicas que restringen los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen para tener también el mismo tamaño de ventana de conformidad (por ejemplo, tamaño de ventana de recorte). Al mantener la ventana de conformidad del mismo tamaño para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen, se puede evitar el procesamiento excesivamente complejo cuando se habilita el remuestreo de imagen de referencia (RPR). De este modo, se puede reducir el uso del procesador, la memoria y/o los recursos de red tanto en el codificador como en el decodificador. Así, el codificador/decodificador (también conocido como "códec") en la codificación de video se mejora en relación con los códecs actuales. En la práctica, el proceso de codificación de video mejorado ofrece al usuario una mejor experiencia cuando se envían, reciben y/o visualizan videos.
Un séptimo aspecto se refiere a un medio para la codificación. Los medios para codificar incluyen medios de recepción configurados para recibir una imagen para codificar o para recibir un flujo de bits para decodificar; medios de transmisión acoplados a los medios de recepción, los medios de transmisión configurados para transmitir el flujo de bits a un medio de decodificación o para transmitir una imagen decodificada a un medio de visualización; medios de almacenamiento acoplados a por lo menos uno de los medios de recepción o de los medios de transmisión, los medios de almacenamiento configurados para almacenar instrucciones; y medios de procesamiento acoplados a los medios de almacenamiento, los medios de procesamiento configurados para ejecutar las instrucciones almacenadas en los medios de almacenamiento para realizar cualquiera de los métodos descritos en el presente documento.
Los medios de codificación proporcionan técnicas que restringen los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen para tener también el mismo tamaño de ventana de conformidad (por ejemplo, tamaño de ventana de recorte). Al mantener la ventana de conformidad del mismo tamaño para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen, se puede evitar un procesamiento excesivamente complejo cuando se habilita el remuestreo de imagen de referencia (RPR). De este modo, se puede reducir el uso del procesador, la memoria y/o los recursos de red tanto en el codificador como en el decodificador. Así, el codificador/decodificador (también conocido como "códec") en la codificación de video se mejora en relación con los códecs actuales. En la práctica, el proceso de codificación de video mejorado ofrece al usuario una mejor experiencia cuando se envían, reciben y/o visualizan videos.
En aras de la claridad, cualquiera de las modalidades anteriores puede combinarse con una o más de las otras modalidades anteriores para crear una nueva modalidad dentro del ámbito de la presente descripción.
Estas y otras características se entenderán más claramente a partir de la siguiente descripción detallada tomada en conjunto con las figuras y las reivindicaciones que se acompañan.
Breve descripción de las figuras
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 las figuras y la descripción detallada que se acompañan, en la que los números de referencia similares representan partes similares.
La FIG. 1 es un diagrama de flujo de un método de ejemplo de codificación de una señal de video.
La FIG. 2 es un diagrama esquemático de un ejemplo de sistema de codificación y decodificación (códec) para la codificación de video.
La FIG. 3 es un diagrama esquemático que ilustra un ejemplo de codificador de video.
La FIG. 4 es un diagrama esquemático que ilustra un ejemplo de decodificador de video.
La FIG. 5 es una secuencia de video codificada que muestra la relación entre una imagen de punto de acceso aleatorio interno (IRAP) en relación con las imágenes principales y las imágenes de seguimiento en un orden de decodificación y un orden de presentación.
La FIG. 6 ilustra un ejemplo de codificación multicapa para la escalabilidad espacial.
La FIG. 7 es un diagrama esquemático que ilustra un ejemplo de inter-predicción unidireccional.
La FIG. 8 es un diagrama esquemático que ilustra un ejemplo de inter-predicción unidireccional.
La FIG. 9 ilustra un flujo de bits de video.
La FIG. 10 ilustra una técnica de partición de una imagen.
La FIG. 11 es una modalidad de un método de decodificación de un flujo de bits de video codificado.
La FIG. 12 es una modalidad de un método de codificación de un flujo de bits de video codificado.
La FIG. 13 es un diagrama esquemático de un dispositivo de codificación de video.
La FIG. 14 es un diagrama esquemático de una modalidad de un medio de codificación.
Descripción detallada de la invención
Debe entenderse desde el principio que, aunque a continuación se proporciona una implementación ilustrativa de una o más modalidades, los sistemas y/o métodos descritos pueden implementarse utilizando cualquier número de técnicas, ya sean actualmente conocidas o existentes. La descripción no debe limitarse en modo alguno a las implementaciones ilustrativas, las figuras y las técnicas que se ilustran a continuación, incluidos los diseños e implementaciones ejemplares que se ilustran y describen en el presente documento, sino que pueden modificarse dentro del ámbito de las reivindicaciones.
Los siguientes términos se definen de la siguiente manera, a menos que se usen en un contexto contrario en el presente documento. Específicamente, las siguientes definiciones pretenden proporcionar claridad adicional a la presente descripción. Sin embargo, los términos pueden describirse de forma diferente en distintos contextos. En consecuencia, las siguientes definiciones deben considerarse como un complemento y no deben considerarse como una limitación de cualquier otra definición o descripción proporcionada para dichos términos en el presente documento.
Un flujo de bits es una secuencia de bits que incluye datos de video que se comprimen para su transmisión entre un codificador y un decodificador. Un codificador es un dispositivo que está configurado para emplear procesos de codificación para comprimir datos de video en un flujo de bits. Un decodificador es un dispositivo que está configurado para emplear procesos de decodificación para reconstruir los datos de video de un flujo de bits para su visualización. Una imagen es una matriz de muestras de luma y/o una matriz de muestras de croma que crean una trama o un campo del mismo. Una imagen que está siendo codificada o decodificada puede ser referida como una imagen actual para mayor claridad de la discusión.
Una imagen de referencia es una imagen que contiene muestras de referencia que pueden usarse al codificar otras imágenes por referencia según la inter-predicción y/o la predicción entre capas. Una lista de imágenes de referencia es una lista de imágenes de referencia usadas para la inter-predicción y/o la predicción entre capas. Algunos sistemas de codificación de video usan dos listas de imágenes de referencia, que pueden denominarse lista de imágenes de referencia uno y lista de imágenes de referencia cero. Una estructura de lista de imágenes de referencia es una estructura de sintaxis direccionable que contiene múltiples listas de imágenes de referencia. La inter-predicción es un mecanismo de codificación de muestras de una imagen actual por referencia a las muestras indicadas en una imagen de referencia que es diferente de la imagen actual cuando la imagen de referencia y la imagen actual están en la misma capa. Una entrada de la estructura de la lista de imágenes de referencia es una ubicación direccionable en una estructura de la lista de imágenes de referencia que indica una imagen de referencia asociada a una lista de imágenes de referencia.
Una cabecera de segmento es una parte de un segmento codificado que contiene elementos de datos relativos a todos los datos de video dentro de un mosaico representado en el segmento. Un conjunto de parámetros de imagen (PPS) es un conjunto de parámetros que contiene datos relacionados con una imagen completa. Más específicamente, el PPS es una estructura de sintaxis que contiene elementos de sintaxis que se aplican a cero o más imágenes codificadas enteras según lo determinado por un elemento de sintaxis que se encuentra en cada cabecera de imagen. Un conjunto de parámetros de secuencia (SPS) es un conjunto de parámetros que contiene datos relacionados con una secuencia de imágenes. Una unidad de acceso (AU) es un conjunto de una o más imágenes codificadas asociadas con el mismo tiempo de visualización (por ejemplo, la misma cuenta de orden de imágenes) para la salida de una memoria intermedia de imágenes decodificadas (DPB) (por ejemplo, para la visualización a un usuario). Una secuencia de video decodificada es una secuencia de imágenes que han sido reconstruidas por un decodificador en preparación para ser mostradas a un usuario.
Una ventana de recorte de conformidad (o simplemente, ventana de conformidad) se refiere a una ventana de muestras de una imagen en una secuencia de video codificada que sale de un proceso de codificación. Un flujo de bits puede proporcionar parámetros de recorte de la ventana de conformidad para indicar la región de salida de la imagen codificada. La anchura de la imagen es la anchura de la imagen medida en muestras de luma. La altura de la imagen es la altura de la imagen medida en muestras de luma. Los desplazamientos de una ventana de conformidad (por ejemplo, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset y conf_win_bottom_offset) especifican las muestras de las imágenes que hacen referencia al PPS que se emiten desde el proceso de decodificación, en términos de una región rectangular especificada en coordenadas de imagen para la salida.
El Refinamiento del Vector de Movimiento del Lado del Decodificador (DMVR) es un proceso, un algoritmo o una herramienta de codificación que se utiliza para refinar los vectores de movimiento o el movimiento de un bloque predicho. El DMVR permite encontrar un vector de movimiento basado en dos vectores de movimiento encontrados para la bipredicción usando un proceso de correspondencia de plantillas bilateral. En DMVR, se puede encontrar una combinación ponderada de unidades de codificación de predicción generadas con cada uno de los dos vectores de movimiento, y los dos vectores de movimiento se pueden refinar sustituyéndolos por nuevos vectores de movimiento que apunten mejor a la unidad de codificación de predicción combinada. El flujo óptico bidireccional (BDOF) es un proceso, algoritmo o herramienta de codificación que se usa para refinar los vectores de movimiento o el movimiento de un bloque de predicción. El BDOF permite encontrar vectores de movimiento para las unidades de subcodificación basándose en el gradiente de la diferencia entre las dos imágenes de referencia.
El remuestreo de imagen de referencia (RPR) es la capacidad de cambiar la resolución espacial de las imágenes codificadas en medio de un flujo de bits sin la necesidad de la intra-codificación de la imagen en el lugar de cambio de resolución. Tal y como se usa en el presente documento, la resolución describe el número de píxeles de un archivo de video. Es decir, la resolución es la anchura y la altura de la imagen proyectada, medida en píxeles. Por ejemplo, un video puede tener una resolución de 1280 (píxeles horizontales) * 720 (píxeles verticales). Esto se suele escribir simplemente como 1280*720, o abreviado como 720p.
El refinamiento del vector de movimiento del lado del decodificador (DMVR) es un proceso, algoritmo o herramienta de codificación que se usa para refinar los vectores de movimiento o el movimiento de un bloque predicho. El flujo óptico bidireccional (BDOF), también conocido como flujo óptico bidireccional (BIO), es un proceso, algoritmo o herramienta de codificación usado para refinar el movimiento o los vectores de movimiento de un bloque predicho. La función de remuestreo de la imagen de referencia (RPR) es la capacidad de cambiar la resolución espacial de las imágenes codificadas en medio de un flujo de bits sin necesidad de la intracodificación de la imagen en el lugar de cambio de resolución.
En el presente documento se utilizan las siguientes siglas: Bloque de Árbol de Codificación (CTB), Unidad de Árbol de Codificación (CTU), Unidad de Codificación (CU), Secuencia de Video Codificada (CVS), Equipo de Expertos de Junta de Video (JVET), Conjunto de Mosaico de Movimiento Limitado (MCTS), Unidad de Transferencia Máxima (MTU), Capa de Abstracción de Red (NAL), Recuento de Ordenes de Imagen (POC), Carga Útil de Secuencia de Bytes sin Procesar (RBSP), Conjunto de Parámetros de Secuencia (SPS), Codificación de Video Versátil (VVC) y Borrador de Trabajo (WD).
La FIG. 1 es un diagrama de flujo de un ejemplo de método 100 operativo de codificación de una señal de video. En concreto, una señal de video se codifica en un codificador. El proceso de codificación comprime la señal de video empleando varios mecanismos para reducir el tamaño del archivo de video. Un tamaño de archivo menor permite transmitir el archivo de video comprimido hacia un usuario, reduciendo al mismo tiempo la sobrecarga de ancho de banda asociada. A continuación, el decodificador decodifica el archivo de video comprimido para reconstruir la señal de video original y mostrarla al usuario final. El proceso de decodificación generalmente refleja el proceso de codificación para permitir que el decodificador reconstruya la señal de video de forma consistente.
En el paso 101, la señal de video se introduce en el codificador. Por ejemplo, la señal de video puede ser un archivo de video sin comprimir almacenado en la memoria. Como otro ejemplo, el archivo de video puede ser capturado por un dispositivo de captura de video, como una cámara de video, y codificado para soportar la transmisión en directo del video. El archivo de video puede incluir tanto un componente de audio como un componente de video. El componente de video contiene una serie de tramas de imagen que, cuando se ven en una secuencia, dan la impresión visual de movimiento. Las tramas contienen píxeles que se expresan en términos de luz, denominados aquí componentes de luma (o muestras de luma), y de color, que se denominan componentes de croma (o muestras de color). En algunos ejemplos, las tramas también pueden contener valores de profundidad para soportar la visualización tridimensional.
En el paso 103, el video se divide en bloques. La partición incluye la subdivisión de los píxeles de cada trama en bloques cuadrados y/o rectangulares para la compresión. Por ejemplo, en la codificación de video de alta eficiencia (HEVC) (también conocida como H.265 y MPEG-H Parte 2) la trama puede dividirse primero en unidades de árbol de codificación (CTU), que son bloques de un tamaño predefinido (por ejemplo, sesenta y cuatro píxeles por sesenta y cuatro píxeles). Las CTU contienen muestras de luma y croma. Los árboles de codificación se pueden emplear para dividir las CTU en bloques y, a continuación, subdividirlos recursivamente hasta conseguir configuraciones que soportan una codificación posterior. Por ejemplo, los componentes de luma de una trama pueden subdividirse hasta que los bloques individuales contengan valores de iluminación relativamente homogéneos. Además, los componentes de croma de una trama pueden subdividirse hasta que los bloques individuales contengan valores de color relativamente homogéneos. En consecuencia, los mecanismos de partición varían en función del contenido de las tramas de video.
En el paso 105, se emplean varios mecanismos de compresión para comprimir los bloques de imagen divididos en el paso 103. Por ejemplo, se puede emplear la inter-predicción y/o la intra-predicción. La inter-predicción está diseñada para aprovechar el hecho de que los objetos en una escena común tienden a aparecer en tramas sucesivos. En consecuencia, un bloque que representa un objeto en una trama de referencia no necesita ser descrito repetidamente en tramas adyacentes. En concreto, un objeto, como una mesa, puede permanecer en una posición constante a lo largo de varias tramas. Por lo tanto, la mesa se describe una vez y las tramas adyacentes pueden referirse a la trama de referencia. Se pueden emplear mecanismos de concordancia de patrones para hacer coincidir objetos a lo largo de múltiples tramas. Además, los objetos en movimiento pueden representarse a lo largo de múltiples tramas, por ejemplo, debido al movimiento del objeto o de la cámara. Como ejemplo particular, un video puede mostrar un automóvil que se mueve a través de la pantalla en múltiples tramas. Los vectores de movimiento pueden emplearse para describir dicho movimiento. Un vector de movimiento es un vector bidimensional que proporciona un desplazamiento de las coordenadas de un objeto en una trama a las coordenadas del objeto en una trama de referencia. Como tal, la inter-predicción puede codificar un bloque de imagen en una trama actual como un conjunto de vectores de movimiento que indican un desplazamiento desde un bloque correspondiente en una trama de referencia.
La intra-predicción codifica bloques en una trama común. La intra-predicción aprovecha el hecho de que los componentes de luma y croma tienden a agruparse en una trama. Por ejemplo, un parche de verde en una parte de un árbol tiende a situarse junto a parches de verde similares. La intra-predicción emplea múltiples modos de predicción direccional (por ejemplo, treinta y tres en HEVC), un modo planar y un modo de corriente directa (DC). Los modos direccionales indican que un bloque actual es similar/igual a las muestras de un bloque vecino en una dirección correspondiente. El modo planar indica que una serie de bloques a lo largo de una fila/columna (por ejemplo, un plano) puede interpolarse basándose en los bloques vecinos en los bordes de la fila. El modo planar, en efecto, indica una transición suave de luz/color a través de una fila/columna empleando una pendiente relativamente constante en los valores cambiantes. El modo DC se emplea para el suavizado de los límites e indica que un bloque es similar/igual a un valor medio asociado a las muestras de todos los bloques vecinos asociados a las direcciones angulares de los modos de predicción direccional. En consecuencia, los bloques de intra-predicción pueden representar bloques de imagen como varios valores de modo de predicción relacional en lugar de los valores reales. Además, los bloques de inter-predicción pueden representar bloques de imagen como valores de vectores de movimiento en lugar de los valores reales. En cualquier caso, los bloques de predicción pueden no representar exactamente los bloques de imagen en algunos casos. Cualquier diferencia se almacena en bloques residuales. Se pueden aplicar transformaciones a los bloques residuales para comprimir aún más el archivo.
En el paso 107, se pueden aplicar varias técnicas de filtrado. En HEVC, los filtros se aplican según un esquema de filtrado en bucle. La predicción basada en bloques de la que se ha hablado anteriormente puede dar lugar a la creación de imágenes en bloque en el decodificador. Además, el esquema de predicción basado en bloques puede codificar un bloque y luego reconstruir el bloque codificado para usarlo posteriormente como bloque de referencia. El esquema de filtrado en bucle aplica iterativamente filtros de supresión de ruido, filtros de desbloqueo, filtros de bucle adaptativos y filtros de desplazamiento adaptativo de muestra (SAO) a los bloques/tramas. Estos filtros mitigan estos artefactos de bloqueo para que el archivo codificado pueda reconstruirse con precisión. Además, estos filtros mitigan los artefactos en los bloques de referencia reconstruidos para que sea menos probable que los artefactos creen artefactos adicionales en los bloques subsiguientes que se codifican basándose en los bloques de referencia reconstruidos.
Una vez que la señal de video ha sido dividida, comprimida y filtrada, los datos resultantes se codifican en un flujo de bits en el paso 109. El flujo de bits incluye los datos mencionados anteriormente, así como cualquier dato de señalización deseado para apoyar la reconstrucción adecuada de la señal de video en el decodificador. Por ejemplo, dichos datos pueden incluir datos de partición, datos de predicción, bloques residuales y varias banderas que proporcionan instrucciones de codificación al decodificador. El flujo de bits puede ser almacenado en la memoria para ser transmitido hacia un decodificador a petición. El flujo de bits también puede ser transmitido y/o multidifundido hacia una pluralidad de decodificadores. La creación del flujo de bits es un proceso iterativo. En consecuencia, los pasos 101, 103, 105, 107 y 109 pueden ocurrir de forma continua y/o simultánea a lo largo de muchas tramas y bloques. El orden mostrado en la FIG. 1 se presenta por claridad y facilidad de discusión, y no pretende limitar el proceso de codificación de video a un orden particular.
El decodificador recibe el flujo de bits y comienza el proceso de decodificación en el paso 111. Específicamente, el decodificador emplea un esquema de decodificación de entropía para convertir el flujo de bits en los datos de sintaxis y video correspondientes. El decodificador emplea los datos de sintaxis del flujo de bits para determinar las particiones de las tramas en el paso 111. La partición debe corresponder con los resultados de la partición de bloques en el paso 103. Ahora se describe la codificación/decodificación de entropía empleada en el paso 111. El codificador toma muchas decisiones durante el proceso de compresión, como la selección de esquemas de partición de bloques entre varias opciones posibles basadas en el posicionamiento espacial de los valores en la imagen o imágenes de entrada. La señalización de las elecciones exactas puede emplear un gran número de bin. Tal y como se usa en el presente documento, un bin es un valor binario que se trata como una variable (por ejemplo, un valor de bit que puede variar dependiendo del contexto). La codificación de entropía permite al codificador descartar cualquier opción que claramente no sea viable para un caso particular, dejando un conjunto de opciones permitidas. A cada opción permitida se le asigna una palabra de código. La longitud de las palabras clave se basa en el número de opciones permitidas (por ejemplo, una casilla para dos opciones, dos casillas para tres o cuatro opciones, etc.). Este esquema reduce el tamaño de las palabras clave, ya que éstas son tan grandes como se desee para indicar de forma exclusiva una selección de un pequeño subconjunto de opciones permitidas, en lugar de indicar de forma exclusiva la selección de un conjunto potencialmente grande de todas las opciones posibles. El decodificador decodifica entonces la selección determinando el conjunto de opciones permitidas de manera similar al codificador. Al determinar el conjunto de opciones permitidas, el decodificador puede leer la palabra de código y determinar la selección realizada por el codificador.
En el paso 113, el decodificador realiza la decodificación de bloques. En concreto, el decodificador emplea transformaciones inversas para generar bloques residuales. A continuación, el decodificador emplea los bloques residuales y los correspondientes bloques de predicción para reconstruir los bloques de imagen según la partición. Los bloques de predicción pueden incluir tanto bloques de intra-predicción como bloques de inter predicción generados en el codificador en el paso 105. Los bloques de imagen reconstruidos se colocan entonces en tramas de una señal de video reconstruida según los datos de partición determinados en el paso 111. La sintaxis para el paso 113 también puede ser señalada en el flujo de bits a través de la codificación de entropía, como se discutió anteriormente.
En el paso 115, se realiza el filtrado de las tramas de la señal de video reconstruida de forma similar al paso 107 en el codificador. Por ejemplo, se pueden aplicar filtros de supresión de ruido, filtros de desbloqueo, filtros de bucle adaptativo y filtros<s>A<o>a las tramas para eliminar los artefactos de bloqueo. Una vez filtrados las tramas, la señal de video puede ser enviada a un elemento de visualización en el paso 117 para su visualización por un usuario final.
La FIG. 2 es un diagrama esquemático de un ejemplo de sistema de codificación y decodificación (códec) 200 para la codificación de video. Específicamente, el sistema 200 de códec proporciona funcionalidad para apoyar la implementación del método 100 operativo. El sistema 200 de códec se generaliza para representar componentes empleados tanto en un codificador como en un decodificador. El sistema 200 de códec recibe y particiona una señal de video como se discute con respecto a los pasos 101 y 103 en el método 100 operativo, lo que resulta en una señal 201 de video particionada. El sistema 200 de códec comprime entonces la señal 201 de video particionada en un flujo de bits codificado cuando actúa como codificador, como se discute con respecto a los pasos 105, 107 y 109 del método 100. Cuando actúa como decodificador, el sistema de códecs 200 genera una señal de video de salida a partir del flujo de bits, tal como se discute con respecto a los pasos 111, 113, 115 y 117 en el método 100 operativo. El sistema 200 de códec incluye un componente 211 de control de codificador general, un componente 213 de escalado y cuantificación de transformada, un componente 215 de estimación intra-imagen, un componente 217 de predicción intra-imagen, un componente 219 de compensación de movimiento, un componente 221 de estimación de movimiento, un componente 229 de escalado y transformada inversa, un componente 227 de análisis de control de filtros, un componente 225 de filtros en bucle, un componente de memoria 223 intermedia de imagen decodificada, y un componente 231 de formato de cabecera y codificación aritmética binaria adaptativa al contexto (CABAC). Dichos componentes están acoplados como se muestra. En la FIG. 2, las líneas negras indican el movimiento de los datos a codificar/decodificar, mientras que las líneas discontinuas indican el movimiento de los datos de control que controlan el funcionamiento de otros componentes. Todos los componentes del sistema 200 de códec pueden estar presentes en el codificador. El decodificador puede incluir un subconjunto de los componentes del sistema 200 de códec. Por ejemplo, el decodificador puede incluir el componente 217 de predicción intra-imagen, el componente 219 de compensación de movimiento, el componente 229 de escalado y transformada inversa, el componente 225 de filtros en bucle, y el componente 223 de memoria intermedia de imagen decodificada. Estos componentes se describen ahora.
La señal 201 de video particionada es una secuencia de video capturada que ha sido particionada en bloques de píxeles por un árbol de codificación. Un árbol de codificación emplea varios modos de división para subdividir un bloque de píxeles en bloques de píxeles más pequeños. Estos bloques pueden subdividirse a su vez en bloques más pequeños. Los bloques pueden denominarse nodos en el árbol de codificación. Los nodos padres más grandes se dividen en nodos hijos más pequeños. El número de veces que se subdivide un nodo se denomina profundidad del nodo/árbol de codificación. En algunos casos, los bloques divididos pueden incluirse en unidades de codificación (CU). Por ejemplo, una CU puede ser una sub-parte de una CTU que contenga un bloque de luma, el bloque o bloques de diferencia de croma rojo (Cr), y un bloque o bloques de diferencia de croma azul (Cb) junto con las correspondientes instrucciones de sintaxis para la CU. Los modos de división pueden incluir un árbol binario (BT), un árbol triple (TT) y un árbol cuádruple (QT) empleados para dividir un nodo en dos, tres o cuatro nodos hijos, respectivamente, de formas variables dependiendo de los modos de división empleados. La señal 201 de video particionada se envía al componente 211 de control del codificador general, al componente 213 de escalado y cuantificación de transformada , al componente 215 de estimación intra-imagen, al componente 227 de análisis de control del filtro y al componente 221 de estimación del movimiento para su compresión.
El componente 211 de control del codificador general está configurado para tomar decisiones relacionadas con la codificación de las imágenes de la secuencia de video en el flujo de bits según las restricciones de la aplicación. Por ejemplo, el componente 211 de control del codificador general gestiona la optimización del tamaño de la tasa de bits/del flujo de bits frente a la calidad de la reconstrucción. Tales decisiones pueden ser tomadas con base en la disponibilidad de espacio de almacenamiento/ancho de banda y a las solicitudes de resolución de imagen. El componente 211 de control general del codificador también gestiona la utilización de la memoria intermedia a la luz de la velocidad de transmisión para mitigar los problemas de infrautilización y sobreutilización de la memoria intermedia. Para gestionar estos problemas, el componente 211 de control del codificador general gestiona la partición, la predicción y el filtrado por parte de los otros componentes. Por ejemplo, el componente 211 de control del codificador general puede aumentar dinámicamente la complejidad de la compresión para aumentar la resolución y el uso del ancho de banda, o disminuir la complejidad de la compresión para reducir la resolución y el uso del ancho de banda. Por lo tanto, el componente 211 de control del codificador general controla los otros componentes del sistema 200 de códec para equilibrar la calidad de la reconstrucción de la señal de video con las preocupaciones de la tasa de bits. El componente 211 de control general del codificador crea datos de control, los cuales controlan la operación de los otros componentes. Los datos de control también se envían al componente 231 de formateo de cabecera y CABAC para que se codifiquen en el flujo de bits y se conviertan en parámetros de señal para la decodificación en el decodificador.
La señal 201 de video particionada también se envía al componente 221 de estimación de movimiento y al componente 219 de compensación de movimiento para la inter-predicción. Una trama o segmento de la señal 201 de video particionada puede dividirse en múltiples bloques de video. El componente 221 de estimación de movimiento y el componente 219 de compensación de movimiento realizan una codificación interpredictiva del bloque de video recibido en relación con uno o más bloques en uno o más tramas de referencia para proporcionar una predicción temporal. El sistema 200 de codificación puede realizar múltiples pases de codificación, por ejemplo, para seleccionar un modo de codificación apropiado para cada bloque de datos de video.
El componente 221 de estimación de movimiento y el componente 219 de compensación de movimiento pueden estar altamente integrados, pero se ilustran por separado con fines conceptuales. . La estimación de movimiento, realizada por el componente 221 de estimación de movimiento, es el proceso de generar vectores de movimiento, que estiman el movimiento de los bloques de video. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de un objeto codificado en relación con un bloque predictivo. Un bloque predictivo es un bloque que se encuentra en estrecha correspondencia con el bloque a codificar, en términos de diferencia de píxeles. Un bloque predictivo también puede ser referido como un bloque de referencia. Esta diferencia de píxeles puede determinarse mediante la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrada (SSD) u otras métricas de diferencia. HEVC emplea varios objetos codificados, incluyendo una CTU, bloques de árbol de codificación (CTB) y CU. Por ejemplo, una CTU puede dividirse en CTB, que a su vez pueden dividirse en CB para su inclusión en CU. Una CU puede ser codificada como una unidad de predicción (PU) que contiene datos de predicción y/o una unidad de transformación (TU) que contiene datos residuales transformados para la CU. El componente 221 de estimación de movimiento genera vectores de movimiento, PU y TU usando un análisis de distorsión de tasa como parte de un proceso de optimización de distorsión de tasa. Por ejemplo, el componente 221 de estimación de movimiento puede determinar múltiples bloques de referencia, múltiples vectores de movimiento, etc. para un bloque/trama actual, y puede seleccionar los bloques de referencia, vectores de movimiento, etc. que tengan las mejores características de distorsión de tasa. Las mejores características de distorsión de tasa equilibran la calidad de la reconstrucción de video (por ejemplo, la cantidad de pérdida de datos por compresión) con la eficiencia de codificación (por ejemplo, el tamaño de la codificación final).
En algunos ejemplos, el sistema 200 de códec puede calcular valores para posiciones de píxeles sub-enteros de las imágenes de referencia almacenadas en el componente 223 de memoria intermedia de imágenes decodificadas. Por ejemplo, el sistema 200 de códec de video puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de píxel fraccionadas de la imagen de referencia. Por lo tanto, el componente 221 de estimación de movimiento puede realizar una búsqueda de movimiento relativa a las posiciones de píxeles completos y a las posiciones de píxeles fraccionarios y emitir un vector de movimiento con precisión de píxeles fraccionarios. El componente 221 de estimación de movimiento calcula un vector de movimiento para una PU de un bloque de video en un segmento inter codificado comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. El componente 221 de estimación de movimiento envía el vector de movimiento calculado como datos de movimiento al componente 231 de formato de cabecera y CABAC para su codificación y movimiento al componente 219 de compensación de movimiento.
La compensación de movimiento, realizada por el componente 219 de compensación de movimiento, puede implicar la obtención o generación del bloque predictivo basado en el vector de movimiento determinado por el componente 221 de estimación de movimiento. De nuevo, el componente 221 de estimación de movimiento y el componente 219 de compensación de movimiento pueden estar funcionalmente integrados, en algunos ejemplos. Al recibir el vector de movimiento para el PU del bloque de video actual, el componente 219 de compensación de movimiento puede localizar el bloque predictivo al que apunta el vector de movimiento. Un bloque de video residual se forma entonces restando los valores de los píxeles del bloque predictivo de los valores de los píxeles del bloque de video actual que se está codificando, formando valores de diferencia de píxeles. En general, el componente 221 de estimación de movimiento realiza una estimación de movimiento relativa a los componentes de luma, y el componente 219 de compensación de movimiento utiliza vectores de movimiento calculados con base en los componentes de luma tanto para los componentes de croma como para los componentes de luma. El bloque predictivo y el bloque residual se envían al componente 213 de escalado y cuantificación de transformada .
La señal 201 de video particionada también se envía al componente 215 de estimación intra-imagen y al componente 217 de predicción intra-imagen. Al igual que el componente 221 de estimación de movimiento y el componente 219 de compensación de movimiento, el componente 215 de estimación intra-imagen y el componente 217 de predicción intra-imagen pueden estar altamente integrados, pero se ilustran por separado con fines conceptuales. El componente 215 de estimación intra-imagen y el componente 217 de predicción intra-imagen intra-predicen un bloque actual en relación con los bloques de una trama actual, como una alternativa a la inter-predicción realizada por el componente 221 de estimación de movimiento y el componente 219 de compensación de movimiento entre tramas, como se ha descrito anteriormente. En particular, el componente 215 de estimación intra-trama determina un modo de intra-predicción a usar para codificar un bloque actual. En algunos ejemplos, el componente 215 de estimación intra-imagen selecciona un modo de intra-predicción apropiado para codificar un bloque actual entre múltiples modos de intra-predicción probados. Los modos de intra-predicción seleccionados son entonces enviados al componente 231 de formato de cabecera y CABAC para su codificación.
Por ejemplo, el componente 215 de estimación intra-imagen calcula los valores de tasa de distorsión usando un análisis de tasa de distorsión para los diversos modos de intra-predicción probados, y selecciona el modo de intra-predicción que tiene las mejores características de distorsión de tasa entre los modos probados. El análisis de tasa de distorsión de generalmente determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado que fue codificado para producir el bloque codificado, así como una tasa de bits (por ejemplo, un número de bits) usada para producir el bloque codificado. El componente 215 de estimación intra-imagen calcula relaciones a partir de las distorsiones y tasas de los distintos bloques codificados para determinar qué modo de intra-predicción exhibe el mejor valor de tasa de distorsión para el bloque. Además, el componente de estimación intra-imagen 215 puede estar configurado para codificar bloques de profundidad de un mapa de profundidad usando un modo de modelado de profundidad (DMM) basado en la optimización de la tasa de distorsión (RDO).
El componente 217 de predicción intra-imagen puede generar un bloque residual a partir del bloque predictivo con base en los modos de intra-predicción seleccionados y determinados por el componente 215 de estimación intra-imagen cuando se implementa en un codificador o leer el bloque residual del flujo de bits cuando se implementa en un decodificador. El bloque residual incluye la diferencia de valores entre el bloque predictivo y el bloque original, representado como una matriz. El bloque residual se envía entonces al componente 213 de escalado y cuantificación de transformada . El componente 215 de estimación intra-imagen y el componente 217 de predicción intra-imagen pueden operar sobre los componentes de luma y croma.
El componente 213 de escalado y cuantificación de transformada está configurado para comprimir aún más el bloque residual. El componente 213 de escalado y cuantificación de transformada aplica una transformada, como una transformada coseno discreta (DCT), una transformada seno discreta (DST), o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de video que comprende valores de coeficiente de transformación residual. También podrían utilizarse transformadas de ondícula, transformadas de enteros, transformadas de sub-bandas u otros tipos de transformadas. La transformación puede convertir la información residual de un dominio de valor de píxel a un dominio de transformada, como un dominio de frecuencia. El componente 213 de escalado y cuantificación de transformada también está configurado para escalar la información residual transformada, por ejemplo, basándose en la frecuencia. Dicho escalado implica la aplicación de un factor de escala a la información residual de modo que la información de frecuencia diferente se cuantifica en diferentes granularidades, lo que puede afectar a la calidad visual final del video reconstruido. El componente 213 de escalado y cuantificación de transformada también está configurado para cuantificar los coeficientes de la transformada para reducir aún más la tasa de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los coeficientes. El grado de cuantificación puede modificarse ajustando un parámetro de cuantificación. En algunos ejemplos, el componente 213 de escalado y cuantificación de transformada puede realizar un escaneo de la matriz que incluye los coeficientes de transformada cuantificados. Los coeficientes de transformada cuantificados se envían al componente 231 de formato de cabecera y CABAC para ser codificados en el flujo de bits.
El componente 229 de escalado y transformada inversa aplica una operación inversa del componente 213 de escalado y cuantificación de transformada para soportar la estimación de movimiento. El componente 229 de escalado y transformada inversa aplica una operación inversa de escalado, transformada y/o cuantificación para reconstruir el bloque residual en el dominio del píxel, por ejemplo, para su uso posterior como bloque de referencia que puede convertirse en un bloque predictivo para otro bloque actual. El componente 221 de estimación de movimiento y/o el componente 219 de compensación de movimiento pueden calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo correspondiente para su uso en la estimación de movimiento de un bloque/trama posterior. Se aplican filtros a los bloques de referencia reconstruidos para mitigar los artefactos creados durante el escalado, la cuantificación y la transformación. De lo contrario, estos artefactos podrían causar una predicción inexacta (y crear artefactos adicionales) cuando se predicen los bloques posteriores.
El componente 227 de análisis de control de filtros y el componente 225 de filtros en bucle aplican los filtros a los bloques residuales y/o a los bloques de imagen reconstruidos. Por ejemplo, el bloque residual transformado del componente 229 de escalado y transformada inversa puede combinarse con un bloque de predicción correspondiente del componente 217 de predicción intra-imagen y/o del componente 219 de compensación de movimiento para reconstruir el bloque de imagen original. Los filtros pueden entonces aplicarse al bloque de imagen reconstruido. En algunos ejemplos, los filtros pueden aplicarse a los bloques residuales. Al igual que otros componentes de la FIG. 2, el componente 227 de análisis de control de filtros y el componente 225 de filtros en bucle están altamente integrados y pueden implementarse juntos, pero se representan por separado con fines conceptuales. Los filtros aplicados a los bloques de referencia reconstruidos se aplican a regiones espaciales particulares e incluyen múltiples parámetros para ajustar cómo se aplican dichos filtros. El componente 227 de análisis de control de filtros analiza los bloques de referencia reconstruidos para determinar dónde deben aplicarse dichos filtros y establece los parámetros correspondientes. Estos datos se envían al componente 231 de formato de cabecera y CABAC como datos de control de filtros para su codificación. El componente 225 de filtros en bucle aplica dichos filtros basándose en los datos de control de los filtros. Los filtros pueden incluir un filtro de desbloqueo, un filtro de supresión de ruido, un filtro SAO y un filtro de bucle adaptativo. Dichos filtros pueden aplicarse en el dominio espacial/pixel (por ejemplo, en un bloque de píxeles reconstruido) o en el dominio de la frecuencia, dependiendo del ejemplo.
Cuando funciona como codificador, el bloque de imagen reconstruida filtrada, el bloque residual y/o el bloque de predicción se almacenan en el componente 223 de memoria intermedia de imagen decodificada para su posterior uso en la estimación de movimiento, como se ha comentado anteriormente. Cuando funciona como decodificador, el componente 223 de memoria intermedia de imagen decodificada almacena y envía los bloques reconstruidos y filtrados hacia un elemento de visualización como parte de una señal de video de salida. El componente 223 de memoria intermedia de imagen decodificada puede ser cualquier dispositivo de memoria capaz de almacenar bloques de predicción, bloques residuales y/o bloques de imagen reconstruidos.
El componente 231 de formato de cabecera y CABAC recibe los datos de los diversos componentes del sistema 200 de códec y codifica dichos datos en un flujo de bits codificado para su transmisión hacia un decodificador. Específicamente, el componente 231 de formato de cabecera y CABAC genera varias cabeceras para codificar los datos de control, como los datos de control general y los datos de control del filtro. Además, los datos de predicción, incluyendo los datos de intra-predicción y de movimiento, así como los datos residuales en forma de datos de coeficientes de transformada cuantificados se codifican en el flujo de bits. El flujo de bits final incluye toda la información deseada por el decodificador para reconstruir la señal 201 de video particionada original. Dicha información puede incluir también tablas de índices de modos de intra-predicción (también denominadas tablas de correspondencia de palabras de código), definiciones de contextos de codificación para varios bloques, indicaciones de los modos de intra-predicción más probables, una indicación de la información de partición, etc. Estos datos pueden codificarse empleando la codificación de entropía. Por ejemplo, la información puede codificarse empleando una codificación de longitud variable adaptable al contexto (CAVLC), CABAC, una codificación aritmética binaria adaptable al contexto (SBAC) basada en la sintaxis, una codificación de entropía de partición de intervalos de probabilidad (PIPE) u otra técnica de codificación de entropía. Tras la codificación de entropía, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, un decodificador de video) o archivarse para su posterior transmisión o recuperación.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de codificador 300 de video. El codificador 300 de video puede emplearse para implementar las funciones de codificación del sistema 200 de códec y/o implementar los pasos 101, 103, 105, 107 y/o 109 del método 100 operativo. El codificador 300 particiona una señal de video de entrada, dando como resultado una señal 301 de video particionada, que es sustancialmente similar a la señal 201 de video particionada. La señal 301 de video particionada es entonces comprimida y codificada en un flujo de bits por componentes del codificador 300.
Específicamente, la señal 301 de video particionada se envía a un componente 317 de predicción intra-imagen para la intra-predicción. El componente 317 de predicción intra-imagen puede ser sustancialmente similar al componente 215 de estimación intra-imagen y al componente 217 de predicción intra-imagen. La señal 301 de video particionada también se envía a un componente 321 de compensación de movimiento para la inter predicción basada en bloques de referencia en un componente 323 de memoria intermedia de imagen decodificada. El componente 321 de compensación de movimiento puede ser sustancialmente similar al componente 221 de estimación de movimiento y al componente 219 de compensación de movimiento. Los bloques de predicción y los bloques residuales del componente 317 de predicción intra-imagen y del componente 321 de compensación de movimiento se envían a un componente 313 de transformada y cuantificación para la transformación y cuantificación de los bloques residuales. El componente 313 de transformada y cuantificación puede ser sustancialmente similar al componente 213 de transformada, escalado y cuantificación. Los bloques residuales transformados y cuantificados y los correspondientes bloques de predicción (junto con los datos de control asociados) se envían a un componente 331 de codificación de entropía para su codificación en un flujo de bits. El componente 331 de codificación de entropía puede ser sustancialmente similar al componente 231 de formato de cabecera y CABAC.
Los bloques residuales transformados y cuantificados y/o los correspondientes bloques de predicción también se envían desde el componente 313 de transformada y cuantificación a un componente 329 de cuantificación y transformada inversa para su reconstrucción en bloques de referencia para su uso por el componente 321 de compensación de movimiento. El componente 329 de cuantificación y transformada inversa puede ser sustancialmente similar al componente 229 de escalado y transformada inversa. Los filtros en bucle en un componente 325 de filtros en bucle también se aplican a los bloques residuales y/o a los bloques de referencia reconstruidos, dependiendo del ejemplo. El componente 325 de filtros en bucle puede ser sustancialmente similar al componente 227 de análisis de control de filtros y al componente 225 de filtros en bucle. El componente 325 de filtros en bucle puede incluir múltiples filtros, como se discute con respecto al componente 225 de filtros en bucle. Los bloques filtrados se almacenan en un componente 323 memoria intermedia de imagen decodificada para su uso como bloques de referencia por el componente 321 de compensación de movimiento. El componente 323 de memoria intermedia de imágenes decodificadas puede ser sustancialmente similar al componente 223 de memoria intermedia de imágenes decodificadas.
La FIG. 4 es un diagrama de bloques que ilustra un ejemplo 400 de decodificador de video. El decodificador 400 de video puede emplearse para implementar las funciones de decodificación del sistema 200 de códec y/o implementar los pasos 111, 113, 115 y/o 117 del método 100 operativo. El decodificador 400 recibe un flujo de bits, por ejemplo de un codificador 300, y genera una señal de video de salida reconstruida basada en el flujo de bits para su visualización a un usuario final.
El flujo de bits es recibido por un componente 433 de decodificación de entropía. El componente 433 de decodificación de entropía está configurado para implementar un esquema de decodificación de entropía, como CAVLC, CABAC, SBAC, codificación PIPE u otras técnicas de codificación de entropía. Por ejemplo, el componente 433 de decodificación de entropía puede emplear la información de la cabecera para proporcionar un contexto para interpretar los datos adicionales codificados como palabras de código en el flujo de bits. La información decodificada incluye cualquier información deseada para decodificar la señal de video, como datos de control general, datos de control de filtro, información de partición, datos de movimiento, datos de predicción y coeficientes de transformación cuantificados de bloques residuales. Los coeficientes de transformada cuantificados son enviados a un componente 429 de cuantificación y transformada inversa para su reconstrucción en bloques residuales. El componente 429 de cuantificación y transformada inversa puede ser similar al componente 329 de cuantificación y transformada inversa .
Los bloques residuales reconstruidos y/o los bloques de predicción se envían al componente 417 de predicción intra-imagen para su reconstrucción en bloques de imagen basados en operaciones de intra-predicción. El componente 417 de predicción intra-imagen puede ser similar al componente 215 de estimación intra-imagen y al componente 217 de predicción intra-imagen. Específicamente, el componente 417 de predicción intraimagen emplea modos de predicción para localizar un bloque de referencia en la trama y aplica un bloque residual al resultado para reconstruir bloques de imagen de intra-predicción. Los bloques de imagen de intrapredicción reconstruidos y/o los bloques residuales y los datos de inter-predicción correspondientes se envían a un componente 423 de memoria intermedia de imagen decodificada a través de un componente 425 de filtros en bucle, que puede ser sustancialmente similar al componente 223 de memoria intermedia de imagen decodificada y al componente 225 de filtros en bucle, respectivamente. El componente 425 de filtros en bucle filtra los bloques de imagen reconstruidos, los bloques residuales y/o los bloques de predicción, y dicha información se almacena en el componente 423 de memoria intermedia de imagen decodificada. Los bloques de imagen reconstruidos del componente 423 de memoria intermedia de imágenes decodificadas se envían a un componente 421 de compensación de movimiento para la inter-predicción. El componente 421 de compensación de movimiento puede ser sustancialmente similar al componente 221 de estimación de movimiento y/o al componente 219 de compensación de movimiento. Específicamente, el componente 421 de compensación de movimiento emplea vectores de movimiento de un bloque de referencia para generar un bloque de predicción y aplica un bloque residual al resultado para reconstruir un bloque de imagen. Los bloques reconstruidos resultantes también pueden ser enviados a través del componente 425 de filtros en bucle al componente 423 de memoria intermedia de imagen decodificada. El componente 423 de memoria intermedia de imágenes decodificadas continúa almacenando bloques de imagen reconstruidos adicionales, que pueden reconstruirse en tramas a través de la información de partición. Dichas tramas también pueden colocarse en una secuencia. La secuencia se emite hacia un elemento de visualización como una señal de video de salida reconstruida.
Teniendo en cuenta lo anterior, las técnicas de compresión de video realizan una predicción espacial (intraimagen) y/o temporal (inter-imagen) para reducir o eliminar la redundancia inherente a las secuencias de video. Para la codificación de video basada en bloques, un fragmento de video (es decir, una imagen de video o una parte de una imagen de video) puede dividirse en bloques de video, que también pueden denominarse bloques de árbol, bloques de árbol de codificación (CTB), unidades de árbol de codificación (CTU), unidades de codificación (CU) y/o nodos de codificación. Los bloques de video en un segmento intra-codificado (I) de una imagen se codifican usando la predicción espacial con respecto a las muestras de referencia en los bloques vecinos de la misma imagen. Los bloques de video en un segmento inter-codificado (P o B) de una imagen pueden usar 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 pueden denominarse tramas y las imágenes de referencia pueden denominarse tramas de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan las diferencias de píxeles entre el bloque original a codificar y el bloque predictivo. Un bloque inter-codificado se codifica según un vector de movimiento que apunta a un bloque de muestras de referencia que forma el bloque predictivo, y los datos residuales indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra-codificado se codifica según un modo de intra-codificación y los datos residuales. Para una mayor compresión, los datos residuales pueden transformarse del dominio de los píxeles a un dominio de transformada, lo que da lugar a coeficientes de transformada residuales, que luego pueden cuantificarse. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, pueden escanearse para producir un vector unidimensional de coeficientes de transformada, y puede aplicarse la codificación de entropía para lograr una compresión aún mayor.
La compresión de imagen y video ha experimentado un rápido crecimiento, lo que ha dado lugar a diversas normas de codificación. Entre estas normas de codificación de video se encuentran la UIT-T H.261, la Organización Internacional de Normalización/Comisión Electrotécnica Internacional (ISO/IEC) MPEG-1 Parte 2, la UIT-T H.262 o la ISO/IEC MPEG-2 Parte 2, la UIT-T H.263, la ISO/IEC MPEG-4 Parte 2, la Codificación de Video Avanzada (AVC), también conocida como UIT-T H.264 o ISO/IEC MPEG-4 Parte 10, y la Codificación de Video de Alta Eficiencia (HEVC), también conocida como UIT-T H.265 o MPEG-H Parte 2. AVC incluye extensiones como Codificación de Video Escalable (SVC), Codificación de Video Multivistas (MVC) y Codificación de Video Multivistas de más Profundidad (MVC+D), y 3D AVC (3D-AVC). HEVC incluye extensiones como HEVC Escalable (SHVC), HEVC Multivistas (MV-HEVC) y 3D HEVC (3D-HEVC).
También existe una nueva norma de codificación de video, denominada Codificación de Video Versátil (VVC), que está siendo desarrollada por el equipo conjunto de expertos en video (JVET) del UIT-T y la ISO/IEC. Aunque el estándar VVC tiene varios borradores de trabajo, se hace referencia a un borrador de trabajo (WD) de VVC en particular, a saber, B. Bross, J. Chen y S. Liu, "Versatile Video Coding (Draft 5)", JVET-N1001-v3, 13a reunión del JVET, 27 de marzo de 2019 (VVC Borrador 5).
La descripción de las técnicas descritas en este documento se basa en la norma de codificación de video Codificación de Video Versátil(VVC), en fase de desarrollo, del equipo junta de expertos en video (JVET) del UIT-T y la ISO/IEC. No obstante, las técnicas también son aplicables a otras especificaciones de códecs de video.
La FIG. 5 es una representación 500 de una relación entre una imagen 502 de punto de acceso aleatorio interno (IRAP) en relación con las imágenes 504 principales y las imágenes 506 de seguimiento en un orden 508 de decodificación y un orden 510 de presentación. En una modalidad, la imagen IRAP 502 se denomina imagen de acceso aleatorio limpio (CRA) o imagen de actualización instantánea del decodificador (IDR) con acceso aleatorio decodificable (RADL). En HEVC, las imágenes IDR, las imágenes CRA y las imágenes de Acceso de Enlace Roto (BLA) se consideran todas ellas imágenes IRAP 502. Para VVC, durante la 12a reunión del JVET en octubre de 2018, se acordó tener tanto las imágenes IDR como las CRA como imágenes IRAP. En una modalidad, las imágenes de Acceso de Enlace Roto (BLA) y Actualización de Decodificador Gradual (GDR) también pueden considerarse imágenes IRAP. El proceso de decodificación de una secuencia de video codificada siempre comienza en un IRAP.
Como se muestra en la FIG. 5, las imágenes 504 principales (por ejemplo, las imágenes 2 y 3) siguen a la imagen 502 IRAP en el orden 508 de decodificación, pero preceden a la imagen 502 IRAP en el orden 510 de presentación. La imagen 506 de seguimiento sigue a la imagen 502 IRAP tanto en el orden 508 de decodificación como en el orden 510 de presentación. Mientras que en la FIG. 5 se representan dos imágenes principales 504 y una imagen 506 de seguimiento, los expertos en la materia apreciarán que en el orden 508 de decodificación y en el orden 510 de presentación pueden estar presentes más o menos imágenes 504 principales y/o imágenes 506 de seguimiento en aplicaciones prácticas.
Las imágenes 504 principales de la FIG. 5 se han dividido en dos tipos, a saber, de acceso aleatorio saltado (RASL) y RADL. Cuando la decodificación comienza con la imagen 502 IRAP (por ejemplo, la imagen 1), la imagen RADL (por ejemplo, la imagen 3) puede ser decodificada correctamente; sin embargo, la imagen RASL (por ejemplo, la imagen 2) no puede ser decodificada correctamente. Por lo tanto, la imagen RASL se descarta. A la luz de la distinción entre imágenes RADL y RASL, el tipo de imagen 504 principal asociada a la imagen 502 IRAP debe identificarse como RADL o RASL para una codificación eficiente y adecuada. En HEVC, cuando hay imágenes RASL y RADL, se exige que para las imágenes RASL y RADL asociadas a la misma imagen 502 IRAP, las imágenes RASL precedan a las RADL en el orden 510 de presentación.
Una imagen 502 IRAP proporciona las siguientes dos importantes funcionalidades/beneficios. En primer lugar, la presencia de una imagen 502 IRAP indica que el proceso de decodificación puede comenzar a partir de esa imagen. Esta funcionalidad permite una función de acceso aleatorio en la que el proceso de decodificación se inicia en esa posición del flujo de bits, no necesariamente al principio del flujo de bits, siempre que haya una imagen 502 IRAP en esa posición. En segundo lugar, la presencia de una imagen 502 IRAP refresca el proceso de decodificación de manera que una imagen codificada que comienza en la imagen 502 IRAP, excluyendo las imágenes RASL, se codifica sin ninguna referencia a las imágenes anteriores. La presencia de una imagen 502 IRAP en el flujo de bits impedirá que cualquier error que pueda producirse durante la decodificación de las imágenes codificadas anteriores a la imagen 502 IRAP se propague a la imagen 502 IRAP y a las imágenes que siguen a la imagen 502 IRAP en el orden 508 de decodificación.
Aunque las imágenes 502 IRAP proporcionan importantes funcionalidades, tienen una penalización en la eficiencia de la compresión. La presencia de una imagen 502 IRAP provoca un aumento de la tasa de bits. Esta penalización de la eficacia de la compresión se debe a dos razones. En primer lugar, como la imagen 502 IRAP es una imagen de intra-predicción, la imagen en sí misma requeriría relativamente más bits para ser representada en comparación con otras imágenes (por ejemplo, imágenes 504 principales, imágenes 506 de seguimiento) que son imágenes de inter-predicción. En segundo lugar, dado que la presencia de una imagen 502 IRAP rompe la predicción temporal (esto se debe a que el decodificador refrescaría el proceso de decodificación, en el que una de las acciones del proceso de decodificación para esto es eliminar las imágenes de referencia anteriores en la memoria intermedia de imágenes decodificadas (DPB)), la imagen 502 IRAP hace que la codificación de las imágenes que siguen a la imagen 502 IRAP en el orden 508 de decodificación sea menos eficiente (es decir, necesita más bits para representar) porque tienen menos imágenes de referencia para su codificación de inter-predicción.
Entre los tipos de imagen que se consideran imágenes 502 IRAP, la imagen IDR en HEVC tiene una señalización y derivación diferentes cuando se compara con otros tipos de imagen. Algunas de las diferencias son las siguientes.
Para la señalización y la derivación de un valor de recuento de orden de imágenes (POC) de una imagen IDR, la parte del bit más significativo (MSB) del POC no se deriva de la imagen clave anterior, sino que simplemente se establece igual a 0.
En cuanto a la información de señalización necesaria para la gestión de la imagen de referencia, la cabecera de una imagen IDR no contiene la información necesaria para la gestión de la imagen de referencia. Para otros tipos de imágenes (es decir, CRA, Seguimiento, acceso temporal a la subcapa (TSA), etc.), se necesita información como el conjunto de imágenes de referencia (RPS) descrito a continuación u otras formas de información similar (por ejemplo, listas de imágenes de referencia) para el proceso de marcado de las imágenes de referencia (es decir, el proceso para determinar el estado de las imágenes de referencia en la memoria intermedia de imágenes decodificadas (DPB), ya sean usadas para la referencia o no usadas para la referencia). Sin embargo, en el caso de la imagen IDR, no es necesario señalizar dicha información porque la presencia de IDR indica que el proceso de decodificación simplemente marcará todas las imágenes de referencia en la DPB como no usadas para referencia.
Además del concepto de imágenes IRAP, también hay imágenes principales que, si están presentes, están asociadas a una imagen IRAP. Las imágenes principales son las que siguen a su imagen IRAP asociada en el orden de decodificación, pero preceden a la imagen IRAP en el orden de salida. Dependiendo de la configuración de codificación y de la estructura de referencia de las imágenes, las imágenes principales se dividen en dos tipos. El primer tipo son las imágenes principales que pueden no ser decodificadas correctamente si el proceso de decodificación comienza en su imagen IRAP asociada. Esto puede ocurrir porque estas imágenes principales se codifican con referencia a las imágenes que preceden a la imagen IRAP en el orden de decodificación. Estas imágenes principales se denominan de acceso aleatorio omitido (RASL). El segundo tipo son las imágenes principales que se decodifican correctamente aunque el proceso de decodificación comience en su imagen IRAP asociada. Esto es posible porque estas imágenes principales se codifican sin hacer referencia directa o indirecta a las imágenes que preceden a la imagen IRAP en el orden de decodificación. Estas imágenes principales se denominan imágenes principales decodificables de acceso aleatorio (RADL). En HEVC, cuando hay imágenes RASL y RADL, se exige que para las imágenes RASL y RADL asociadas a la misma imagen IRAP, las imágenes RASL precedan a las RADL en el orden de salida. En HEVC y VVC, las imágenes 502 IRAP y las imágenes 504 principales pueden estar contenidas en una única unidad de capa de abstracción de red (NAL). Un conjunto de unidades NAL puede denominarse unidad de acceso. Las imágenes 502 IRAP y las imágenes 504 principales reciben diferentes tipos de unidades NAL para que puedan ser fácilmente identificadas por las aplicaciones a nivel de sistema. Por ejemplo, un empalmador de video necesita entender los tipos de imágenes codificadas sin tener que entender demasiado detalle del elemento de sintaxis en el flujo de bits codificado, en particular para identificar las imágenes 502 IRAP de las imágenes no IRAP y para identificar las imágenes 504 principales, incluyendo la determinación de las imágenes RASL y RADL, de las imágenes 506 de seguimiento. Las imágenes 506 de seguimiento son aquellas imágenes que están asociadas con una imagen 502 IRAP y siguen a la imagen 502 IRAP en el orden 510 de presentación. Una imagen puede seguir a la imagen 502 IRAP en el orden 508 de decodificación y preceder a cualquier otra imagen 502 IRAP en el orden 508 de decodificación. Para ello, dar a las imágenes 502 IRAP y a las imágenes 504 principales su propio tipo de unidad NAL ayuda a estas aplicaciones.
En el caso de HEVC, los tipos de unidades NAL para las imágenes IRAP son los siguientes
BLA con imagen principal (BLA_W_LP): Unidad NAL de una imagen de Acceso de Enlace Roto (BLA) que puede ir seguida de una o más imágenes principales en el orden de decodificación.
BLA con RADL (BLA_W_RADL): Unidad NAL de una imagen BLA que puede ir seguida de una o más imágenes RADL pero no de una imagen RASL en el orden de decodificación.
BLA sin imagen principal (BLA_N_LP): Unidad NAL de una imagen BLA que no va seguida de una imagen principal en el orden de decodificación.
IDR con RADL (IDR_W_RADL): Unidad NAL de una imagen IDR que puede ir seguida de una o más imágenes RADL pero no de una imagen RASL en el orden de decodificación.
IDR sin imagen principal (IDR_N_LP): Unidad NAL de una imagen IDR que no va seguida de una imagen principal en el orden de decodificación.
CRA: Unidad NAL de una imagen de acceso aleatorio limpio (CRA) que puede ir seguida de imágenes principales (es decir, imágenes RASL o imágenes RADL o ambas).
RADL: Unidad NAL de una imagen RADL.
RASL: Unidad NAL de una imagen RASL.
Para VVC, el tipo de unidad NAL para las imágenes 502 IRAP y las imágenes 504 principales son las siguientes: IDR con RADL (IDR_W_RADL): Unidad NAL de una imagen IDR que puede ir seguida de una o más imágenes RADL pero no de una imagen RASL en el orden de decodificación.
IDR sin imagen principal (IDR_N_LP): Unidad NAL de una imagen IDR que no va seguida de una imagen principal en el orden de decodificación.
CRA: Unidad NAL de una imagen de acceso aleatorio limpio (CRA) que puede ir seguida de imágenes principales (es decir, imágenes RASL o imágenes RADL o ambas).
RADL: Unidad NAL de una imagen RADL.
RASL: Unidad NAL de una imagen RASL.
La función de remuestreo de imagen de referencia (RPR) es la capacidad de cambiar la resolución espacial de las imágenes codificadas en medio de un flujo de bits sin necesidad de la intracodificación de la imagen en el lugar de cambio de resolución. Para ello, es necesario que una imagen pueda referirse a una o más imágenes de referencia cuya resolución espacial sea diferente a la de la imagen actual, con el fin de realizar una predicción interna. En consecuencia, es necesario remuestrear dicha imagen de referencia, o parte de ella, para la codificación y decodificación de la imagen actual. De ahí el nombre RPR. Esta función también puede denominarse cambio de resolución adaptativo (ARC) u otros nombres. Hay casos de uso o escenarios de aplicación que se beneficiarían de la función RPR, entre ellos los siguientes.
Adaptación de tasa en la videotelefonía y conferencia. Sirve para adaptar el video codificado a las condiciones cambiantes de la red. Cuando las condiciones de la red empeoran y el ancho de banda disponible es menor, el codificador puede adaptarse codificando imágenes de menor resolución.
Cambio del orador activo en las videoconferencias multi-partes. En las videoconferencias multi-partes, es habitual que el tamaño del video para el orador activo sea mayor o más grande que el tamaño del video para el resto de los participantes en la conferencia. Cuando el orador activo cambia, es posible que también haya que ajustar la resolución de la imagen de cada participante. La necesidad de disponer de funciones ARC se hace más importante cuando el cambio de orador activo se produce con frecuencia.
Inicio rápido en transmisión. Para una aplicación de transmisión, es habitual que la aplicación almacene en el memoria intermedia una determinada longitud de imagen decodificada antes de empezar a mostrar las imágenes. Empezar el flujo de bits con una resolución más pequeña permitiría a la aplicación tener suficientes imágenes en el memoria intermedia para empezar a mostrarlas más rápidamente.
Cambio de flujo adaptativo en transmisión. La especificación de Transmisión Adaptativa Dinámica sobre HTTP (DASH) incluye una función denominada @mediaStreamStructureId. Esta función permite cambiar entre diferentes representaciones en puntos de acceso aleatorio de grupo abierto de imágenes (GOP) con imágenes principales no decodificables, por ejemplo, imágenes CRA con imágenes RASL asociadas en HEVC. Cuando dos representaciones diferentes del mismo video tienen diferentes tasas de bits pero la misma resolución espacial y tienen el mismo valor de @mediaStreamStructureId, se puede realizar la conmutación entre las dos representaciones en una imagen CRA con imágenes RASL asociadas, y las imágenes RASL asociadas con las imágenes CRA conmutadas pueden decodificarse con una calidad aceptable, lo que permite una conmutación sin fisuras. Con ARC, la función @mediaStreamStructureId también podría utilizarse para cambiar entre representaciones DASH con diferentes resoluciones espaciales.
Diversos métodos facilitan las técnicas básicas de apoyo a la RPR / ARC, como la señalización de listas de resoluciones de imágenes, algunas restricciones de remuestreo de imágenes de referencia en la DPB, etc.
Uno de los componentes de la técnica necesaria para soportar la RPR es un método para señalizar las resoluciones de imagen que pueden estar presentes en el flujo de bits. Esto se aborda en algunos ejemplos cambiando la señalización actual de una resolución de imagen con una lista de resoluciones de imagen en el SPS, como se muestra a continuación.
Durante la 15a reunión de JVET, se discutió otra variante de señalización de tamaño de imagen y ventanas de conformidad para soportar RPR. La señalización es la siguiente.
Señalizar el tamaño máximo de la imagen (es decir, la anchura y la altura de la imagen) en SPS Señalizar el tamaño de la imagen en el conjunto de parámetros de la imagen (PPS)
Mover la señalización actual de las ventanas de conformidad de SPS a PPS. La información de la ventana de conformidad se usa para recortar las imágenes reconstruidas/decodificadas en el proceso de preparación de la imagen para su salida. El tamaño de la imagen recortada es el tamaño de la imagen después de haberla recortado utilizando su ventana de conformidad asociada.
La señalización de las ventanas de tamaño y conformidad de la imagen es la siguiente.
Es un requisito de la conformidad del flujo de bits que se cumplan todas las condiciones siguientes para cada imagen de referencia activa cuya anchura y altura sean reference_pic_width_in_luma_samples y reference_pic_height_in_luma_samples:
- 2 * pic_width_in_luma_samples >= reference_pic_width_in_luma_samples
- 2 * pic_height_in_luma_samples >= reference_pic_height_in_luma_samples
- pic_width_in_luma_samples <= 8 * reference_pic_width_in_luma_samples
- pic_height_in_luma_samples <= 8 * reference_pic_height_in_luma_samples
Las variables PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC y PicHeightInSamplesC se derivan como sigue: PicWidthInCtbsY = Ceil( pic_width_in_luma_samples CtbSizeY ) (1) PicHeightInCtbsY = Ceil( pic_height_in_luma_samples - CtbSizeY ) (2) PicSizeInCtbsY = PicWidthInCtbsY * PicHeightInCtbsY (3) PicWidthInMinCbsY = pic_width_in_luma_samples / MinCbSizeY (4) PicHeightInMinCbsY = pic_height_in_luma_samples / MinCbSizeY (5) PicSizeInMinCbsY = PicWidthInMinCbsY * PicHeightInMinCbsY (6) PicSizeInSamplesY = pic_width_in_luma_samples * pic_height_in_luma_samples (7) PicWidthInSamplesC = pic_width_in_luma_samples / SubWidthC (8) PicHeightInSamplesC = pic_height_in_luma_samples / SubHeightC (9) conformance_window_flag igual a 1 indica que los parámetros de offset de la ventana de recorte de conformidad siguen a continuación en el PPS. conformance_window_flag igual a 0 indica que los parámetros de offset de la ventana de recorte de conformidad no están presentes.
conf_win_left_offset, conf_win_right_offset, conf_win_top_offset y conf_win_bottom_offset especifican las muestras de las imágenes que hacen referencia al PPS y que salen del proceso de decodificación, en términos de una región rectangular especificada en coordenadas de imagen para la salida. Cuando conformance_window_flag es igual a 0, se infiere que los valores de conf_win_left_offset, conf_win_right_offset, conf_win_top_offset y conf_win_bottom_offset son iguales a 0.
La ventana de recorte de conformidad contiene las muestras de luma con coordenadas de imagen horizontales desde SubWidthC * conf_win_left_offset hasta pic_width_in_luma_samples - ( SubWidthC * conf_win_right_offset 1 ) y coordenadas de imagen verticales desde SubHeightC * conf_win_top_offset hasta pic_height_in_luma_samples - ( SubHeightC * conf_win_ bottom_offset 1 ), inclusive.
El valor de SubWidthC * ( conf_win_left_offset conf_win_right_offset ) deberá ser menor que pic_width_in_luma_samples, y el valor de SubHeightC * ( conf_win_top_offset conf_win_bottom_offset ) deberá ser menor que pic_height_in_luma_samples.
Las variables PicOutputWidthL y PicOutputHeightL se derivan como sigue:
PicOutputWidthL = pic_width_in_luma_samples - (10) SubWidthC * ( conf_win_right_offset conf_win_left_offset )
PicOutputHeightL = pic_height_in_pic_size_units - (11)
SubHeightC * ( conf_win_bottom_offset conf_win_top_offset )
Cuando ChromaArrayType no es igual a 0, las correspondientes muestras especificadas de las dos matrices de croma son las muestras que tienen coordenadas de imagen ( x / SubWidthC, y / SubHeightC ), donde ( x, y ) son las coordenadas de imagen de las muestras de luma especificadas.
NOTA - Los parámetros de desplazamiento de la ventana de recorte de conformidad sólo se aplican a la salida. Todos los procesos internos de decodificación se aplican al tamaño de la imagen sin recortar.
La señalización del tamaño de la imagen y la ventana de conformidad en PPS introduce los siguientes problemas.
- Debido a que en una secuencia de video codificada (CVS) pueden estar presentes múltiples PPS, es posible que dos PPS contengan la misma señalización de tamaño de imagen pero diferente señalización de ventanas de conformidad. Esto dará lugar a una situación en la que dos imágenes, referidas a un PPS diferente, tengan el mismo tamaño de imagen pero un tamaño de recorte diferente.
- Para soportar la RPR, se ha sugerido desactivar varias herramientas de codificación para la codificación de un bloque cuando la imagen actual y la imagen de referencia del bloque tienen diferentes tamaños de imagen. Sin embargo, dado que ahora es posible que el tamaño de recorte también sea diferente aunque las dos imágenes tengan el mismo tamaño de imagen, es necesario tener una comprobación adicional basada en el tamaño de recorte.
En el presente documento se describen técnicas que restringen los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen para que también tengan el mismo tamaño de ventana de conformidad (por ejemplo, tamaño de ventana de recorte). Al mantener la ventana de conformidad del mismo tamaño para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen, se puede evitar el procesamiento excesivamente complejo cuando se habilita el remuestreo de imagen de referencia (RPR). De este modo, se puede reducir el uso del procesador, la memoria y/o los recursos de red tanto en el codificador como en el decodificador. Así, el codificador/decodificador (también conocido como "códec") en la codificación de video se mejora en relación con los códecs actuales. En la práctica, el proceso de codificación de video mejorado ofrece al usuario una mejor experiencia cuando se envían, reciben y/o visualizan videos.
La escalabilidad en la codificación de video suele apoyarse en técnicas de codificación multicapa. Un flujo de bits multicapa comprende una capa base (BL) y una o más capas de mejora (EL). Un ejemplo de escalabilidad es la escalabilidad espacial, la escalabilidad de calidad/señal de ruido (SNR), la escalabilidad multivista, etc. Cuando se usa una técnica de codificación multicapa, una imagen o una parte de la misma puede codificarse (1) sin usar una imagen de referencia, es decir, usando la predicción intracapa; (2) haciendo referencia a imágenes de referencia que están en la misma capa, es decir, usando la predicción intercapa; o (3) haciendo referencia a imágenes de referencia que están en otra capa o capas, es decir, usando la predicción intercapa. Una imagen de referencia usada para la predicción entre capas de la imagen actual se denomina imagen de referencia entre capas (ILRP).
La FIG. 6 es un diagrama esquemático que ilustra un ejemplo de predicción 600 basada en capas, por ejemplo, tal como se realiza para determinar los VM en el paso 105 de compresión de bloques, el paso 113 de decodificación de bloques, el componente 221 de estimación de movimiento, el componente 219 de compensación de movimiento, el componente 321 de compensación de movimiento, y/o el componente 421 de compensación de movimiento. La predicción 600 basada en capas es compatible con la inter-predicción unidireccional y/o la inter-predicción bidireccional, pero también se realiza entre imágenes de diferentes capas.
La predicción 600 basada en capas se aplica entre las imágenes 611, 612, 613 y 614 y las imágenes 615, 616, 617 y 618 en diferentes capas. En el ejemplo mostrado, las imágenes 611, 612, 613 y 614 forman parte de la capa N+1 632 y las imágenes 615, 616, 617 y 618 forman parte de la capa N 631. Una capa, como la capa N 631 y/o la capa N+1 632, es un grupo de imágenes que están todas asociadas con un valor similar de una característica, como un tamaño, calidad, resolución, relación señal/ruido, capacidad, etc. similares. En el ejemplo mostrado, la capa N+1 632 está asociada con un tamaño de imagen mayor que la capa N 631. En consecuencia, las imágenes 611, 612, 613 y 614 de la capa N+1 632 tienen un tamaño de imagen mayor (por ejemplo, mayor altura y anchura y, por tanto, más muestras) que las imágenes 615, 616, 617 y 618 de la capa N 631 en este ejemplo. Sin embargo, tales imágenes pueden ser separadas entre la capa N+1 632 y la capa N 631 por otras características. Aunque sólo se muestran dos capas, la capa N+1 632 y la capa N 631, un conjunto de imágenes puede separarse en cualquier número de capas basándose en las características asociadas. La capa N+1632 y la capa N 631 también pueden ser denotadas por un ID de capa. Un ID de capa es un elemento de datos que se asocia con una imagen y denota que la imagen es parte de una capa indicada. En consecuencia, cada imagen 611-618 puede estar asociada con un ID de capa correspondiente para indicar qué capa N+1 632 o capa N 631 incluye la imagen correspondiente.
Las imágenes 611-618 en diferentes capas 631-632 están configuradas para ser mostradas en la alternativa. Como tal, las imágenes 611-618 en diferentes capas 631-632 pueden compartir el mismo identificador temporal (ID) y pueden ser incluidas en la misma AU. Como se usa en el presente documento, una AU es un conjunto de una o más imágenes codificadas asociadas con el mismo tiempo de visualización para la salida de un DPB. Por ejemplo, un decodificador puede decodificar y mostrar la imagen 615 en un tiempo de visualización actual si se desea una imagen más pequeña o el decodificador puede decodificar y mostrar la imagen 611 en el tiempo de visualización actual si se desea una imagen más grande. Así, las imágenes 611-614 de la capa superior N+1 632 contienen sustancialmente los mismos datos de imagen que las correspondientes imágenes 615- 618 de la capa inferior N 631 (a pesar de la diferencia de tamaño de la imagen). Específicamente, la imagen 611 contiene sustancialmente los mismos datos de imagen que 615, la imagen 612 contiene sustancialmente los mismos datos de imagen que la imagen 616, etc.
Las imágenes 611-618 pueden ser codificadas por referencia a otras imágenes 611-618 en la misma capa N 631 o N+1 632. La codificación de una imagen en referencia a otra imagen de la misma capa da lugar a la inter-predicción 623, que es compatible con la inter-predicción unidireccional y/o la inter-predicción bidireccional. La inter-predicción 623 se representa con flechas de línea continua. Por ejemplo, la imagen 613 puede codificarse empleando la inter-predicción 623 usando una o dos de las imágenes 611, 612, y/o 614 en la capa N+1 632 como referencia, donde una imagen es referencia para la inter-predicción unidireccional y/o dos imágenes son referencia para la inter-predicción bidireccional. Además, la imagen 617 puede ser codificada empleando la inter-predicción 623 usando una o dos de las imágenes 615, 616, y/o 618 en la capa N 631 como referencia, donde una imagen es referenciada para la inter-predicción unidireccional y/o dos imágenes son referencia para la inter-predicción bidireccional. Cuando una imagen se utiliza como referencia para otra imagen en la misma capa al realizar la inter-predicción 623, la imagen puede ser referida como una imagen de referencia. Por ejemplo, la imagen 612 puede ser una imagen de referencia usada para codificar la imagen 613 según la inter-predicción 623. La inter-predicción 623 también puede denominarse predicción intracapa en un contexto multicapa. Como tal, la inter-predicción 623 es un mecanismo de codificación de muestras de una imagen actual por referencia a muestras indicadas en una imagen de referencia que es diferente de la imagen actual donde la imagen de referencia y la imagen actual están en la misma capa.
Las imágenes 611-618 también pueden ser codificadas por referencia a otras imágenes 611-618 en diferentes capas. Este proceso se conoce como predicción 621 entre capas, y se representa con flechas discontinuas. La predicción 621 entre capas es un mecanismo de codificación de muestras de una imagen actual por referencia a las muestras indicadas en una imagen de referencia en la que la imagen actual y la imagen de referencia están en diferentes capas y, por tanto, tienen diferentes ID de capa. Por ejemplo, una imagen en una capa N 631 inferior puede usarse como imagen de referencia para codificar una imagen correspondiente en una capa N+1 632 superior. Como ejemplo específico, la imagen 611 puede ser codificada por referencia a la imagen 615 según la predicción 621 entre capas. En este caso, la imagen 615 se usa como imagen de referencia entre capas. Una imagen de referencia entre capas es una imagen de referencia usada para la predicción 621 entre capas. En la mayoría de los casos, la predicción 621 entre capas está restringida de manera que una imagen actual, como la imagen 611, sólo puede usar una imagen o imágenes de referencia entre capas que estén incluidas en la misma AU y que estén en una capa inferior, como la imagen 615. Cuando se dispone de múltiples capas (por ejemplo, más de dos), la predicción 621 entre capas puede codificar/decodificar una imagen actual basándose en múltiples imágenes de referencia entre capas en niveles inferiores a la imagen actual.
Un codificador de video puede emplear la predicción 600 basada en capas para codificar las imágenes 611 618 a través de muchas combinaciones y/o permutaciones diferentes de la inter-predicción 623 y la predicción 621 entre capas. Por ejemplo, la imagen 615 puede ser codificada según la intra-predicción. Las imágenes 616- 618 pueden entonces ser codificadas según la inter-predicción 623 usando la imagen 615 como imagen de referencia. Además, la imagen 611 puede codificarse según la predicción 621 entre capas usando la imagen 615 como imagen de referencia entre capas. Las imágenes 612-614 pueden entonces ser codificadas según la inter-predicción 623 usando la imagen 611 como imagen de referencia. De este modo, una imagen de referencia puede servir tanto como imagen de referencia de una capa como imagen de referencia entre capas para diferentes mecanismos de codificación. Al codificar las imágenes de la capa N+1632 superior basándose en las imágenes de la capa N 631 inferior, la capa N+1 632 superior puede evitar emplear la intra-predicción, que tiene una eficiencia de codificación mucho menor que la inter-predicción 623 y la inter-predicción 621. De este modo, la pobre eficiencia de codificación de la intra-predicción puede limitarse a las imágenes más pequeñas/de menor calidad, y por lo tanto limitarse a la codificación de la menor cantidad de datos de video. Las imágenes usadas como imágenes de referencia y/o imágenes de referencia entre capas pueden indicarse en entradas de lista o listas de imágenes de referencia contenidas en una estructura de lista de imágenes de referencia.
Las anteriores familias de codificación de video H.26x han proporcionado soporte para la escalabilidad en un perfil o perfiles separados del perfil o perfiles para la codificación de una sola capa. La codificación de video escalable (SVC) es la extensión escalable de AVC/H.264 que ofrece soporte para escalabilidad espacial, temporal y de calidad. Para la SVC, se señala una bandera en cada macrobloque (MB) en las imágenes EL para indicar si el EL MB se predice usando el bloque colocado de una capa inferior. La predicción del bloque colocado puede incluir textura, vectores de movimiento y/o modos de codificación. Las implementaciones de SVC no pueden reutilizar directamente implementaciones H.264/AVC no modificadas en su diseño. La sintaxis y el proceso de decodificación del macrobloque SVC EL difieren de la sintaxis y el proceso de decodificación de H.264/AVC.
El HEVC escalable (SHVC) es la extensión de la norma HEVC/H.265 que ofrece soporte para la escalabilidad espacial y de calidad, el HEVC multivista (MV-HEVC) es la extensión del HEVC/H.265 que ofrece soporte para la escalabilidad multivista, y el HEVC 3D (3D-HEVC) es la extensión del HEVC/H.264 que ofrece soporte para la codificación de video tridimensional (3D) que es más avanzada y más eficiente que MV-HEVC. Cabe destacar que la escalabilidad temporal se incluye como parte integral del códec HEVC de una sola capa. El diseño de la extensión multicapa de HEVC emplea la idea de que las imágenes decodificadas utilizadas para la predicción entre capas proceden únicamente de la misma unidad de acceso (AU) y se tratan como imágenes de referencia a largo plazo (LTRP), y se les asignan índices de referencia en la lista o listas de imágenes de referencia junto con otras imágenes de referencia temporal en la capa actual. La predicción entre capas (ILP) se consigue en el nivel de la unidad de predicción (PU) estableciendo el valor del índice de referencia para que se refiera a la imagen o imágenes de referencia entre capas en la lista o listas de imágenes de referencia.
En particular, tanto el remuestreo de la imagen de referencia como la escalabilidad espacial requieren el remuestreo de una imagen de referencia o de una parte de ella. El remuestreo de la imagen de referencia puede realizarse tanto a nivel de imagen como de bloque de codificación. Sin embargo, cuando se habla de RPR como característica de codificación, se trata de una característica para la codificación de una sola capa. Aun así, es posible o incluso preferible desde el punto de vista del diseño del códec utilizar el mismo filtro de remuestreo tanto para la característica RPR de la codificación monocapa como para la característica de escalabilidad espacial de la codificación multicapa.
La FIG. 7 es un diagrama esquemático que ilustra un ejemplo de inter-predicción 700 unidireccional. La inter predicción 700 unidireccional puede ser empleada para determinar los vectores de movimiento para los bloques codificados y/o decodificados creados al dividir una imagen.
La inter-predicción 700 unidireccional emplea una trama 730 de referencia con un bloque 731 de referencia para predecir un bloque 711 actual en una trama 710 actual. La trama 730 de referencia puede estar posicionada temporalmente después de la trama 710 actual como se muestra (por ejemplo, como una trama de referencia posterior), pero también puede estar posicionada temporalmente antes de la trama 710 actual (por ejemplo, como una trama de referencia anterior) en algunos ejemplos. La trama 710 actual es un ejemplo de trama/imagen que se está codificando/decodificando en un momento determinado. La trama 710 actual contiene un objeto en el bloque 711 actual que corresponde con un objeto en el bloque 731 de referencia de la trama 730 de referencia. La trama 730 de referencia es una trama que se emplea como referencia para codificar la trama 710 actual, y un bloque 731 de referencia es un bloque de la trama 730 de referencia que contiene un objeto también contenido en el bloque 711 actual de la trama 710 actual.
El bloque 711 actual es cualquier unidad de codificación que está siendo codificada/decodificada en un punto específico del proceso de codificación. El bloque 711 actual puede ser un bloque entero particionado, o puede ser un sub-bloque cuando se emplea el modo de inter-predicción afín. La trama 710 actual está separada de la trama 730 de referencia por una distancia 733 temporal (TD). La TD 733 indica una cantidad de tiempo entre la trama 710 actual y la trama 730 de referencia en una secuencia de video, y puede medirse en unidades de tramas. La información de predicción para el bloque 711 actual puede hacer referencia a la trama 730 de referencia y/o al bloque 731 de referencia mediante un índice de referencia que indica la dirección y la distancia temporal entre las tramas. Durante el período de tiempo representado por el TD 733, el objeto del bloque 711 actual se mueve desde una posición en la trama 710 actual a otra posición en la trama 730 de referencia (por ejemplo, la posición del bloque 731 de referencia). Por ejemplo, el objeto puede moverse a lo largo de una trayectoria 713 de movimiento, que es una dirección de movimiento de un objeto en el tiempo. Un vector 735 de movimiento describe la dirección y la magnitud del movimiento del objeto a lo largo de la trayectoria 713 de movimiento sobre el TD 733. En consecuencia, un vector 735 de movimiento codificado, un bloque 731 de referencia y un residuo que incluye la diferencia entre el bloque 711 actual y el bloque 731 de referencia proporcionan información suficiente para reconstruir un bloque 711 actual y posicionar el bloque 711 actual en la trama 710 actual.
La FIG. 8 es un diagrama esquemático que ilustra un ejemplo de inter-predicción 800 bidireccional. La inter predicción 800 bidireccional puede ser empleada para determinar los vectores de movimiento para los bloques codificados y/o decodificados creados al dividir una imagen.
La inter-predicción 800 bidireccional es similar a la inter-predicción 700 unidireccional, pero emplea un par de tramas de referencia para predecir un bloque 811 actual en una trama 810 actual. Por lo tanto, la trama 810 actual y el bloque 811 actual son sustancialmente similares a la trama 710 actual y al bloque 711 actual, respectivamente. La trama 810 actual se sitúa temporalmente entre una trama 820 de referencia precedente, que ocurre antes de la trama 810 actual en la secuencia de video, y una trama 830 de referencia posterior, que ocurre después de la trama 810 actual en la secuencia de video. La trama 820 de referencia precedente y la trama 830 de referencia posterior son, por lo demás, sustancialmente similares a la trama 730 de referencia.
El bloque 811 actual corresponde con un bloque 821 de referencia precedente en la trama 820 de referencia precedente y con un bloque 831 de referencia posterior en la trama 830 de referencia posterior. Esta correspondencia indica que, en el transcurso de la secuencia de video, un objeto se mueve desde una posición en el bloque 821 de referencia precedente hasta una posición en el bloque 831 de referencia posterior a lo largo de una trayectoria 813 de movimiento y a través del bloque 811 actual. La trama 810 actual está separado de la trama 820 de referencia precedente por alguna distancia 823 temporal precedente (TD0) y separado de la trama 830 de referencia posterior por alguna distancia 833 temporal posterior (TD1). La TD0823 indica una cantidad de tiempo entre la trama 820 de referencia precedente y la trama 810 actual en la secuencia de video en unidades de tramas. La TD1 833 indica una cantidad de tiempo entre la trama 810 actual y la trama 830 de referencia posterior en la secuencia de video en unidades de tramas. Por lo tanto, el objeto se mueve desde el bloque 821 de referencia precedente hasta el bloque 811 actual a lo largo de la trayectoria 813 de movimiento durante un período de tiempo indicado por TD0 823. El objeto también se mueve desde el bloque 811 actual hasta el bloque 831 de referencia posterior a lo largo de la trayectoria 813 de movimiento durante un período de tiempo indicado por TD1 833. La información de predicción para el bloque 811 actual puede hacer referencia a la trama 820 de referencia precedente y/o al bloque 821 de referencia precedente y a la trama 830 de referencia posterior y/o al bloque 831 de referencia posterior mediante un par de índices de referencia que indican la dirección y la distancia temporal entre las tramas.
Un vector 825 de movimiento precedente (MV0) describe la dirección y la magnitud del movimiento del objeto a lo largo de la trayectoria 813 de movimiento sobre el TD0823 (por ejemplo, entre la trama 820 de referencia precedente y la trama 810 actual). Un vector 835 de movimiento posterior (MV1) describe la dirección y la magnitud del movimiento del objeto a lo largo de la trayectoria 813 de movimiento sobre el TD1 833 (por ejemplo, entre la trama 810 actual y la trama 830 de referencia posterior). De este modo, en la inter-predicción 800 bidireccional, el bloque 811 actual puede codificarse y reconstruirse empleando el bloque 821 de referencia precedente y/o el bloque 831 de referencia posterior, MVO 825 y MV1 835.
En una realización, la inter-predicción y/o la inter-predicción bidireccional pueden llevarse a cabo muestra por muestra (por ejemplo, píxel por píxel) en lugar de bloque por bloque. Es decir, un vector de movimiento que apunta a cada muestra en el bloque 821 de referencia precedente y/o el bloque 831 de referencia posterior puede ser determinado para cada muestra en el bloque 811 actual. En tales modalidades, el vector 825 de movimiento y el vector 835 de movimiento representados en la FIG. 8 representan una pluralidad de vectores de movimiento correspondientes a la pluralidad de muestras en el bloque 811 actual, el bloque 821 de referencia precedente, y el bloque 831 de referencia posterior.
Tanto en el modo de fusión como en el de predicción de vectores de movimiento avanzada (AMVP), se genera una lista de candidatos añadiendo vectores de movimiento candidatos a una lista de candidatos en un orden definido por un patrón de determinación de la lista de candidatos. Dichos vectores de movimiento candidatos pueden incluir vectores de movimiento según la inter-predicción 700 unidireccional, la inter-predicción 800 bidireccional, o combinaciones de las mismas. Específicamente, se generan vectores de movimiento para bloques vecinos cuando se codifican dichos bloques. Tales vectores de movimiento se añaden a una lista de candidatos para el bloque actual, y el vector de movimiento para el bloque actual se selecciona de la lista de candidatos. El vector de movimiento puede entonces ser señalizado como el índice del vector de movimiento seleccionado en la lista de candidatos. El decodificador puede construir la lista de candidatos usando el mismo proceso que el codificador, y puede determinar el vector de movimiento seleccionado de la lista de candidatos con base en el índice señalizado. Por lo tanto, los vectores de movimiento candidatos incluyen vectores de movimiento generados según la inter-predicción 700 unidireccional y/o la inter-predicción 800 bidireccional, dependiendo de qué enfoque se use cuando se codifiquen dichos bloques vecinos.
La FIG. 9 ilustra un flujo 900 de bits de video. Tal como se usa en el presente documento, el flujo 900 de bits de video también puede denominarse flujo de bits de video codificado, flujo de bits o variaciones del mismo. Como se muestra en la FIG. 9, el flujo 900 de bits comprende un conjunto 902 de parámetros de secuencia (SPS), un conjunto 904 de parámetros de imagen (PPS), una cabecera 906 de segmento, y datos 908 de imagen.
El SPS 902 contiene datos que son comunes a todas las imágenes de una secuencia de imágenes (SOP). En cambio, el PPS 904 contiene datos comunes a toda la imagen. La cabecera 906 de segmento contiene información sobre la imagen actual como, por ejemplo, el tipo de imagen, cuál de las imágenes de referencia se usará, etc. El SPS 902 y el PPS 904 pueden ser denominados genéricamente como un conjunto de parámetros. El SPS 902, el PPS 904, y la cabecera 906 de segmento son tipos de unidades de la capa de abstracción de red (NAL). Una unidad NAL es una estructura de sintaxis que contiene una indicación del tipo de datos a seguir (por ejemplo, datos de video codificados). Las unidades NAL se clasifican en unidades<n>A<l>de capa de codificación de video (VCL) y unidades NAL no VCL. Las unidades NAL VCL contienen los datos que representan los valores de las muestras en las imágenes de video, y las unidades NAL no VCL contienen cualquier información adicional asociada, como conjuntos de parámetros (datos de encabezado importantes que pueden aplicarse a un gran número de unidades NAL VCL) e información de mejora suplementaria (información de temporización y otros datos suplementarios que pueden mejorar la utilidad de la señal de video decodificada pero que no son necesarios para decodificar los valores de las muestras en las imágenes de video). Los expertos en la materia apreciarán que el flujo 900 de bits puede contener otros parámetros e información en aplicaciones prácticas.
Los datos 908 de imagen de la FIG. 9 comprenden datos asociados a las imágenes o al video que se codifican o decodifican. Los datos 908 de imagen pueden denominarse simplemente como la carga útil o los datos que se transportan en el flujo de bits 900. En una modalidad, los datos 908 de imagen comprenden la CVS 914 (o CLVS) que contiene una pluralidad de imágenes 910. La CVS 914 es una secuencia de video codificada para cada secuencia de video de capa codificada (CLVS) en el flujo 900 de bits de video. En particular, la CVS y la CLVS son las mismas cuando el flujo 900 de bits de video incluye una sola capa. La CVS y la CLVS sólo son diferentes cuando el flujo de bits de video 900 incluye varias capas.
Como se muestra en la FIG. 9, un segmento 910 de cada imagen puede estar contenido dentro de su propia unidad 912 NAL VCL . El conjunto de unidades 912 NAL VCL en la CVS 914 puede denominarse unidad de acceso.
La FIG. 10 ilustra una técnica 1000 de partición para una imagen 1010. La imagen 1010 puede ser similar a cualquiera de las imágenes 910 de la FIG. 9. Como se muestra, la imagen 1010 puede ser dividida en una pluralidad de segmentos 1012. Un segmento es una región espacialmente distinta de una trama (por ejemplo, una imagen) que se codifica por separado de cualquier otra región de la misma trama. Aunque en la FIG. 10 se representan tres cortes 1012, en aplicaciones prácticas pueden utilizarse más o menos cortes. Cada segmento 1012 puede dividirse en una pluralidad de bloques 1014. Los bloques 1014 de la FIG. 10 pueden ser similares al bloque 811 actual, al bloque 821 de referencia anterior y al bloque 831 de referencia posterior de la FIG. 8. El bloque 1014 puede representar una CU. Aunque en la FIG. 10 se representan cuatro bloques 1014, en la práctica pueden usarse más o menos bloques.
Cada bloque 1014 puede dividirse en una pluralidad de muestras 1016 (por ejemplo, píxeles). En una modalidad, el tamaño de cada bloque 1014 se mide en muestras de luma. Mientras que en la FIG. 10 se representan dieciséis muestras 1016, en aplicaciones prácticas se pueden usar más o menos muestras.
En una modalidad, se aplica una ventana 1060 de conformidad a la imagen 1010. Como se ha indicado anteriormente, la ventana 1060 de conformidad se usa para recortar, reducir o cambiar el tamaño de la imagen 1010 (por ejemplo, una imagen reconstruida / decodificada) en el proceso de preparación de la imagen para su salida. Un decodificador aplica la ventana 1060 de conformidad a la imagen 1010 para recortar, reducir o cambiar el tamaño de la imagen 1010 antes de que la imagen sea mostrada a un usuario. El tamaño de la ventana 1060 de conformidad se determina aplicando un desplazamiento superior de la ventana 1062 de conformidad, un desplazamiento 1064 inferior de la ventana de conformidad, un desplazamiento 1066 izquierdo de la ventana de conformidad y un desplazamiento 1068 derecho de la ventana de conformidad a la imagen 1010 para reducir el tamaño de la imagen 1010 antes de la salida. Es decir, sólo se emite la parte de la imagen 1010 que existe dentro de la ventana 1060 de conformidad. Así, la imagen 1010 es recortada en tamaño antes de ser emitida. En una modalidad, un primer conjunto de parámetros de imagen y un segundo conjunto de parámetros de imagen se refieren al mismo conjunto de parámetros de secuencia y tienen los mismos valores de anchura y altura de imagen. Como tal, el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores para una ventana de conformidad.
La FIG. 11 es una modalidad de un método 1100 de decodificación implementado por un decodificador de video (por ejemplo, decodificador 400 de video). El método 1100 puede realizarse después de que el flujo de bits decodificado haya sido recibido directa o indirectamente de un codificador de video (por ejemplo, codificador 300 de video). El método 1100 mejora el proceso de decodificación manteniendo la ventana de conformidad del mismo tamaño para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen. De este modo, el remuestreo de imagen de referencia (RPR) puede permanecer habilitado o activado para todo el CVS. Al mantener un tamaño de ventana de conformidad consistente para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen, se puede mejorar la eficiencia de la codificación. Por lo tanto, en la práctica, se mejora el rendimiento de un códec, lo que conduce a una mejor experiencia del usuario.
En el bloque, 1102, el decodificador de video recibe un primer conjunto de parámetros de imagen (por ejemplo, ppsA) y un segundo conjunto de parámetros de imagen (por ejemplo, ppsB), cada uno de ellos referido al mismo conjunto de parámetros de secuencia. Cuando el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de anchura y altura de imagen, el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de una ventana de conformidad. En una modalidad, la anchura y la altura de la imagen se miden en muestras de luma.
La anchura de la imagen se designa como pic_width_in_luma_samples. En una modalidad, la altura de la imagen se designa como pic_height_in_luma_samples. En una modalidad, el pic_width_in_luma_samples especifica la anchura de cada imagen decodificada referida al PPS en unidades de muestras luma. En una modalidad, pic_height_in_luma_samples especifica la altura de cada imagen decodificada referida al PPS en unidades de muestras de luma.
En una realización, la ventana de conformidad comprende un desplazamiento izquierdo de la ventana de conformidad, un desplazamiento derecho de la ventana de conformidad, un desplazamiento superior de la ventana de conformidad y un desplazamiento inferior de la ventana de conformidad que representan colectivamente el tamaño de la ventana de conformidad. En una modalidad, el desplazamiento izquierdo de la ventana de conformidad se designa como pps_conf_win_left_offset. En una modalidad, el desplazamiento derecho de la ventana de conformidad se designa como pps_conf_win_right_offset. En una modalidad, el desplazamiento superior de la ventana de conformidad se designa como pps_conf_win_top_offset. En una modalidad, el desplazamiento inferior de la ventana de conformidad se designa como pps_conf_win_bottom_offset. En una modalidad, el tamaño o los valores de la ventana de conformidad se señalan en el PPS.
En el bloque 1104, el decodificador de video aplica la ventana de conformidad a una imagen actual correspondiente al primer conjunto de parámetros de imagen o al segundo conjunto de parámetros de imagen. Al hacerlo, el codificador de video recorta la imagen actual hasta el tamaño de la ventana de conformidad.
En una realización, el método comprende además el uso de la inter-predicción para decodificar la imagen actual basándose en una imagen de referencia remuestreada. En una modalidad, el método comprende además el remuestreo de una imagen de referencia correspondiente a la imagen actual utilizando el remuestreo de la imagen de referencia (RPS). En una modalidad, el remuestreo de la imagen de referencia cambia una resolución de la imagen de referencia.
En una realización, el método comprende además determinar si el flujo óptico bidireccional (BDOF) está habilitado para decodificar la imagen basándose en la anchura de la imagen, la altura de la imagen y la ventana de conformidad de la imagen actual y una imagen de referencia para la imagen actual. En una modalidad, el método comprende además determinar si el refinamiento del vector de movimiento del lado del decodificador (DMVR) está habilitado para decodificar la imagen basándose en el ancho de la imagen, la altura de la imagen y la ventana de conformidad de la imagen actual y una imagen de referencia para la imagen actual.
En una realización, el método comprende además mostrar en un elemento de visualización de un dispositivo electrónico (por ejemplo, un teléfono inteligente, una tableta, un ordenador portátil, un ordenador personal, etc.) una imagen generada usando el bloque actual.
La FIG. 12 es una modalidad de un método 1200 de codificación de un flujo de bits de video implementado por un codificador de video (por ejemplo, codificador 300 de video). El método 1200 puede llevarse a cabo cuando una imagen (por ejemplo, de un video) va a ser codificada en un flujo de bits de video y luego transmitida hacia un decodificador de video (por ejemplo, decodificador 400 de video). El método 1200 mejora el proceso de codificación al mantener la ventana de conformidad del mismo tamaño para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen. De este modo, el remuestreo de imagen de referencia (RPR) puede permanecer habilitado o activado para toda la CVS. Al mantener un tamaño de ventana de conformidad consistente para los conjuntos de parámetros de imagen que tienen el mismo tamaño de imagen, se puede mejorar la eficiencia de la codificación. Por lo tanto, en la práctica, se mejora el rendimiento de un códec, lo que conduce a una mejor experiencia del usuario.
En el bloque 1202, el codificador de video genera un primer conjunto de parámetros de imagen y un segundo conjunto de parámetros de imagen, cada uno referido al mismo conjunto de parámetros de secuencia. Cuando el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de anchura y altura de imagen, el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de una ventana de conformidad. En una modalidad, la anchura y la altura de la imagen se miden en muestras de luma.
La anchura de la imagen se designa como pic_width_in_luma_samples. En una modalidad, la altura de la imagen se designa como pic_height_in_luma_samples. En una modalidad, el pic_width_in_luma_samples especifica la anchura de cada imagen decodificada referida al PPS en unidades de muestras luma. En una modalidad, pic_height_in_luma_samples especifica la altura de cada imagen decodificada referida al PPS en unidades de muestras de luma.
En una realización, la ventana de conformidad comprende un desplazamiento izquierdo de la ventana de conformidad, un desplazamiento derecho de la ventana de conformidad, un desplazamiento superior de la ventana de conformidad y un desplazamiento inferior de la ventana de conformidad que representan colectivamente el tamaño de la ventana de conformidad. En una modalidad, el desplazamiento izquierdo de la ventana de conformidad se designa como pps_conf_win_left_offset. En una modalidad, el desplazamiento derecho de la ventana de conformidad se designa como pps_conf_win_right_offset. En una modalidad, el desplazamiento superior de la ventana de conformidad se designa como pps_conf_win_top_offset. En una modalidad, el desplazamiento inferior de la ventana de conformidad se designa como pps_conf_win_bottom_offset. En una modalidad, el tamaño o los valores de la ventana de conformidad se señalan en el PPS.
En el bloque 1204, el codificador de video codifica el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen en un flujo de bits de video. En el bloque 1206, el codificador de video almacena el flujo de bits de video para su transmisión hacia un decodificador de video. En una realización, el codificador de video transmite el flujo de bits de video que contiene el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen hacia el decodificador de video.
En una realización, se proporciona un método para codificar un flujo de bits de video. El flujo de bits comprende una pluralidad de conjuntos de parámetros y una pluralidad de imágenes. Cada imagen de la pluralidad de imágenes comprende una pluralidad de segmentos. Cada segmento de la pluralidad de segmentos comprende una pluralidad de bloques de codificación. El método comprende generar y escribir un conjunto de parámetros parameterSetA en un flujo de bits que contiene información que incluye el tamaño de la imagen picSizeA y la ventana de conformidad confWinA. El parámetro es un conjunto de parámetros de imagen (PPS). El método incluye además la generación y escritura de otro conjunto de parámetros parameterSetB en un flujo de bits que contiene información que incluye el tamaño de la imagen picSizeB y la ventana de conformidad confWinB. El parámetro es un conjunto de parámetros de imagen (PPS). El método incluye además restringir los valores de la ventana de conformidad confWinA en parameterSetA y confWinB en parameterSetB para que sean los mismos cuando los valores de picSizeA en parameterSetA y picSizeB en parameterSetB son los mismos, y restringir los valores del tamaño de la imagen picSizeA en parameterSetA y picSizeB en parameterSetB para que sean los mismos cuando los valores de confWinA en parameterSetA y confWinB en parameterSetB son los mismos. El método incluye además la codificación del flujo de bits.
En una realización, se proporciona un método para decodificar un flujo de bits de video. El flujo de bits comprende una pluralidad de conjuntos de parámetros y una pluralidad de imágenes. Cada imagen de la pluralidad de imágenes comprende una pluralidad de segmentos. Cada segmento de la pluralidad de segmentos comprende una pluralidad de bloques de codificación. El método comprende el análisis sintáctico de un conjunto de parámetros para obtener el tamaño de la imagen y el tamaño de la ventana de conformidad asociados con una imagen actual currPic. La información obtenida se usa para derivar el tamaño de la imagen y el tamaño recortado de la imagen actual. El método incluye además el análisis de otro conjunto de parámetros para obtener el tamaño de la imagen y el tamaño de la ventana de conformidad asociados a una imagen de referencia refPic. La información obtenida se usa para obtener el tamaño de la imagen y el tamaño de recorte de la imagen de referencia. El método incluye además la determinación de refPic como imagen de referencia para la decodificación de un bloque actual curBlock que se encuentra dentro de la imagen actual currPic, decidiendo si se usa o se habilita el flujo óptico bidireccional (BDOF) para la decodificación del bloque de codificación actual en función del tamaño de la imagen y la ventana de conformidad de la imagen actual y la imagen de referencia, y decodificando el bloque actual.
En una realización, no se usa BDOF o se desactiva para la decodificación del bloque de codificación actual cuando el tamaño de la imagen y la ventana de conformidad de la imagen actual y la imagen de referencia son diferentes.
En una realización, se proporciona un método para decodificar un flujo de bits de video. El flujo de bits comprende una pluralidad de conjuntos de parámetros y una pluralidad de imágenes. Cada imagen de la pluralidad de imágenes comprende una pluralidad de segmentos. Cada segmento de la pluralidad de segmentos comprende una pluralidad de bloques de codificación. El método comprende el análisis sintáctico de un conjunto de parámetros para obtener el tamaño de la imagen y el tamaño de la ventana de conformidad asociados con una imagen actual currPic. La información obtenida se usa para derivar el tamaño de la imagen y el tamaño recortado de la imagen actual. El método incluye además el análisis de otro conjunto de parámetros para obtener el tamaño de la imagen y el tamaño de la ventana de conformidad asociados a una imagen de referencia refPic. La información obtenida se usa para obtener el tamaño de la imagen y el tamaño de recorte de la imagen de referencia. El método incluye además la determinación de refPic como imagen de referencia para la decodificación de un bloque actual curBlock que se encuentra dentro de la imagen actual currPic, decidiendo si se usa o se habilita el refinamiento del vector de movimiento del lado del decodificador (DMVR) para la decodificación del bloque de codificación actual, basándose en el tamaño de la imagen y la ventana de conformidad de la imagen actual y la imagen de referencia, y decodificando el bloque actual.
En una realización, no se usa DMVR o se desactiva para la decodificación del bloque de codificación actual cuando el tamaño de la imagen y la ventana de conformidad de la imagen actual y la imagen de referencia son diferentes.
En una realización, se proporciona un método para codificar un flujo de bits de video. En una modalidad, el flujo de bits comprende una pluralidad de conjuntos de parámetros y una pluralidad de imágenes. Cada trama de la pluralidad de tramas comprende una pluralidad de segmentos. Cada segmento de la pluralidad de segmentos comprende una pluralidad de bloques de codificación. El método comprende la generación de un conjunto de parámetros que comprenden el tamaño de la imagen y el tamaño de la ventana de conformidad asociados con una imagen actual currPic. La información se usa para derivar el tamaño de la imagen y el tamaño de recorte de la imagen actual. El método incluye además la generación de otro conjunto de parámetros que comprende el tamaño de la imagen y el tamaño de la ventana de conformidad asociados a una imagen de referencia refPic. La información obtenida se usa para obtener el tamaño de la imagen y el tamaño de recorte de la imagen de referencia. El método incluye además la restricción de que la imagen de referencia refPic no se usará como imagen de referencia co-localizada para la predicción del vector de movimiento temporal (TMVP) de todos las rebanadas que pertenecen a la imagen actual currPic cuando el tamaño de la imagen y la ventana de conformidad de la imagen actual y la imagen de referencia son diferentes. Es decir, que si la imagen de referencia refPic es la imagen de referencia co-localizada para la codificación de bloques dentro de la imagen actual currPic para la TMVP, el tamaño de la imagen y la ventana de conformidad de la imagen actual y la imagen de referencia deberán ser los mismos. El método incluye además la decodificación del flujo de bits.
En una realización, se proporciona un método para decodificar un flujo de bits de video. El flujo de bits comprende una pluralidad de conjuntos de parámetros y una pluralidad de imágenes. Cada imagen de la pluralidad de imágenes comprende una pluralidad de rebanadas. Cada rebanada de la pluralidad de rebanadas comprende una pluralidad de bloques de codificación. El método comprende el análisis sintáctico de un conjunto de parámetros para obtener el tamaño de la imagen y el tamaño de la ventana de conformidad asociados con una imagen actual currPic. La información obtenida se usa para derivar el tamaño de la imagen y el tamaño recortado de la imagen actual. El método incluye además el análisis de otro conjunto de parámetros para obtener el tamaño de la imagen y el tamaño de la ventana de conformidad asociados a una imagen de referencia refPic. La información obtenida se usa para obtener el tamaño de la imagen y el tamaño de recorte de la imagen de referencia. El método incluye además la determinación de refPic como imagen de referencia para la decodificación de un bloque actual curBlock que se encuentra dentro de la imagen actual currPic, analizando un elemento de sintaxis (slice_DVMR_BDOF_enable_flag) para determinar si se usa o se habilita el refinamiento del vector de movimiento del lado del decodificador (DMVR) y/o el flujo óptico bidireccional (BDOF) para la decodificación de la imagen de codificación actual y/segmento. El método incluye además restringir los valores del elemento de sintaxis (slice_DVMR_BDOF_enable_flag) para que sean cero cuando la ventana de conformidad confWinA en parameterSetA y confWinB en parameterSetB no son iguales o cuando los valores de picSizeA en parameterSetA y picSizeB en parameterSetB no son iguales.
La descripción que se hace a continuación es relativa al texto base, que es el borrador de trabajo de VVC. Es decir, sólo se describe el delta, mientras que los textos del texto base que no se mencionan a continuación se aplican tal cual. El texto eliminado se indica en cursiva y el añadido en negrita.
Se proporciona la sintaxis y la semántica del conjunto de parámetros de la secuencia.
Se proporciona la sintaxis y la semántica del conjunto de parámetros de la imagen.
Es un requisito de la conformidad del flujo de bits que se cumplan todas las condiciones siguientes para cada imagen de referencia activa cuya anchura y altura sean reference_pic_width_in_luma_samples y reference_pic_height_in_luma_samples:
- 2 * pic_width_in_luma_samples >= reference_pic_width_in_luma_samples
- 2 * pic_height_in_luma_samples >= reference_pic_height_in_luma_samples
- pic_width_in_luma_samples <= 8 * reference_pic_width_in_luma_samples
- pic_height_in_luma_samples <= 8 * reference_pic_height_in_luma_samples
Las variables PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC y PicHeightInSamplesC se derivan como sigue. PicWidthInCtbsY = Ceil( pic_width_in_luma_samples CtbSizeY ) (1) PicHeightInCtbsY = Ceil( pic_height_in_luma_samples CtbSizeY ) (2) PicSizeInCtbsY = PicWidthlnCtbsY * PicHeightInCtbsY (3) PicWidthlnMinCbsY = pic_width_in_luma_samples / MinCbSizeY (4) PicHeightInMinCbsY = pic_height_in_luma_samples / MinCbSizeY (5) PicSizeInMinCbsY = PicWidthlnMinCbsY * PicHeightInMinCbsY (6) PicSizelnSamplesY = pic_width_in_luma_samples * pic_height_in_luma_samples (7) PicWidthInSamplesC = pic_width_in_luma_samples / SubWidthC (8) PicHeightInSamplesC = pic_height_in_luma_samples / SubHeightC (9) conformance_window_flag igual a 1 indica que los parámetros de offset de ventana de recorte de conformidad siguen a continuación en el PPS. conformance_window_flag igual a 0 indica que los parámetros de offset de ventana de recorte de conformidad no están presentes.
conf_win_left_offset, conf_win_right_offset, conf_win_top_offset y conf_win_bottom_offset especifican las muestras de las imágenes que hacen referencia al PPS y que salen del proceso de decodificación, en términos de una región rectangular especificada en coordenadas de imagen para la salida. Cuando conformance_window_flag es igual a 0, se infiere que los valores de conf_win_left_offset, conf_win_right_offset, conf_win_top_offset y conf_win_bottom_offset son iguales a 0.
La ventana de recorte de conformidad contiene las muestras de luma con coordenadas de imagen horizontales desde SubWidthC * conf_win_left_offset hasta pic_width_in_luma_samples - ( SubWidthC * conf_win_right_offset 1 ) y coordenadas de imagen verticales desde SubHeightC * conf_win_top_offset hasta pic_height_in_luma_samples - ( SubHeightC * conf_win_bottom_offset 1 ), inclusive.
El valor de SubWidthC * ( conf_win_left_offset conf_win_right_offset ) deberá ser menor que pic_width_in_luma_samples, y el valor de SubHeightC * ( conf_win_top_offset conf_win_bottom_offset ) deberá ser menor que pic_height_in_luma_samples.
Las variables PicOutputWidthL y PicOutputHeightL se derivan como sigue:
PicOutputWidthL = pic_width_in_luma_samples - (10)
SubWidthC * ( conf_win_right_offset conf_win_left_offset )
PicOutputHeightL = pic_height_in_pic_size_units - (11)
SubHeightC * ( conf_win_bottom_offset conf_win_top_offset )
Cuando ChromaArrayType no es igual a 0, las correspondientes muestras especificadas de las dos matrices de croma son las muestras que tienen coordenadas de imagen ( x / SubWidthC, y / SubHeightC ), donde ( x, y ) son las coordenadas de imagen de las muestras de luma especificadas.
NOTA- Los parámetros de desplazamiento de ventana de recorte de conformidad sólo se aplican a la salida. Todos los procesos internos de decodificación se aplican al tamaño de la imagen sin recortar.
Si PPS_A y PPS_B son conjuntos de parámetros de imagen que se refieren al mismo conjunto de parámetros de secuencia, es un requisito de conformidad del flujo de bits que todas las condiciones siguientes sean verdaderas si los valores de pic_width_in_luma_samples en PPS_A y PPS_B son los mismos y los valores de pic_height_in_luma_samples en PPS_A y PPS_B son los mismos:
Los valores de conf_win_left_offset en PPS_A y PPS_B son los mismos
Los valores de conf_win_right_offset en PPS_A y PPS_B son los mismos
Los valores de conf_win_top_offset en PPS_A y PPS_B son los mismos
Los valores de conf_win_bottom_offset en PPS_A y PPS_B son los mismos.
Se añade la siguiente limitación a la semántica de collocated_ref_idx collocated_ref_idx especifica el índice de referencia de la imagen colocada usada para la predicción del vector de movimiento temporal.
Cuando slice_type es igual a P o cuando slice_type es igual a B y collocated_from_10_flag es igual a 1, collocated_ref_idx se refiere a una imagen de la lista 0, y el valor de collocated_ref_idx estará en el rango de 0 a NumRefIdxActive[ 0 ] - 1, inclusive.
Cuando slice_type es igual a B y collocated_from_10_flag es igual a 0, collocated_ref_idx se refiere a una imagen de la lista 1, y el valor de collocated_ref_idx estará en el rango de 0 a NumRefIdxActive[ 1 ] - 1, inclusive. Cuando collocated_ref_idx no está presente, se infiere que el valor de collocated_ref_idx es igual a 0.
Es un requisito de la conformidad del flujo de bits que la imagen a la que se refiere collocated_ref_idx sea la misma para todos los segmentos de una imagen codificada.
Es un requisito de la conformidad del flujo de bits que las resoluciones de la imagen de referencia a la que se refiere collocated_ref idx y la imagen actual sean las mismas.
Es un requisito de la conformidad del flujo de bits que los tamaños de imagen y las ventanas de conformidad de la imagen de referencia a la que se refiere collocated_ref_idx y la imagen actual sean los mismos.
Se modifican las siguientes condiciones para poner dmvrFlag a 1
- Cuando todas las condiciones siguientes son verdaderas, dmvrFlag se establece igual a 1:
- sps_dmvr_enabled_flag es igual a 1
- general_merge_flag[ xCb ][ yCb ] es igual a 1
- ambas predFlagL0[ 0 ][ 0 ] and predFlagL1[ 0 ][ 0 ] son iguales a 1
- mmvd_merge_flag[ xCb ][ yCb ] es igual a 0
- DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ]) es igual a DiffPicOrderCnt( RefPicList[ 1 ][ refIdxL1 ], currPic )
- BcwIdx [ xCb ][ yCb ] es igual a 0
- Tanto luma_weight_10_flag[ refIdxL0 ] como luma_weight_11_flag[ refIdxL1 ] son iguales a 0
- cbWidth es mayor o igual a 8
- cbHeight es mayor o igual a 8
- cbHeight*cbWidth es mayor o igual a 128
- Para que X sea cada uno de 0 y 1, el pic_width_in_luma_samples y el pic_height_in_luma_samples de la imagen de referencia refPicLX asociada con el refIdxLX son iguales a los pic_width_in_luma_samples y pic_height_in_luma_samples de la imagen actual, respectivamente.
- Para que X sea cada uno de 0 y 1, el pic_width_in_luma_samples, el pic_height_in_luma_samples, el conf_win_left_offset, el conf_win_right_offset, el conf_win_top_offset y el conf_win_bottom_offset de la imagen de referencia refPicLX asociada con el refIdxLX son iguales al pic_width_in_luma_samples, pic_height_in_luma_samples, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset y conf_win_bottom_offset de la imagen actual, respectivamente.
Se modifican las siguientes condiciones para poner dmvrFlag a 1.
- Si todas las condiciones siguientes son verdaderas, bdofFlag se establece igual a TRUE.
- sps_bdof_enabled_flag es igual a 1.
- predFlagL0[ xSbIdx ][ ySbIdx ] y predFlagL1[ xSbIdx ][ ySbIdx ] son ambos iguales a 1.
- DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ] ) * DiffPicOrderCnt( currPic, RefPicList[ 1 ][ refIdxL1 ] ) es menor que 0.
- MotionModelIdc[ xCb ][ yCb ] es igual a 0.
- merge_subblock_flag[ xCb ][ yCb ] es igual a 0.
- sym_mvd_flag[ xCb ][ yCb ] es igual a 0.
- BcwIdx[ xCb ][ yCb ] es igual a 0.
- luma_weight_10_flag[ refldxLO ] y luma_weight_11_flag[ refldxLI ] son ambos iguales a 0.
- cbHeight es mayor o igual a 8
- Para que X sea cada uno de 0 y 1, el pic_width_in_luma_samples y el pic_height_in_luma_samples de la imagen de referencia refPicLX asociada con el refIdxLX son iguales a los ancho de imagen en muestras luma y pic_height_in_luma_samples de la imagen actual, respectivamente.
- Para que X sea cada uno de 0 y 1, el pic_width_in_luma_samples, el pic_height_in_luma_samples, el conf_win_left_offset, el conf_win_right_offset, el conf_win_top_offset y el conf_win_bottom_offse de la imagen de referencia refPicLX asociada con el refIdxLX son iguales al pic_width_in_luma_samples, pic_height_in_luma_samples, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset y conf_win_bottom_offse de la imagen actual, respectivamente.
- cIdx es igual a 0.
La FIG. 13 es un diagrama esquemático de un dispositivo 1300 de codificación de video (por ejemplo, un codificador 20 de video o un decodificador 30 de video) según una modalidad de la descripción. El dispositivo 1300 de codificación de video es adecuado para implementar las modalidades descritas como se describe en el presente documento. El dispositivo 1300 de codificación de video comprende puertos 1310 de entrada y unidades 1320 receptoras (Rx) para recibir datos; un procesador, unidad lógica o unidad central de procesamiento (CPU) 1330 para procesar los datos; unidades 1340 transmisoras (Tx) y puertos 1350 de salida para transmitir los datos; y una memoria 1360 para almacenar los datos. El dispositivo video 1300 de codificación de también puede comprender componentes ópticos-eléctricos (OE) y componentes eléctricosópticos (EO) acoplados a los puertos 1310 de entrada, las unidades 1320 receptoras, las unidades 1340 transmisoras y los puertos 1350 de salida para la salida o entrada de señales ópticas o eléctricas.
El procesador 1330 se implementa mediante hardware y software. El procesador 1330 puede implementarse como uno o más chips de CPU, núcleos (por ejemplo, como un procesador multinúcleo), matrices de puertas programables en campo (FPGA), circuitos integrados de aplicación específica (ASIC) y procesadores de señales digitales (DSP). El procesador 1330 está en comunicación con los puertos 1310 de entrada, las unidades 1320 receptoras, las unidades 1340 transmisoras, los puertos 1350 de salida y la memoria 1360. El procesador 1330 comprende un módulo 1370 de codificación. El módulo 1370 de codificación implementa las modalidades descritas anteriormente. Por ejemplo, el módulo 1370 de codificación implementa, procesa, prepara o proporciona las diversas funciones del códec. La inclusión del módulo 1370 de codificación proporciona, por tanto, una mejora sustancial de la funcionalidad del dispositivo 1300 de codificación de video y efectúa una transformación del dispositivo 1300 de codificación de video a un estado diferente. Alternativamente, el módulo 1370 de codificación se implementa como instrucciones almacenadas en la memoria 1360 y ejecutadas por el procesador 1330.
El dispositivo 1300 de codificación de video también puede incluir dispositivos 1380 de entrada y/o salida (I/O) para comunicar datos a y desde un usuario. Los dispositivos 1380 de I/O pueden incluir dispositivos de salida como un elemento de visualización para mostrar datos de video, altavoces para emitir datos de audio, etc. Los dispositivos 1380 de I/O también pueden incluir dispositivos de entrada, como un teclado, un ratón, una bola de rastreo, etc., y/o las correspondientes interfaces para interactuar con dichos dispositivos de salida.
La memoria 1360 comprende uno o más discos, unidades de cinta y unidades de estado sólido, y puede utilizarse como dispositivo de almacenamiento de datos de sobrecarga, para almacenar programas cuando dichos programas se seleccionan para su ejecución, y para almacenar instrucciones y datos que se leen durante la ejecución del programa. La memoria 1360 puede ser volátil y/o no volátil y puede ser una memoria de sólo lectura (ROM), una memoria de acceso aleatorio (RAM), una memoria ternaria de contenido direccionable (TCAM), y/o una memoria estática de acceso aleatorio (SRAM).
La FIG. 14 es un diagrama esquemático de una modalidad de un medio 1400 de codificación. En una modalidad, los medios 1400 de codificación se implementan en un dispositivo 1402 de codificación de video (por ejemplo, un codificador 20 de video o un decodificador 30 de video). El dispositivo 1402 de codificación de video incluye medios 1401 de recepción. Los medios 1401 de recepción están configurados para recibir una imagen para codificar o para recibir un flujo de bits para decodificar. El dispositivo 1402 de codificación de video incluye medios 1407 de transmisión acoplados a los medios 1401 de recepción. Los medios 1407 de transmisión están configurados para transmitir el flujo de bits a un decodificador o para transmitir una imagen decodificada a un medio de visualización (por ejemplo, uno de los dispositivos 1380 de I/O).
El dispositivo 1402 de codificación de video incluye un medio 1403 de almacenamiento. El medio 1403 de almacenamiento está acoplado a al menos uno de los medios 1401 de recepción o de los medios 1407 de transmisión. Los medios 1403 de almacenamiento están configurados para almacenar instrucciones. El dispositivo de codificación de video 1402 también incluye medios 1405 de procesamiento. Los medios 1405 de procesamiento están acoplados a los medios 1403 de almacenamiento. Los medios 1405 de procesamiento están configurados para ejecutar las instrucciones almacenadas en los medios 1403 de almacenamiento para realizar los métodos descritos en el presente documento.
También debe entenderse que los pasos de los métodos ejemplares expuestos en el presente documento no tienen que realizarse necesariamente en el orden descrito, y el orden de los pasos de dichos métodos debe entenderse como meramente ejemplar. Asimismo, pueden incluirse pasos adicionales en dichos métodos, y ciertos pasos pueden omitirse o combinarse, en métodos consistentes con diversas modalidades de la presente descripción.
Los presentes ejemplos deben ser considerados como ilustrativos y no restrictivos, y la intención no es limitarse a los detalles dados en el presente documento. Por ejemplo, los diversos elementos o componentes pueden combinarse o integrarse en otro sistema o pueden omitirse ciertas características o no implementarse.
Además, las técnicas, los sistemas, los subsistemas y los métodos descritos e ilustrados en las diversas modalidades como discretos o separados pueden combinarse o integrarse con otros sistemas, módulos, técnicas o métodos sin apartarse del alcance de la presente descripción. Otros elementos mostrados o discutidos como acoplados o directamente acoplados o comunicados entre sí pueden estar indirectamente acoplados o comunicados a través de alguna interfaz, dispositivo o componente intermedio ya sea eléctrico, mecánico o de otro tipo.
Claims (15)
1. Un método de decodificación (1100) implementado mediante un decodificador de video, que comprende:
recibir, (1102) por parte del decodificador de video, un flujo de bits de video, en donde el flujo de bits de video comprende un primer conjunto de parámetros de imagen y un segundo conjunto de parámetros de imagen que se refieren cada uno al mismo conjunto de parámetros de secuencia;
decodificar, por parte del decodificador de video, el flujo de bits de video para obtener parámetros de una ventana de conformidad.
aplicar (1104), por el decodificador de video, la ventana de conformidad a una imagen actual correspondiente al primer conjunto de parámetros de imagen o el segundo conjunto de parámetros de imagen; en donde los parámetros de la ventana de conformidad se usan para especificar muestras de imágenes que hacen referencia al primer conjunto de parámetros de imagen o el segundo conjunto de parámetros de imagen que se emiten desde el proceso de decodificación, en términos de una región rectangular especificada en las coordenadas de imagen para su emisión;
caracterizado por que cada uno del primer conjunto de parámetros de imagen o el segundo conjunto de parámetros de imagen comprende un pic_width_in_luma_samples, un pic_height_in_luma_samples y los parámetros de la ventana de conformidad, en donde pic_width_in_luma_samples especifica la anchura de cada imagen decodificada que hace referencia al conjunto de parámetros de imagen correspondiente, PPS, en unidades de muestras de luma, y el pic_height_in_luma_samples especifica la altura de cada imagen decodificada que hace referencia al PPS correspondiente en unidades de muestras de luma, en donde cuando el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de pic_width_in_luma_samples, y pic_height_in_luma_samples, respectivamente, el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de los parámetros de la ventana de conformidad.
2. El método de la reivindicación 1, en donde los parámetros de la ventana de conformidad comprenden un desplazamiento izquierdo de ventana de conformidad, un desplazamiento derecho de la ventana de conformidad, un desplazamiento superior de la ventana de conformidad y un desplazamiento inferior de la ventana de conformidad.
3. El método de cualquiera de las reivindicaciones 1 a 2, que comprende además la decodificación de la imagen actual correspondiente al primer conjunto de parámetros de imagen o al segundo conjunto de parámetros de imagen usando la inter-predicción después de aplicar la ventana de conformidad, en donde la inter-predicción se basa en una imagen de referencia remuestreada.
4. El método de cualquiera de las reivindicaciones 1 a 3, que comprende además el remuestreo de una imagen de referencia asociada a la imagen actual correspondiente al primer conjunto de parámetros de imagen o al segundo conjunto de parámetros de imagen mediante el remuestreo de imágenes de referencia, RPS.
5. El método de la reivindicación 4, en donde el remuestreo de la imagen de referencia cambia una resolución de la imagen de referencia usada para la inter-predicción de la imagen actual correspondiente al primer conjunto de parámetros de imagen o al segundo conjunto de parámetros de imagen.
6. El método de cualquiera de las reivindicaciones 1 a 5, que comprende además determinar si el flujo óptico bidireccional, BDOF, o el refinamiento del vector de movimiento del lado del decodificador ,DMVR, está habilitado para decodificar la imagen actual con base en el pic_width_in_luma_samples, el pic_height_in_luma_samples y los parámetros de la ventana de conformidad de la imagen actual y una imagen de referencia para la imagen actual.
7. El método de cualquiera de las reivindicaciones 1 a 5, que comprende además. mostrar en un elemento de visualización de un dispositivo electrónico una imagen generada con la imagen actual.
8. Un método (1200) de codificación implementado por un codificador de video, comprendiendo el método:
generar (1202), por el codificador de video, un primer conjunto de parámetros de imagen y un segundo conjunto de parámetros de imagen que hacen referencia cada uno al mismo conjunto de parámetros de secuencia;
codificar (1204), por el codificador de video, el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen en un flujo de bits de video; y
almacenar (1206), por el codificador de video, el flujo de bits de video para la transmisión hacia el codificador de video;
caracterizado por que cada uno del primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen comprenden un pic_width_in_luma_samples, un pic_height_in luma samples y los parámetros de la ventana de conformidad, en donde pic width in luma_samples especifica la anchura de cada imagen decodificada que hace referencia al conjunto de parámetros de imagen correspondiente, PPS, en unidades de muestras de luma, y el pic_height_in_luma_samples especifica la altura de cada imagen decodificada que hace referencia al PPS correspondiente en unidades de muestras de luma, en donde cuando el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de pic_width_in_luma_samples, y pic_height_in_luma_samples, respectivamente, el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de los parámetros de la ventana de conformidad; en donde los parámetros de la ventana de conformidad se usan para especificar muestras de imágenes que hacen referencia al primer conjunto de parámetros de imagen o el segundo conjunto de parámetros de imagen que se emiten desde el proceso de decodificación, en términos de una región rectangular especificada en las coordenadas de imagen para su emisión.
9. El método de la reivindicación 8, en donde los parámetros de la ventana de conformidad comprenden un desplazamiento izquierdo de la ventana de conformidad, un desplazamiento derecho de la ventana de conformidad, un desplazamiento superior de la ventana de conformidad, y un desplazamiento inferior de la ventana de conformidad .
10. El método de cualquiera de las reivindicaciones 8 a 9, que comprende además transmitir el flujo de bits de video que contiene el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen.
11. Un dispositivo (1300) de decodificación, que comprende:
un receptor (1310) configurado para recibir un flujo de bits de video codificado;
una memoria (1360) acoplada al receptor (1310), que almacena instrucciones; y
un procesador (1330) acoplado a la memoria (1360), el procesador (1330) configurado para ejecutar las instrucciones para hacer que el dispositivo (1300) de decodificación realice el método de cualquiera de las reivindicaciones 1 a 7.
12. Un dispositivo (1300) de codificación, que comprende:
una memoria (1360) que contiene instrucciones;
un procesador (1330) acoplado a la memoria (1360), el procesador (1330) configurado para implementar las instrucciones para hacer que el dispositivo (1300) codifique el método de cualquiera de las reivindicaciones 8 a 10.
13. Un flujo de bits que comprende un conjunto de parámetros de secuencia, SPS, un primer conjunto de parámetros de imagen, PPS y un segundo PPS que hacen referencia cada uno al mismo SPS, en donde el flujo de bits está caracterizado porque:
en donde cada uno del primer PPS y el segundo PPS comprenden un pic_width_in_luma_samples, un pic_height in_luma_samples y los parámetros de la ventana de conformidad, en donde pic width in luma_samples especifica la anchura de cada imagen decodificada que hace referencia al PPS correspondiente en unidades de muestras de luma, y el pic_height_in_luma_samples especifica la altura de cada imagen decodificada que hace referencia al PPS correspondiente en unidades de muestras de luma; en donde cuando el primer conjunto de parámetros de imagen y el segundo conjunto de parámetros de imagen tienen los mismos valores de pic_width_in_luma_samples, y pic_height_in_luma_samples, respectivamente, el primer PPS y el segundo PPS tienen los mismos valores de los parámetros de la ventana de conformidad; en donde los parámetros de la ventana de conformidad se usan para especificar muestras de imágenes que hacen referencia al primer conjunto de parámetros de imagen o el segundo conjunto de parámetros de imagen que se emiten desde el proceso de decodificación, en términos de una región rectangular especificada en las coordenadas de imagen para su emisión.
14. El flujo de bits de la reivindicación 13, en donde los parámetros de la ventana de conformidad comprenden un desplazamiento izquierdo de la ventana de conformidad, un desplazamiento derecho de la ventana de conformidad, un desplazamiento superior de la ventana de conformidad, y un desplazamiento inferior de la ventana de conformidad.
15. El flujo de bits de la reivindicación 14, en donde el flujo de bits comprende además una bandera de ventana de conformidad, en donde la bandera de ventana de conformidad igual a 1 indica que los parámetros de la ventana de conformidad aparecen a continuación en el conjunto de parámetros de imagen correspondiente, y la bandera de ventana de conformidad igual a 0 indica que los parámetros de la ventana de conformidad no están presentes en el conjunto de parámetros de imagen, en donde cuando la bandera de ventana de conformidad es igual a 0, los valores del desplazamiento izquierdo de la ventana de conformidad, el desplazamiento derecho de la ventana de conformidad, el desplazamiento superior de la ventana de conformidad, y el desplazamiento inferior de la ventana de conformidad se deduce son iguales a 0.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962871493P | 2019-07-08 | 2019-07-08 | |
PCT/US2020/041026 WO2020215101A1 (en) | 2019-07-08 | 2020-07-07 | Handling of multiple picture size and conformance windows for reference picture resampling in video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2974627T3 true ES2974627T3 (es) | 2024-06-28 |
Family
ID=72837706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES20790974T Active ES2974627T3 (es) | 2019-07-08 | 2020-07-07 | Manejo de múltiples tamaños de imagen y ventanas de conformidad para el remuestreo de imágenes de referencia en la codificación de video |
Country Status (17)
Country | Link |
---|---|
US (2) | US11785220B2 (es) |
EP (2) | EP4221227A1 (es) |
JP (2) | JP7477248B2 (es) |
KR (1) | KR20220025017A (es) |
CN (6) | CN116347101A (es) |
AU (2) | AU2020259509A1 (es) |
CA (1) | CA3146230A1 (es) |
CL (1) | CL2022000041A1 (es) |
DK (1) | DK3977723T3 (es) |
ES (1) | ES2974627T3 (es) |
FI (1) | FI3977723T3 (es) |
HU (1) | HUE065468T2 (es) |
MX (1) | MX2022000333A (es) |
PL (1) | PL3977723T3 (es) |
PT (1) | PT3977723T (es) |
WO (1) | WO2020215101A1 (es) |
ZA (1) | ZA202200186B (es) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314708B (zh) * | 2019-05-15 | 2023-05-12 | 华为技术有限公司 | 视频码流的解码方法及对应的设备及介质 |
KR102628896B1 (ko) * | 2019-05-15 | 2024-01-23 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 비디오 코딩에서 참조 픽처 리샘플링을 위한 양방향 광 흐름(bio) 코딩 도구의 취급 |
JP2022549451A (ja) * | 2019-09-24 | 2022-11-25 | フラウンホッファー-ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ | 復号装置、符号化装置、および方法 |
US11317093B2 (en) * | 2019-09-24 | 2022-04-26 | Tencent America LLC | Method for reference picture resampling with offset in video bitstream |
JP7416974B2 (ja) | 2020-03-30 | 2024-01-17 | バイトダンス インコーポレイテッド | 映像コーディングにおけるスライスタイプ |
US20230217017A1 (en) * | 2022-01-05 | 2023-07-06 | Nokia Technologies Oy | Method, An Apparatus and a Computer Program Product for Implementing Gradual Decoding Refresh |
US11954775B2 (en) * | 2022-02-23 | 2024-04-09 | International Business Machines Corporation | Artboard element positioning in a series of computer-based artboards |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014512736A (ja) * | 2011-03-10 | 2014-05-22 | ヴィディオ・インコーポレーテッド | ビデオ符号化におけるパラメータセット保持 |
US9338474B2 (en) * | 2011-09-23 | 2016-05-10 | Qualcomm Incorporated | Reference picture list construction for video coding |
CN104919803B (zh) * | 2013-01-15 | 2017-09-12 | 华为技术有限公司 | 一种用于解码视频比特流的方法 |
KR102223694B1 (ko) * | 2013-04-07 | 2021-03-04 | 돌비 인터네셔널 에이비 | 출력 계층 세트들에서의 시그널링 변경 |
US9756335B2 (en) * | 2013-07-02 | 2017-09-05 | Qualcomm Incorporated | Optimizations on inter-layer prediction signalling for multi-layer video coding |
US9641862B2 (en) * | 2013-10-15 | 2017-05-02 | Nokia Technologies Oy | Video encoding and decoding |
CA2935303C (en) * | 2014-01-03 | 2023-04-11 | Arris Enterprises Llc | Conditionally parsed extension syntax for hevc extension processing |
US9641851B2 (en) * | 2014-04-18 | 2017-05-02 | Qualcomm Incorporated | Conformance window information in multi-layer coding |
JP6542201B2 (ja) * | 2014-04-25 | 2019-07-10 | シャープ株式会社 | 画像復号装置および画像復号方法 |
JP6651633B2 (ja) * | 2016-01-07 | 2020-02-19 | 華為技術有限公司Huawei Technologies Co.,Ltd. | データスケジューリング方法、基地局およびシステム |
FI20165114A (fi) * | 2016-02-17 | 2017-08-18 | Nokia Technologies Oy | Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten |
EP3249928A1 (en) * | 2016-05-23 | 2017-11-29 | Thomson Licensing | Method, apparatus and stream of formatting an immersive video for legacy and immersive rendering devices |
US20180199057A1 (en) * | 2017-01-12 | 2018-07-12 | Mediatek Inc. | Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding |
WO2020142382A1 (en) | 2018-12-31 | 2020-07-09 | Futurewei Technologies, Inc. | Support of adaptive resolution change in video coding |
-
2020
- 2020-07-07 PT PT207909748T patent/PT3977723T/pt unknown
- 2020-07-07 HU HUE20790974A patent/HUE065468T2/hu unknown
- 2020-07-07 ES ES20790974T patent/ES2974627T3/es active Active
- 2020-07-07 PL PL20790974.8T patent/PL3977723T3/pl unknown
- 2020-07-07 CN CN202310336555.2A patent/CN116347101A/zh active Pending
- 2020-07-07 AU AU2020259509A patent/AU2020259509A1/en active Pending
- 2020-07-07 CN CN202080045733.0A patent/CN114026848B/zh active Active
- 2020-07-07 CN CN202210136588.8A patent/CN115037945B/zh active Active
- 2020-07-07 CN CN202310353969.6A patent/CN116419000A/zh active Pending
- 2020-07-07 JP JP2022500788A patent/JP7477248B2/ja active Active
- 2020-07-07 CN CN202310330048.8A patent/CN116347100A/zh active Pending
- 2020-07-07 CN CN202310344524.1A patent/CN116634169A/zh active Pending
- 2020-07-07 MX MX2022000333A patent/MX2022000333A/es unknown
- 2020-07-07 EP EP23169353.2A patent/EP4221227A1/en active Pending
- 2020-07-07 WO PCT/US2020/041026 patent/WO2020215101A1/en active Application Filing
- 2020-07-07 KR KR1020227002848A patent/KR20220025017A/ko active Search and Examination
- 2020-07-07 FI FIEP20790974.8T patent/FI3977723T3/fi active
- 2020-07-07 DK DK20790974.8T patent/DK3977723T3/da active
- 2020-07-07 EP EP20790974.8A patent/EP3977723B9/en active Active
- 2020-07-07 CA CA3146230A patent/CA3146230A1/en active Pending
-
2021
- 2021-12-29 US US17/565,243 patent/US11785220B2/en active Active
-
2022
- 2022-01-03 ZA ZA2022/00186A patent/ZA202200186B/en unknown
- 2022-01-07 CL CL2022000041A patent/CL2022000041A1/es unknown
-
2023
- 2023-08-30 US US18/458,815 patent/US20230421772A1/en active Pending
-
2024
- 2024-04-16 JP JP2024065997A patent/JP2024102105A/ja active Pending
- 2024-11-28 AU AU2024266970A patent/AU2024266970A1/en active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2983276T3 (es) | Recorte de filtro de interpolación para vectores de movimiento de subimagen | |
ES2974627T3 (es) | Manejo de múltiples tamaños de imagen y ventanas de conformidad para el remuestreo de imágenes de referencia en la codificación de video | |
ES2951060T3 (es) | Señalización de identificadores de subimágenes en la codificación de vídeo | |
ES2965445T3 (es) | Restricciones de imagen del tipo de unidad NAL mixta | |
ES2780688T3 (es) | Señalización para operaciones DPB basadas en un búfer de imágenes subdescodificadas (sub-DPB) en la codificación de vídeo | |
ES2744201T3 (es) | Dispositivo y procedimiento para la codificación escalable de información de vídeo | |
ES2980262T3 (es) | Mejoras de formación de mosaicos flexibles en codificación de vídeo | |
ES2946163T3 (es) | Manejo de la herramienta de codificación del refinamiento del vector de movimiento del lado del decodificador (DMVR) para el remuestreo de imágenes de referencia en la codificación de vídeo | |
ES2947509T3 (es) | Manejo de herramienta de codificación de flujo óptico bidireccional (BIO) para remuestreo de imagen de referencia en codificación de video | |
ES2780686T3 (es) | Tipo de dependencia entre vistas en MV-HEVC | |
CN114845117B (zh) | 视频编解码器实现的编解码方法及编解码设备 | |
ES2967911T3 (es) | Codificación de vídeo entrelazado con imágenes principales | |
ES2944451T3 (es) | Señalización de identificaciones de subimagen en codificación de vídeo basada en subimagen | |
ES2968830T3 (es) | Intercodificación en codificación de vídeo con soporte de múltiples capas | |
ES2974230T3 (es) | Gestión de imágenes de referencia en codificación de vídeo en capas | |
US20220166970A1 (en) | Types of Reference Pictures in Reference Picture Lists | |
RU2817618C2 (ru) | Обработка множества размеров изображения и окон соответствия для передискретизации опорного изображения при кодировании видео | |
BR122023005531B1 (pt) | Fluxo de bits codificado, dispositivo para armazenar um fluxo de bits, método para armazenar um fluxo de bits, dispositivo para transmitir um fluxo de bits, método para transmitir um fluxo de bits e sistema para processar um fluxo de bits | |
BR112022000292B1 (pt) | Método de decodificação implementado por um decodificador de vídeo, método de codificação implementado por um codificador de vídeo, dispositivo de decodificação, dispositivo de codificação, aparelho de codificação, sistema de codificação e decodificação, e meio para codificação |