ES3001111T3 - Intrapredicción con múltiples líneas de referencia - Google Patents
Intrapredicción con múltiples líneas de referencia Download PDFInfo
- Publication number
- ES3001111T3 ES3001111T3 ES18798000T ES18798000T ES3001111T3 ES 3001111 T3 ES3001111 T3 ES 3001111T3 ES 18798000 T ES18798000 T ES 18798000T ES 18798000 T ES18798000 T ES 18798000T ES 3001111 T3 ES3001111 T3 ES 3001111T3
- Authority
- ES
- Spain
- Prior art keywords
- intra
- intra prediction
- prediction mode
- reference line
- subset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- 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
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
- H04N19/197—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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/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/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
-
- 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/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—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 a set of transform coefficients
-
- 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/182—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 a pixel
-
- 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/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un dispositivo de codificación de vídeo recibe un flujo de bits que incluye datos de vídeo. El dispositivo determina un subconjunto de modos de predicción intra. El subconjunto de modos de predicción intra incluye modos de predicción intra que se correlacionan con una pluralidad de líneas de referencia para un bloque de imagen actual y excluye modos de predicción intra que se correlacionan con una línea de referencia primaria para el bloque de imagen actual. Cuando se incluye un primer modo de predicción intra en el subconjunto de modos de predicción intra, el dispositivo decodifica el primer modo de predicción intra mediante un índice de modo de predicción intra alternativo. Cuando el primer modo de predicción intra no está incluido en el subconjunto de modos de predicción intra, el dispositivo decodifica el primer modo de predicción intra mediante un índice de modo de predicción intra. El dispositivo presenta datos de vídeo que incluyen un bloque de imagen decodificado en función del primer modo de predicción intra. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Intrapredicción con múltiples líneas de referencia
Antecedentes
La cantidad de datos de vídeo necesarios para representar incluso un vídeo relativamente corto puede ser sustancial, lo que puede dar lugar a dificultades cuando los datos se van a transmitir o comunicar de otro modo a través de una red de comunicaciones con capacidad de ancho de banda limitada. Por lo tanto, los datos de vídeo generalmente se comprimen antes de comunicarse a través de las redes de telecomunicaciones modernas. El tamaño de un vídeo también podría ser un problema cuando el vídeo se almacena en un dispositivo de almacenamiento debido a que los recursos de memoria pueden ser limitados. Los dispositivos de compresión de vídeo a menudo usan software y/o hardware en la fuente para codificar los datos de vídeo antes de la transmisión o el almacenamiento, lo que reduce la cantidad de datos necesarios para representar imágenes de vídeo digital. Luego, los datos comprimidos son recibidos en el destino por un dispositivo de descompresión de vídeo que decodifica los datos de vídeo. Con recursos de la red limitados y demandas cada vez mayores de mayor calidad de vídeo, son deseables técnicas mejoradas de compresión y descompresión que mejoren la relación de compresión con poco o ningún sacrificio en la calidad de imagen.
El documento de Li J. et al: "Multiple line-based intra prediction", 3. JVET Meeting, 26-05-2016; Ginebra (El Equipo Conjunto de Exploración de Vídeo de ISO/IEC JTC1/SC29/WG11 y ITU-T SG.16); URL:<h t t p>://PHENIX.INT-EVRY.FR/JVET/, n.° JVET-C0071, 17 de mayo de 2016 (17-05-2016) describe la intrapredicción en la que se usan múltiples líneas de referencia para realizar la intrapredicción.
El documento US 2011/292994 A1 describe un método y aparato para señalizar y recibir una señal de vídeo para su procesamiento.
El documento EP 2942954 A2 describe un método para codificar un modo de intrapredicción.
El documento de SHOHEI MATSUO ET AT, VCEG-AF05 describe la intrapredicción usando múltiples líneas de referencia.
El documento EP 2728883 A2 describe un método de decodificación de vídeo que implica la intrapredicción.
El documento EP 2 920 964 A0 describe un método para la intrapredicción de color cruzado usando el intramodo de LM.
Compendio
La invención se describe en el conjunto de reivindicaciones adjuntas.
La descripción incluye un dispositivo de codificación de vídeo que comprende: un receptor configurado para recibir un flujo de bits; un procesador acoplado al receptor y configurado para determinar un subconjunto de modos de intrapredicción, el subconjunto de modos de intrapredicción que incluye modos de intrapredicción que tienen acceso a una pluralidad de líneas de referencia para un bloque de imagen actual y excluye los modos de intrapredicción que solo tienen acceso a una línea de referencia primaria más cercana al bloque de imagen actual, en donde la pluralidad de líneas de referencia incluyen la línea de referencia primaria y un conjunto de líneas de referencia que se colocan más lejos del bloque actual que la línea de referencia primaria, y en donde el subconjunto de modos de intrapredicción incluye modos asociados con una lista de modos más probables (MPM); cuando la información del modo de intrapredicción en el flujo de bits indica que un primer modo de intrapredicción no se incluye en el subconjunto de modos de intrapredicción, decodificar el primer modo de intrapredicción por un índice de modo de intrapredicción; o, cuando la información del modo de intrapredicción en el flujo de bits indica que un primer modo de intrapredicción se incluye en el subconjunto de modos de intrapredicción, decodificar el primer modo de intrapredicción por un índice de lista MPM, en donde el índice de lista MPM indica un modo de intrapredicción en la lista MPM; realizar una intrapredicción basada en el primer modo de intrapredicción para obtener el bloque de imagen actual; y una pantalla acoplada al procesador, la pantalla para presentar datos de vídeo que incluye un bloque de imagen decodificado basado en el primer modo de intrapredicción.
Opcionalmente, en cualquiera de los aspectos anteriores, se proporciona otra implementación del aspecto, en donde el procesador se configura además para: decodificar un índice de línea de referencia cuando el primer modo de intrapredicción se incluye en el subconjunto de modos de intrapredicción, el índice de línea de referencia que indica una primera línea de referencia de la pluralidad de líneas de referencia para el primer modo de intrapredicción.
Opcionalmente, en cualquiera de los aspectos anteriores, se proporciona otra implementación del aspecto, en donde el índice de línea de referencia se coloca después del primer modo de intrapredicción en el flujo de bits.
La descripción incluye un método realizado por un dispositivo de codificación de vídeo que comprende: determinar, por un procesador del dispositivo, un subconjunto de modos de intrapredicción, el subconjunto de modos de intrapredicción que incluye modos de intrapredicción que tienen acceso a una pluralidad de líneas de referencia para un bloque de imagen actual y que excluyen modos de intrapredicción que tienen solo acceso a una línea de referencia primaria más cerca al bloque de imagen actual, en donde la pluralidad de líneas de referencia incluyen la línea de referencia primaria y un conjunto de líneas de referencia que se colocan más lejos del bloque actual que la línea de referencia primaria, y en donde el subconjunto de modos de intrapredicción incluye modos asociados con una lista de modos más probables (MPM); decodificar (1705), por el procesador, un primer modo de intrapredicción mediante un índice de modo de intrapredicción cuando la información del modo de intrapredicción en el flujo de bits indica que el primer modo de intrapredicción no se incluye en el subconjunto de modos de intrapredicción; o, un primer modo de intrapredicción mediante un índice de lista MPM cuando la información del modo de intrapredicción en el flujo de bits indica que el primer modo de intrapredicción se incluye en el subconjunto de modos de intrapredicción, en donde el índice de la lista MPM indica un modo de intrapredicción en la lista MPM; realizar la intrapredicción basada en el primer modo de intrapredicción para obtener el bloque de imagen actual, y visualizar, en una pantalla, unos datos de vídeo que incluyen un bloque de imagen decodificado basado en el primer modo de intrapredicción.
Opcionalmente, en cualquiera de los aspectos anteriores, se proporciona otra implementación del aspecto, el método comprende además: decodificar un índice de línea de referencia solo cuando el primer modo de intrapredicción se incluye en el subconjunto de modos de intrapredicción, el índice de línea de referencia que indica una primera línea de referencia de la pluralidad de líneas de referencia para el primer modo de intrapredicción.
Opcionalmente, en cualquiera de los aspectos anteriores, se proporciona otra implementación del aspecto, en donde el índice de línea de referencia se coloca después del primer modo de intrapredicción en el flujo de bits.
La descripción incluye un medio legible por ordenador no transitorio que comprende un producto de programa informático para su uso por un dispositivo de codificación de vídeo, el producto de programa informático que comprende instrucciones ejecutables por ordenador almacenadas en un medio legible por ordenador no transitorio que cuando se ejecutan por un procesador hacen que el dispositivo de codificación de vídeo: reciba, a través de un receptor, un flujo de bits; determine, por el procesador, un subconjunto de modos de intrapredicción, el subconjunto de modos de intrapredicción que incluye modos de intrapredicción que tienen acceso a una pluralidad de líneas de referencia para un bloque de imagen actual y que excluye modos de intrapredicción que solo tienen acceso a una línea de referencia primaria más cercana al bloque de imagen actual, en donde la pluralidad de líneas de referencia incluye la línea de referencia primaria y un conjunto de líneas de referencia que están colocadas más lejos del bloque actual que la línea de referencia primaria, y en donde el subconjunto de modos de intrapredicción incluye modos asociados con una lista de modos más probables (MPM); decodifique, por el procesador, un primer modo de intrapredicción por un índice de modo de intrapredicción cuando la información del modo de intrapredicción en el flujo de bits indica que el primer modo de intrapredicción no se incluye en el subconjunto de modos de intrapredicción; o, un primer modo de intrapredicción mediante un índice de lista MPM cuando la información sobre el modo de intrapredicción en el flujo de bits indica que el primer modo de intrapredicción se incluye en el subconjunto de modos de intrapredicción, en donde el índice de lista MPM indica un modo de intrapredicción en la lista MPM; realice la intrapredicción basada en el primer modo de intrapredicción para obtener el bloque de imagen actual; y presente, en una pantalla, datos de vídeo que incluyan un bloque de imagen decodificado basado en el primer modo de intrapredicción.
Opcionalmente, en cualquiera de los aspectos anteriores, se proporciona otra implementación del aspecto, el procesador se configura además para: decodificar un índice de línea de referencia cuando el primer modo de intrapredicción se incluye en el subconjunto de modos de intrapredicción, el índice de línea de referencia que indica una primera línea de referencia de la pluralidad de líneas de referencia para el primer modo de intrapredicción.
Opcionalmente, en cualquiera de los aspectos anteriores, se proporciona otra implementación del aspecto, en donde el índice de línea de referencia se coloca después del primer modo de intrapredicción en el flujo de bits.
Para mayor claridad, uno cualquiera de los aspectos anteriores puede combinarse con uno cualquiera o más de los otros aspectos anteriores para crear una nueva realización dentro del alcance 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 junto con los dibujos adjuntos y las reivindicaciones.
Opcionalmente, en cualquiera de los aspectos anteriores, se proporciona otra implementación del aspecto, en donde la pluralidad de líneas de referencia se indica por una pluralidad de palabras de código, y una segunda línea de referencia más alejada del bloque actual se indica por la palabra de código con una segunda longitud más corta.
Opcionalmente, en cualquiera de los aspectos anteriores, se proporciona otra implementación del aspecto, en donde la pluralidad de líneas de referencia se indican por una pluralidad de palabras de código, y una línea de referencia predefinida distinta de una línea de referencia adyacente se indica por la palabra de código con una segunda longitud más corta.
Opcionalmente, en cualquiera de los aspectos anteriores, se proporciona otra implementación del aspecto, en donde la pluralidad de líneas de referencia se indica por una pluralidad de palabras de código, la pluralidad de palabras de código se ordena en un grupo de clase A y un grupo de clase B, el grupo de clase A que incluye palabras de código con longitudes más cortas que las longitudes de las palabras de código en el grupo de clase B.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en donde la pluralidad de líneas de referencia incluye filas de referencia y columnas de referencia, y un número de filas de referencia almacenadas para el bloque actual es la mitad de un número de columnas de referencia almacenadas para el bloque actual.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en donde la pluralidad de líneas de referencia incluye filas de referencia y columnas de referencia, y un número de filas de referencia almacenadas para el bloque actual es igual a un número de columnas de referencia almacenadas para el bloque actual menos uno.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona, en donde la pluralidad de líneas de referencia incluye filas de referencia, y un número de filas de referencia almacenadas para el bloque actual se selecciona basado en un número de filas de referencia empleadas por una operación de filtro de desbloqueo.
Para mayor claridad, uno cualquiera de los aspectos anteriores puede combinarse con uno cualquiera o más de los otros aspectos anteriores para crear una nueva realización dentro del alcance 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 junto con los dibujos adjuntos y las reivindicaciones.
Breve descripción de los dibujos
Para una comprensión más completa de esta descripción, se hace referencia ahora a la siguiente descripción breve, tomada en relación con los dibujos adjuntos y la descripción detallada, en donde los números de referencia iguales representan partes iguales.
La FIG. 1 es un diagrama de flujo de un método de ejemplo para codificar una señal de vídeo.
La FIG. 2 es un diagrama esquemático de un sistema de codificación y decodificación (códec) de ejemplo para codificación de vídeo.
La FIG. 3 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo que puede implementar la intrapredicción.
La FIG. 4 es un diagrama de bloques que ilustra un decodificador de vídeo de ejemplo que puede implementar la intrapredicción.
La FIG. 5 es un diagrama esquemático que ilustra modos de intrapredicción de ejemplo empleados en la codificación de vídeo.
La FIG. 6 es un diagrama esquemático que ilustra un ejemplo de relaciones direccionales de bloques en la codificación de vídeo.
La FIG. 7 es un diagrama esquemático que ilustra un ejemplo de un esquema de línea de referencia primaria para codificar un bloque con intrapredicción.
La FIG. 8 es un diagrama esquemático que ilustra un ejemplo de un esquema de línea de referencia alternativa para codificar un bloque con intrapredicción.
La FIG. 9 es un diagrama esquemático que ilustra un subconjunto de modos de intrapredicción de ejemplo.
La FIG. 10 es un diagrama esquemático que ilustra una representación de señalización condicional de ejemplo para líneas de referencia alternativas en un flujo de bits de codificación de vídeo.
La FIG. 11 es un diagrama esquemático que ilustra una representación de señalización condicional de ejemplo para una línea de referencia primaria en un flujo de bits de codificación de vídeo.
La FIG. 12 es un diagrama esquemático que ilustra un mecanismo de ejemplo para la intrapredicción de modo DC de con líneas de referencia alternativas.
La FIG. 13 es un diagrama esquemático que ilustra un mecanismo de ejemplo para codificar líneas de referencia alternativas con palabras de código.
La FIG. 14 es un diagrama esquemático que ilustra un mecanismo de ejemplo para codificar líneas de referencia alternativas con diferentes números de filas y columnas.
La FIG. 15 es un diagrama esquemático que ilustra otro mecanismo de ejemplo para codificar líneas de referencia alternativas con diferentes números de filas y columnas.
La FIG. 16 es un diagrama esquemático de un dispositivo de codificación de vídeo de ejemplo.
La FIG. 17 es un diagrama de flujo de un método de ejemplo de codificación de vídeo con un subconjunto de modos de intrapredicción con líneas de referencia alternativas.
La FIG. 18 es un diagrama de flujo de un método de ejemplo de codificación de vídeo con intrapredicción de modo DC con líneas de referencia alternativas.
La FIG. 19 es un diagrama de flujo de un método de ejemplo codificación de vídeo con líneas de referencia codificadas por palabras de código basadas en la probabilidad de selección.
Descripción detallada
Debe entenderse desde el principio que, aunque a continuación se proporciona una implementación ilustrativa de una o más realizaciones, los sistemas y/o métodos descritos pueden implementarse usando cualquier número de técnicas, ya sean conocidas actualmente o existentes. La descripción no debe de ninguna manera estar limitada a las implementaciones ilustrativas, dibujos, y técnicas ilustradas a continuación, que incluyen los diseños e implementaciones ejemplares ilustrados y descritos en la presente memoria.
Muchos esquemas se emplean en tándem para comprimir datos de vídeo durante el proceso de codificación de vídeo. Por ejemplo, una secuencia de vídeo se divide en fotogramas de imagen. Los fotogramas de imagen se particionan en bloques de imagen. Los bloques de imagen pueden entonces ser comprimidos por interpredicción (correlación entre bloques en diferentes fotogramas) o intrapredicción (correlación entre bloques en el mismo fotograma). En la intrapredicción, se predice un bloque de imagen actual a partir de una línea de referencia de muestras. La línea de referencia incluye muestras de bloques de imagen adyacentes, también llamados bloques vecinos. Las muestras del bloque actual se hacen coincidir con muestras de la línea de referencia con los valores de luma (luz) o croma (color) más cercanos. El bloque actual se codifica como modos de predicción que indican las muestras coincidentes. Los modos de predicción incluyen modos de predicción angular, modo de corriente continua (DC) y modo planar. Las diferencias entre los valores predichos por los modos de predicción y los valores reales se codifican como valores residuales en un bloque residual. La correspondencia puede mejorarse empleando múltiples líneas de referencia. Una mejor correspondencia da como resultado valores residuales reducidos y, por lo tanto, una mejor compresión. Sin embargo, aumentar el número de líneas de referencia puede aumentar el número de bins (valores binarios) necesarios para identificar de forma única las líneas de referencia coincidentes. En los casos donde no se necesitan múltiples líneas de referencia para determinar una coincidencia óptima, los aumentos en la sobrecarga de señalización asociada con la identificación de las múltiples líneas de referencia pueden superar las ganancias de compresión generalmente asociadas con múltiples líneas de referencia y, por lo tanto, aumentar el tamaño general del archivo de flujo de bits. Esto da como resultado una disminución de la eficiencia de codificación en dichos casos.
Se describen en la presente descripción mecanismos para soportar procesos de codificación de vídeo que reducen la sobrecarga de señalización relacionada con la intrapredicción basada en múltiples líneas de referencia y, por lo tanto, aumentan la compresión en los sistemas de codificación de vídeo. Por ejemplo, se describe un mecanismo para crear un subconjunto de modos de intrapredicción. Permitir que todos los modos de intrapredicción tengan acceso a un conjunto completo de múltiples líneas de referencia puede dar como resultado una mayor sobrecarga de señalización y, por lo tanto, grandes tamaños de archivo para la codificación final. En consecuencia, el subconjunto de modos de intrapredicción contiene un subconjunto de modos de intrapredicción que tienen acceso a líneas de referencia alternativas, y los modos que se excluyen del subconjunto de modos de intrapredicción se limitan a acceder a una línea de referencia primaria. Como se usa en la presente memoria, la línea de referencia primaria es la línea de referencia colocada más cerca del bloque actual (por ejemplo, inmediatamente adyacente). Las líneas de referencia alternativas incluyen tanto la línea de referencia primaria como un conjunto de líneas de referencia que se colocan más lejos del bloque actual que la línea de referencia primaria. El codificador puede emplear modos del subconjunto de modos de intrapredicción cuando las líneas de referencia alternativas son beneficiosas y emplear modos que se excluyen del subconjunto de modos de intrapredicción cuando la línea de referencia primaria es suficiente. Como los modos fuera del subconjunto de modos de intrapredicción se limitan a acceder a la línea de referencia primaria, se pueden omitir los índices de líneas de referencia para los modos de intrapredicción que no se incluyen en el subconjunto de modos de intrapredicción. Esto se puede lograr codificando el índice de línea de referencia después de la información del modo de intrapredicción. Cuando la información del modo de intrapredicción indica que el modo de intrapredicción no se incluye en el subconjunto de modos de intrapredicción, el decodificador puede conocer contextualmente que no se incluye ningún índice de línea de referencia. Los modos de intrapredicción incluidos en el subconjunto de modos de intrapredicción pueden estar predeterminados (por ejemplo, almacenados en una tabla y/o codificados) y/o inferidos contextualmente basados en subconjuntos de modo de intrapredicción de bloque vecino, etc. En algunos casos, el subconjunto de modos de intrapredicción se puede seleccionar para incluir modos asociados con una lista de modos más probables (MPM). Esto permite que el modo más comúnmente seleccionado tenga acceso a líneas de referencia alternativas. Además, los modos de intrapredicción en el subconjunto de modos de intrapredicción se pueden señalizar basados en un índice de subconjunto de modos de intrapredicción. Como el subconjunto de modos de intrapredicción contiene menos modos de predicción que el conjunto completo del modo de intrapredicción, el índice del subconjunto de modos de intrapredicción generalmente se puede señalar con menos bins. Además, se describe una extensión al modo de intrapredicción DC. El modo de intrapredicción DC descrito puede permitir que se determine un valor de predicción DC basado en líneas de referencia alternativas. También se describe un mecanismo para condensar tamaños de palabras de código que indiquen líneas de referencia particulares. En este mecanismo, las líneas de referencia se indexan basadas en la probabilidad de selección y no basadas en la distancia desde una muestra de imagen actual. Por ejemplo, los índices de línea de referencia que tienen más probabilidades de ser seleccionados reciben el índice más corto y las líneas de referencia que tienen menos probabilidades de ser seleccionadas reciben los índices más largos. Esto da como resultado codificaciones más pequeñas para los índices de línea de referencia en la mayoría de los casos. Las palabras de código para los índices de línea de referencia pueden determinarse de antemano y emplearse de manera consistente (por ejemplo, almacenadas en una tabla y/o codificadas en el código). Además, los diseños de hardware particulares requieren más memoria para almacenar filas de línea de referencia que columnas de línea de referencia. En consecuencia, se describe un mecanismo para soportar almacenar menos filas de referencia que columnas de referencia cuando se codifica una muestra de imagen, y por lo tanto para soportar una reducción en los requisitos de memoria durante la codificación.
La FIG. 1 es un diagrama de flujo de un método 100 de ejemplo para codificar una señal de vídeo. Específicamente, una señal de vídeo se codifica en un codificador. El proceso de codificación comprime la señal de vídeo empleando varios mecanismos para reducir el tamaño del archivo de vídeo. Un tamaño de archivo más pequeño permite que el archivo de vídeo comprimido se transmita hacia un usuario, al tiempo que reduce la sobrecarga de ancho de banda asociada. El decodificador luego decodifica el archivo de vídeo comprimido para reconstruir la señal de vídeo original para visualizarla a un usuario final. El proceso de decodificación generalmente refleja el proceso de codificación para permitir que el decodificador reconstruya consistentemente la señal de vídeo.
En la etapa 101, la señal de vídeo se introduce en el codificador. Por ejemplo, la señal de vídeo puede ser un archivo de vídeo sin comprimir almacenado en la memoria. Como otro ejemplo, el archivo de vídeo puede ser capturado por un dispositivo de captura de vídeo, tal como una cámara de vídeo, y codificado para soportar la transmisión en vivo del vídeo. El archivo de vídeo puede incluir tanto un componente de audio como un componente de vídeo. El componente de vídeo contiene una serie de fotogramas de imagen que, cuando se ven en una secuencia, dan la impresión visual de movimiento. Los fotogramas contienen píxeles que se expresan en términos de luz, denominados en la presente memoria componentes de luma, y color, que se denominan componentes de croma. En algunos ejemplos, los fotogramas también pueden contener valores de profundidad para soportar la visualización tridimensional.
En la etapa 103, el vídeo se particiona en bloques. La partición incluye subdividir los píxeles en cada fotograma en bloques cuadrados y/o rectangulares para su compresión. Por ejemplo, se pueden emplear árboles de codificación para dividir y luego subdividir bloques recursivamente hasta que se logren configuraciones que soporten una codificación adicional. Como tal, los bloques pueden denominarse unidades de árbol de codificación en Codificación de Vídeo de Alta Eficiencia (HEVC) (también conocida como H.265 y Parte 2 MPEG-H). Por ejemplo, los componentes de luma de un fotograma se pueden subdividir hasta que los bloques individuales contengan valores de iluminación relativamente homogéneos. Además, los componentes de croma de un fotograma se pueden subdividir hasta que los bloques individuales contengan valores de color relativamente homogéneos. En consecuencia, los mecanismos de partición varían dependiendo del contenido de los fotogramas de vídeo.
En la etapa 105, se emplean varios mecanismos de compresión para comprimir los bloques de imagen particionados en la etapa 103. Por ejemplo, se puede emplear la interpredicción y/o la intrapredicción. La interpredicción está diseñada para aprovechar el hecho de que los objetos de una escena común tienden a aparecer en fotogramas sucesivos. En consecuencia, un bloque que representa un objeto en un fotograma de referencia no necesita describirse repetidamente en fotogramas posteriores. Específicamente, un objeto, tal como una tabla, puede permanecer en una posición constante sobre múltiples fotogramas. Por lo tanto, la tabla se describe una vez y los fotogramas posteriores pueden referirse al fotograma de referencia. Se pueden emplear mecanismos de coincidencia de patrones para hacer coincidir objetos sobre múltiples fotogramas. Además, los objetos en movimiento pueden representarse en múltiples fotogramas, por ejemplo, debido al movimiento del objeto o al movimiento de la cámara. Como un ejemplo particular, el vídeo puede mostrar un automóvil que se mueve a través de la pantalla sobre múltiples fotogramas. Se pueden emplear vectores de movimiento para describir dicho movimiento. Un vector de movimiento es un vector bidimensional que proporciona un desplazamiento desde las coordenadas de un objeto en un fotograma hasta las coordenadas del objeto en un fotograma de referencia. Como tal, la interpredicción puede codificar un bloque de imagen en un fotograma actual como un conjunto de vectores de movimiento que indican un desplazamiento de un bloque correspondiente en un fotograma de referencia.
La intrapredicción codifica bloques en un fotograma común. La intrapredicción aprovecha el hecho de que los componentes de luma y de croma tienden a agruparse en un fotograma. Por ejemplo, una mancha de verde en una parte de un árbol tiende a colocarse adyacente a manchas similares de verde. La intrapredicción emplea múltiples modos de predicción direccional (por ejemplo, treinta y tres en HEVC), un modo planar y un modo DC. Los modos direccionales indican que un bloque actual es similar/el mismo que 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) se pueden interpolar basados en 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 límites e indica que un bloque es similar/el mismo que un valor promedio asociado con muestras de todos los bloques vecinos asociados con las direcciones angulares de los modos de predicción direccional. En consecuencia, los bloques de intrapredicció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 interpredicción pueden representar bloques de imagen como valores de vector 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. Pueden aplicarse transformaciones a los bloques residuales para comprimir aún más el archivo.
En la etapa 107, pueden aplicarse 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 analizada anteriormente puede dar como resultado 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 su uso posterior como un bloque de referencia. El esquema de filtrado en bucle aplica iterativamente filtros de supresión de ruido, filtros de desbloqueo, filtros de bucle adaptativo y filtros de offset adaptativo de muestra (SAO) a los bloques/fotogramas. Estos filtros mitigan dichos 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 posteriores que se codifican basados en los bloques de referencia reconstruidos.
Una vez que la señal de vídeo ha sido particionada, comprimida y filtrada, los datos resultantes se codifican en un flujo de bits en la etapa 109. El flujo de bits incluye los datos analizados anteriormente, así como cualquier dato de señalización deseado para soportar la reconstrucción adecuada de la señal de vídeo en el decodificador. Por ejemplo, dichos datos pueden incluir datos de partición, datos de predicción, bloques residuales y varios indicadores que proporcionan instrucciones de codificación al decodificador. El flujo de bits puede ser almacenado en memoria para su transmisión hacia un decodificador bajo demanda. El flujo de bits también puede ser difundido y/o multidifundido hacia una pluralidad de decodificadores. La creación del flujo de bits es un proceso iterativo. En consecuencia, las etapas 101, 103, 105, 107 y 109 pueden ocurrir de manera continua y/o simultánea sobre muchos fotogramas y bloques. El orden que se muestra en la FIG. 1 se presenta para mayor claridad y facilidad del análisis, y no tiene la intención de limitar el proceso de codificación de vídeo a un orden particular.
El decodificador recibe el flujo de bits y comienza el proceso de decodificación en la etapa 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 vídeo correspondientes. El decodificador emplea los datos de sintaxis del flujo de bits para determinar las particiones para los fotogramas en la etapa 111. La partición debe coincidir con los resultados de la partición de bloques en la etapa 103. Ahora se describe la codificación/decodificación de entropía como se emplea en la etapa 111. El codificador hace muchas elecciones durante el proceso de compresión, tales como seleccionar esquemas de partición de bloques de varias opciones posibles basadas en el posicionamiento espacial de los valores en la(s) imagen(es) de entrada. La señalización de las opciones exactas puede emplear un gran número de bins. Como se usa en la presente memoria, un bin es un valor binario que se trata como variable (por ejemplo, un valor de bits 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 de código se basa en el número de opciones permitidas (por ejemplo, un bin para dos opciones, dos bins para tres a cuatro opciones, etc.). A continuación, el codificador codifica la palabra de código para la opción seleccionada. Este esquema reduce el tamaño de las palabras de código, ya que las palabras de código son tan grandes como se desee para indicar de forma única una selección de un pequeño subconjunto de opciones permitidas en lugar de indicar de forma única la selección de un conjunto potencialmente grande de todas las opciones posibles. El decodificador luego decodifica la selección determinando el conjunto de opciones permitidas de una manera similar al codificador. Determinando el conjunto de opciones permitidas, el decodificador puede leer la palabra de código y determinar la selección realizada por el codificador.
En la etapa 113, el decodificador realiza la decodificación de bloques. Específicamente, el decodificador emplea transformaciones inversas para generar bloques residuales. Luego, el decodificador emplea los bloques residuales y los bloques de predicción correspondientes para reconstruir los bloques de imagen según la partición. Los bloques de predicción pueden incluir tanto bloques de intrapredicción como bloques de interpredicción tal como se generan en el codificador en la etapa 105. Los bloques de imagen reconstruidos se colocan entonces en fotogramas de una señal de vídeo reconstruida según los datos de partición determinados en la etapa 111. La sintaxis para la etapa 113 también se puede señalizar en el flujo de bits a través de la codificación de entropía como se analizó anteriormente.
En la etapa 115, el filtrado se realiza en los fotogramas de la señal de vídeo reconstruida de una manera similar a la etapa 107 en el codificador. Por ejemplo, los filtros de supresión de ruido, filtros de desbloqueo, filtros de bucle adaptativo y filtros SAO pueden aplicarse a los fotogramas para eliminar artefactos de bloqueo. Una vez que se filtran los cuadros, la señal de vídeo se puede enviar a una pantalla en la etapa 117 para que la vea un usuario final.
La FIG. 2 es un diagrama esquemático de un sistema 200 de codificación y decodificación (códec) de ejemplo para codificación de vídeo. Específicamente, el sistema 200 de códec proporciona funcionalidad para soportar la implementación del método 100. 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 vídeo como se analiza con respecto a las etapas 101 y 103 en el método 100, lo que da como resultado una señal 201 de vídeo particionada. El sistema 200 de códec luego comprime la señal 201 de vídeo particionada en un flujo de bits codificado cuando actúa como un codificador como se analizó con respecto a las etapas 105, 107 y 109 en el método 100. Cuando actúa como un sistema 200 de códec decodificador genera una señal de vídeo de salida del flujo de bits como se analiza con respecto a las etapas 111, 113, 115 y 117 en el método 100. El sistema 200 de códec incluye un componente 211 de control de codificador general, un componente 213 de escalado y cuantificación de transformación, un componente 215 de estimación intraimagen, un componente 217 de predicción intraimagen, un componente 219 de compensación de movimiento, un componente 221 de estimación de movimiento, un componente 229 de escalado y transformación inversa, un componente 227 de análisis de control de filtros, un componente 225 de filtro en bucle, un componente 223 de búfer de imágenes decodificadas, y componente 231 de formateo de cabecera y de codificación aritmética binaria adaptativa de contexto (CABAC). Dichos componentes se acoplan 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 intraimagen, el componente 219 de compensación de movimiento, el componente 229 de escalado y transformación inversa, el componente 225 de filtros en bucle y el componente 223 de búfer de imágenes decodificadas. Estos componentes se describen ahora.
La señal 201 de vídeo particionada es un flujo de vídeo capturado que ha sido particionado 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 más pequeños de píxeles. Estos bloques se pueden subdividir 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 árbol de codificación/nodo. Los bloques divididos se denominan unidades de codificación (CU) en algunos casos. Los modos de división pueden incluir un árbol binario (BT), un árbol triple (TT) y un árbol cuádruple (QT) empleados para particionar 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 vídeo particionada se reenvía al componente 211 de control de codificador general, al componente 213 de escalado y cuantificación de transformada, al componente 215 de estimación intraimagen, al componente 227 de análisis de control de filtros y al componente 221 de estimación de movimiento para su compresión.
El componente 211 de control de codificador general está configurado para tomar decisiones relacionadas con la codificación de las imágenes de la secuencia de vídeo en el flujo de bits según las restricciones de la aplicación. Por ejemplo, el componente 211 de control de codificador general gestiona la optimización de la tasa de bits/tamaño de flujo de bits frente a la calidad de reconstrucción. Dichas decisiones pueden tomarse basadas en la disponibilidad de espacio de almacenamiento/ancho de banda y las solicitudes de resolución de imágenes. El componente 211 de control de codificador general también gestiona la utilización de búfer a la luz de la velocidad de transmisión para mitigar los problemas de infrautilización y desbordamiento del búfer. Para gestionar estos problemas, el componente 211 de control de codificador general gestiona la partición, la predicción y el filtrado por los otros componentes. Por ejemplo, el componente 211 de control de codificador general puede aumentar dinámicamente la complejidad de compresión para aumentar la resolución y aumentar el uso del ancho de banda o disminuir la complejidad de compresión para disminuir la resolución y el uso del ancho de banda. Por lo tanto, el componente 211 de control de codificador general controla los otros componentes del sistema 200 de códec para equilibrar la calidad de reconstrucción de la señal de vídeo con aspecto de tasa de bits. El componente 211 de control de codificador general crea datos de control, que controlan el funcionamiento de los otros componentes. Los datos de control también se reenvían al componente 231 de formateo de cabecera y CABAC para codificarse en el flujo de bits para señalizar parámetros de decodificación en el decodificador.
La señal 201 de vídeo 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 interpredicción. El fotograma o segmento de la señal 201 de vídeo particionada se puede dividir en múltiples bloques de vídeo. 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 vídeo recibido con respecto a uno o más bloques en uno o más fotogramas de referencia para proporcionar una predicción temporal. El codificador 200 de vídeo puede realizar múltiples pasadas de codificación, por ejemplo, para seleccionar un modo de codificación apropiado para cada bloque de datos de vídeo.
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 para bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una unidad de predicción (PU) de un bloque de vídeo con respecto a un bloque predictivo dentro de un fotograma de referencia (u otra unidad codificada) con respecto al bloque actual que se está codificando dentro del fotograma actual (u otra unidad codificada). Un bloque predictivo es un bloque que se encuentra que coincide estrechamente con el bloque a codificar, en términos de diferencia de píxeles, que puede determinarse mediante la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrática (SSD) u otras métricas de diferencia. En algunos ejemplos, el sistema 200 de códec puede calcular valores para posiciones de píxeles de subenteros de imágenes de referencia almacenadas en el búfer 223 de imágenes decodificadas. Por ejemplo, el codificador 200 de vídeo puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones fraccionarias de píxel de la imagen de referencia. Por lo tanto, el componente 221 de estimación de movimiento puede realizar una búsqueda de movimiento con respecto a las posiciones de píxeles completos y posiciones de píxeles fraccionarios y generar un vector de movimiento con precisión de píxeles fraccionarios. El componente 221 de estimación de movimiento calcula un vector de movimiento para una PU de un bloque de vídeo en un segmento intercodificado comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. El componente 221 de estimación de movimiento genera el vector de movimiento calculado como datos de movimiento para el componente 231 de formateo de cabecera y CABAC para la codificación y el movimiento para el componente 219 de compensación de movimiento.
La compensación de movimiento, realizada por el componente 219 de compensación de movimiento, puede implicar buscar o generar el bloque predictivo basado en el vector de movimiento determinado por el componente 221 de estimación de movimiento. Nuevamente, el componente 221 de estimación de movimiento y el componente 219 de compensación de movimiento pueden integrarse funcionalmente, en algunos ejemplos. Al recibir el vector de movimiento para la PU del bloque de vídeo actual, el componente 219 de compensación de movimiento puede ubicar el bloque predictivo al que apunta el vector de movimiento en una lista de imágenes de referencia. A continuación, se forma un bloque de vídeo residual restando los valores de píxel del bloque predictivo de los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxel. En general, el componente 221 de estimación de movimiento realiza la estimación de movimiento con respecto a los componentes de luma, y el componente 219 de compensación de movimiento usa vectores de movimiento calculados basado 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 reenvían para transformar el componente 213 de escalado y cuantificación.
La señal 201 de vídeo particionada también se envía al componente 215 de estimación intraimagen y al componente 217 de predicción intraimagen. Al igual que con el componente 221 de estimación de movimiento y el componente 219 de compensación de movimiento, el componente 215 de estimación intraimagen y el componente 217 de predicción intraimagen pueden estar altamente integrados, pero se ilustran por separado para fines conceptuales. El componente 215 de estimación intraimagen y el componente 217 de predicción intraimagen intrapredicen un bloque actual con respecto a bloques en un fotograma actual, como una alternativa a la interpredicción realizada por el componente 221 de estimación de movimiento y el componente 219 de compensación de movimiento entre fotogramas, como se describió anteriormente. En particular, el componente 215 de intrapredicción puede determinar un modo de intrapredicción a usar para codificar un bloque actual. En algunos ejemplos, el componente 215 de estimación intraimagen selecciona un modo de intrapredicción apropiado para codificar un bloque actual a partir de múltiples modos de intrapredicción probados. Los modos de intrapredicción seleccionados se reenvían al componente 231 de formateo de cabecera y CABAC para su codificación.
Por ejemplo, el componente 215 de intrapredicción calcula los valores de distorsión de tasa usando un análisis de distorsión de tasa para los varios modos de intrapredicción probados, y selecciona el modo de intrapredicción que tenga las mejores características de distorsión de tasa entre los modos probados. El análisis de distorsión de tasa generalmente determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque original sin codificar que fue codificado para producir el bloque codificado, así como una tasa de bits (es decir, un número de bits) usada para producir el bloque codificado. El componente 215 de intrapredicción calcula relaciones a partir de las distorsiones y tasas para los varios bloques codificados para determinar qué modo de intrapredicción exhibe el mejor valor de distorsión de tasa para el bloque. Además, el componente 215 de estimación intraimagen puede configurarse para codificar bloques de profundidad de un mapa de profundidad usando un modo de modelado de profundidad (DMM) basado en la optimización de distorsión de tasa (RDO).
El componente 217 de predicción intraimagen puede generar un bloque residual a partir del bloque predictivo basado en los modos de intrapredicción seleccionados determinados por el componente 215 de estimación intraimagen 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 en valores entre el bloque predictivo y el bloque original, representado como una matriz. El bloque residual se reenvía entonces al componente 213 de escalado y cuantificación de transformación. El componente 215 de estimación intraimagen y el componente 217 de predicción intraimagen pueden operar tanto en componentes de luma como de croma.
El componente 213 de escalado y cuantificación de transformación está configurado para comprimir aún más el bloque residual. El componente 213 de escalado y cuantificación de transformación aplica una transformación, tal como una transformación de coseno discreta (DCT), una transformación de seno discreta (DST) o una transformación conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficiente de transformación residual. También podrían usarse transformaciones de ondícula, transformaciones de enteros, transformaciones de subbanda u otros tipos de transformaciones. La transformación puede convertir la información residual de un dominio de valor de píxel a un dominio de transformación, tal como un dominio de la frecuencia. El componente 213 de escalado y cuantificación de transformación también está configurado para escalar la información residual transformada, por ejemplo, basado en la frecuencia. Dicho escalado implica aplicar un factor de escala a la información residual para que la información de frecuencia diferente se cuantifique en diferentes granularidades, lo que puede afectar la calidad visual final del vídeo reconstruido. El componente 213 de escalado y cuantificación de transformación también se configura para cuantificar los coeficientes de transformación para reducir aún más la tasa de bits. El proceso de cuantificación puede reducir la profundidad de bit asociada con algunos o todos los coeficientes. El grado de cuantificación puede modificarse ajustando un parámetro de cuantificación. En algunos ejemplos, el componente 213 de cuantificación puede realizar entonces un escaneo de la matriz que incluya los coeficientes de transformación cuantificados. Los coeficientes de transformación cuantificados se envían al componente 231 de formateo de cabecera y CABAC para codificarse en el flujo de bits.
El componente 229 de escalado y transformación inversa aplica una operación inversa del componente 213 de escalado y cuantificación de transformación para soportar la estimación de movimiento. El componente 229 de escalado y transformación inversa aplica escalado inverso, transformación y/o cuantización para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para su uso posterior como un 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 de nuevo a un bloque predictivo correspondiente para su uso en la estimación de movimiento de un bloque/fotograma posterior. Los filtros se aplican a los bloques de referencia reconstruidos para mitigar los artefactos creados durante el escalado, cuantificación y transformación. De lo contrario, dichos artefactos podrían causar una predicción inexacta (y crear artefactos adicionales) cuando se predicen 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 transformación inversa puede combinarse con un bloque de predicción correspondiente del componente 217 de predicción intraimagen y/o el 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 en cambio a los bloques residuales. Al igual que con 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 se deben aplicar dichos filtros y establece los parámetros correspondientes. Dichos datos se reenvían al componente 231 de formateo de cabecera y CABAC como datos de control de filtro para su codificación. El componente 225 de filtros en bucle aplica dichos filtros basados en los datos de control de filtro. 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/de píxeles (por ejemplo, en un bloque de píxeles reconstruido) o en el dominio de la frecuencia, dependiendo del ejemplo.
Cuando se opera como un codificador, el bloque de imagen reconstruido filtrado, el bloque residual y/o el bloque de predicción se almacenan en el búfer 223 de imágenes decodificadas para su uso posterior en la estimación de movimiento como se analizó anteriormente. Cuando opera como un decodificador, el búfer 223 de imágenes decodificadas almacena y reenvía los bloques reconstruidos y filtrados hacia una pantalla como parte de una señal de vídeo de salida. El búfer 223 de imágenes decodificadas 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 formateo de cabecera y CABAC recibe los datos de los varios 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 formateo de cabecera y CABAC genera varias cabeceras para codificar datos de control, tal como datos de control general y datos de control de filtro. Además, los datos de predicción, incluidos los datos de intrapredicción y de movimiento, así como los datos residuales en la forma de datos de coeficientes de transformación cuantificados se codifican todos 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 vídeo particionada original. Dicha información también puede incluir tablas de índice de modo de intrapredicción (también denominadas tablas de mapeo de palabras de código), definiciones de contextos de codificación para varios bloques, indicaciones de los modos de intrapredicción más probables, una indicación de información de partición, etc. Dichos datos pueden codificarse empleando codificación de entropía. Por ejemplo, la información puede codificarse empleando codificación de longitud variable adaptable al contexto (CAVLC), (CABAC), codificación aritmética binaria adaptable al contexto basada en sintaxis (SBAC), codificación de entropía de partición de intervalo de probabilidad (PIPE) u otra técnica de codificación de entropía. Después de la codificación de entropía, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, el decodificador de vídeo) o archivarse para su posterior transmisión o recuperación.
La FIG. 3 es un diagrama de bloques que ilustra un codificador 300 de vídeo de ejemplo que puede implementar la intrapredicción. El codificador 300 de vídeo se puede emplear para implementar las funciones de codificación del sistema 200 de códec y/o implementar las etapas 101, 103, 105, 107 y/o 109 del método 100. El codificador 300 de vídeo particiona una señal de vídeo de entrada, lo da como resultado una señal 301 de vídeo particionada, que es sustancialmente similar a la señal 201 de vídeo particionada. A continuación, la señal 301 de vídeo particionada es comprimida y codificada en un flujo de bits por componentes del codificador 300.
Específicamente, la señal 301 de vídeo particionada se reenvía a un componente 317 de predicción intraimagen para la interpredicción. El componente 317 de predicción intraimagen puede ser sustancialmente similar al componente 215 de estimación intraimagen y al componente 217 de predicción intraimagen. La señal 301 de vídeo particionada también se reenvía a un componente 321 de compensación de movimiento para la interpredicción basada en bloques de referencia en un búfer 323 de imágenes decodificadas. 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 intraimagen y el componente 321 de compensación de movimiento se envían a un componente 313 de transformación y cuantificación para transformación y cuantificación de los bloques residuales. El componente 313 de transformación y cuantificación puede ser sustancialmente similar al componente 213 de escalado y cuantificación de transformación. Los bloques residuales transformados y cuantificados y los bloques de predicción correspondientes (junto con los datos de control asociados) se reenvían a un componente 331 de codificación de entropía para codificar en un flujo de bits. El componente 331 de codificación de entropía puede ser sustancialmente similar al componente 231 de formateo de cabecera y CABAC.
Los bloques residuales transformados y cuantificados y/o los bloques de predicción correspondientes también se reenvían desde el componente 313 de transformación y cuantificación a un componente 329 de cuantificación y transformación inversa para la 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 transformación inversa puede ser sustancialmente similar al componente 229 de escalado y transformación inversa. Los filtros en bucle en un componente 325 de filtros en bucle también se aplican a los bloques residuales y/o 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 el componente 225 de filtros en bucle. El componente 325 de filtros en bucle puede incluir múltiples filtros, tales como un filtro de supresión de ruido, un filtro de desbloqueo, un filtro SAO, y/o un filtro de bucle adaptativo. Los bloques filtrados se almacenan entonces en un búfer 323 de imágenes decodificadas para su uso en bloques de referencia por el componente 321 de compensación de movimiento. El búfer 323 de imágenes decodificadas puede ser sustancialmente similar al búfer 223 de imágenes decodificadas.
Como se analiza a continuación, el componente 317 de predicción intraimagen puede realizar la intrapredicción seleccionando modos de intrapredicción con líneas de referencia alternativas asociadas con bloques vecinos. Con el fin de reducir la sobrecarga de señalización, el componente 317 de predicción intraimagen puede determinar un subconjunto de modos de intrapredicción que contiene un subconjunto de modos de intrapredicción que tienen acceso a líneas de referencia alternativas. Los modos que se excluyen del subconjunto de modos de intrapredicción tienen acceso a una línea de referencia primaria. El componente 317 de predicción intraimagen entonces tiene la opción de seleccionar un modo de intrapredicción con líneas de referencia alternativas para obtener una mejor correspondencia o seleccionar un modo de intrapredicción con una línea de referencia primaria para soportar una sobrecarga de señalización más baja. El componente 317 de predicción intraimagen también puede emplear varios otros mecanismos para soportar una mayor eficiencia de codificación cuando se emplean líneas de referencia alternativas como se analiza a continuación.
La FIG. 4 es un diagrama de bloques que ilustra un ejemplo de decodificador 400 de vídeo que puede implementar intrapredicción. El decodificador 400 de vídeo puede ser empleado para implementar las funciones de decodificación del sistema 200 de códec y/o implementar las etapas 111, 113, 115 y/o 117 del método 100. El decodificador 400 recibe un flujo de bits, por ejemplo de un codificador 300, y genera una señal de vídeo de salida reconstruida basada en el flujo de bits para visualizarse 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 realiza la función inversa del componente 331 de codificació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, tal 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 información de cabecera para proporcionar un contexto para interpretar 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 vídeo, tal 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 a partir de bloques residuales. Los coeficientes de transformación cuantificados se envían a un componente 429 de cuantificación y transformación inversa para la reconstrucción en bloques residuales. El componente 429 de cuantificación y transformación inversa puede ser sustancialmente similar al componente 329 de escalado y transformación inversa.
Los bloques residuales reconstruidos y/o los bloques de predicción se reenvían al componente 417 de predicción intraimagen para la reconstrucción en bloques de imagen basados en operaciones de intrapredicción. El componente 417 de predicción intraimagen puede ser sustancialmente similar al componente 317 de predicción intraimagen, pero opera a la inversa. Específicamente, el componente 417 de predicción intraimagen emplea modos de predicción para localizar un bloque de referencia en un fotograma y aplica un bloque residual al resultado para reconstruir bloques de imagen intrapredicha. Los bloques de imagen intrapredicha reconstruidos y/o los bloques residuales y los datos de interpredicción correspondientes se reenvían a un componente 423 de búfer de imágenes decodificadas a través del componente 425 de filtros en bucle, que puede ser sustancialmente similar al componente de búfer 323 de búfer de imágenes decodificadas y al componente 325 de filtros en bucle, respectivamente. El componente 425 de filtros en bucle filtra los bloques de imagen reconstruidos, bloques residuales y/o bloques de predicción, y dicha información se almacena en el componente 423 de búfer de imágenes decodificadas. Los bloques de imagen reconstruidos del componente 423 de búfer de imágenes decodificadas se reenvían a un componente 421 de compensación de movimiento para la interpredicción. El componente 421 de compensación de movimiento puede ser sustancialmente similar al componente 321 de compensación de movimiento, pero puede operar a la inversa. 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 reenviados a través del componente 425 de filtros en bucle al componente 423 de búfer de imágenes decodificadas. El componente 423 de búfer de imágenes decodificadas continúa almacenando bloques de imagen reconstruidos adicionales, que se pueden reconstruir en fotogramas a través de la información de partición. Dichos fotogramas también pueden colocarse en una secuencia. La secuencia es enviada hacia una pantalla como una señal de vídeo de salida reconstruida.
Al igual que con el componente 317 de predicción intraimagen, el componente 417 de predicción intraimagen puede realizar intrapredicción basada en modos de intrapredicción con líneas de referencia alternativas. Específicamente, el componente 417 de predicción intraimagen conoce los modos asignados al subconjunto de modos de intrapredicción. Por ejemplo, el subconjunto de modos de intrapredicción puede corresponder a una lista MPM determinada, puede predefinirse en memoria y/o determinarse basado en el modo de intrapredicción de un bloque vecino, dependiendo del ejemplo. Como tal, el componente 417 de predicción intraimagen puede obtener un índice de línea de referencia del flujo de bits cuando el modo de intrapredicción para el bloque actual está en el subconjunto de modos de intrapredicción. De lo contrario, el componente 417 de predicción intraimagen puede determinar inferencialmente que una línea de referencia primaria está prevista por el codificador. El componente 417 de predicción intraimagen también puede emplear varios otros mecanismos para soportar una mayor eficiencia de codificación cuando se emplean líneas de referencia alternativas como se analiza a continuación.
La FIG. 5 es un diagrama esquemático que ilustra ejemplos de modos 500 de intrapredicción empleados en la codificación de vídeo. Por ejemplo, los modos 500 de predicción intraimagen pueden ser empleados por las etapas 105 y 113 del método 100, el componente 215 de estimación intraimagen y un componente 217 de predicción intraimagen del sistema 200 de códec, el componente 317 de predicción intraimagen del codificador 300, y/o el componente 417 de predicción intraimagen del decodificador 400. Específicamente, los modos 500 de intrapredicción se pueden emplear para comprimir un bloque de imagen en un bloque de predicción que contiene un modo de predicción seleccionado y un bloque residual restante.
Como se señaló anteriormente, la intrapredicción implica hacer coincidir un bloque de imagen actual con una muestra correspondiente o muestras de uno o más bloques vecinos. El bloque de imagen actual se puede representar entonces como un índice de modo de predicción seleccionado y un bloque residual, que es mucho más pequeño que representar todos los valores de luma/croma contenidos en el bloque de imagen actual. La intrapredicción se puede usar cuando no hay un fotograma de referencia disponible, o cuando la codificación de interpredicción no se usa para el bloque o fotograma actual. Las muestras de referencia para la intrapredicción pueden derivarse de bloques vecinos previamente codificados (o reconstruidos) en el mismo fotograma. La Codificación Avanzada de Vídeo (AVC), también conocida como H.264, y H.265/HEVC emplean ambas una línea de referencia de muestras límite de bloques adyacentes como muestra de referencia para la intrapredicción. Para cubrir diferentes texturas o características estructurales se emplean muchos modos de intrapredicción diferentes. El H.265/HEVC soporta un total de treinta y cinco modos 500 de intrapredicción que correlacionan espacialmente un bloque actual con una o más muestras de referencia. Específicamente, los modos 500 de intrapredicción incluyen treinta y tres modos de predicción direccional indexados como modos del dos al treinta y cuatro, un modo DC indexado como modo uno y un modo planar indexado como modo cero.
Durante la codificación, el codificador hace coincidir los valores de luma/croma de un bloque actual con los valores de luma/croma de las muestras de referencia correspondientes en una línea de referencia a través de los bordes de los bloques vecinos. Cuando se encuentra la mejor coincidencia con una de las líneas de referencia, el codificador selecciona uno de los modos 500 de intrapredicción direccional que apunta a la mejor línea de referencia coincidente. Para mayor claridad del análisis, a continuación se emplean acrónimos para hacer referencia a modos 500 de intrapredicción direccionales particulares. DirS denota el modo de intrapredicción direccional inicial cuando se cuenta en el sentido de las agujas del reloj desde la parte inferior izquierda (por ejemplo, modo dos en HEVC). DirE denota el modo de intrapredicción direccional final cuando se cuenta en el sentido de las agujas del reloj desde la parte inferior izquierda (por ejemplo, modo treinta y cuatro en HEVC). DirD denota el modo de intracodificación direccional central cuando se cuenta en el sentido de las agujas del reloj desde la parte inferior izquierda (por ejemplo, modo dieciocho en HEVC). DirH denota un modo de intrapredicción horizontal (por ejemplo, modo diez en HEVC). DirV denota un modo de intrapredicción vertical (por ejemplo, modo veintiséis en HEVC).
Como se analizó anteriormente, el modo DC actúa como una función de suavizado y deriva un valor de predicción de un bloque actual como un valor promedio de todas las muestras de referencia en la línea de referencia que atraviesa los bloques vecinos. También como se analizó anteriormente, el modo planar devuelve un valor de predicción que indica una transición suave (por ejemplo, pendiente constante de valores) entre las muestras en la parte inferior y superior izquierda o superior izquierda y superior derecha de la línea de referencia de muestras de referencia.
Para los modos Planar, DC y de predicción de DirH a DirV, las muestras tanto en la fila superior de la línea de referencia como en la columna izquierda de la línea de referencia se usan como muestras de referencia. Para los modos de predicción con direcciones de predicción de DirS a DirH (incluidos DirS y DirH), las muestras de referencia en los bloques vecinos previamente codificados y reconstruidos en la columna izquierda de la línea de referencia se usan como muestras de referencia. Para los modos de predicción con direcciones de predicción de DirV a DirE (incluidos DirV y DirE), las muestras de referencia de los bloques vecinos previamente codificados y reconstruidos en la columna superior de la línea de referencia se usan como muestras de referencia.
Aunque hay muchos modos 500 de intrapredicción, no todos los modos 500 de intrapredicción se seleccionan con una probabilidad igual durante la codificación de vídeo. Además, los modos 500 de intrapredicción seleccionados por bloques vecinos estadísticamente tienen una alta correlación con los modos 500 de intrapredicción seleccionados para un bloque actual. Por lo tanto, una lista MPM se emplea en algunos ejemplos. Una lista MPM es una lista que contiene un subconjunto de los modos 500 de intrapredicción que es más probable que se seleccionen. Si se incluye un modo de intrapredicción de un bloque actual en la lista MPM, el modo seleccionado se señaliza en el flujo de bits mediante el índice de lista MPM, que emplea palabras de código con menos bins que el número de bins empleados para identificar de forma única todos los modos 500 de intrapredicción.
La lista MPM se construye con modos 500 de intrapredicción de algunos bloques decodificados vecinos y también algunos modos de intrapredicción por defecto con una alta probabilidad seleccionada en general. Por ejemplo, en H.265/HEVC, la lista MPM con longitud tres se construye con los modos de intrapredicción de dos bloques vecinos, uno arriba y otro a la izquierda de los bloques actuales. En caso de modos duplicados, la lista MPM se asigna por defecto como modo planar, modo DC o modo DirV, en ese orden. La lista MPM también puede contener modos 500 de intrapredicción de bloques vecinos adicionales y/o modos 500 de intrapredicción por defecto adicionales, cuando la lista MPM incluye una longitud más larga. La longitud de la lista MPM y el esquema de construcción pueden estar predefinidos.
La FIG. 6 es un diagrama esquemático que ilustra un ejemplo de relaciones direccionales de bloques 600 en la codificación de vídeo. Por ejemplo, los bloques 600 se pueden emplear cuando se seleccionan los modos 500 de intrapredicción. Por lo tanto, los bloques 600 de predicción pueden ser empleados por las etapas 105 y 113 del método 100, el componente 215 de estimación intraimagen y un componente 217 de predicción intraimagen del sistema 200 de códec, el componente 317 de predicción intraimagen del codificador 300, y/o el componente 417 de predicción intraimagen del decodificador 400. En la codificación de vídeo, los bloques 600 se particionan basados en el contenido de vídeo y, por lo tanto, pueden incluir muchos rectángulos y cuadrados de diferentes formas y tamaños. Los bloques 600 se representan como cuadrados para fines de explicación y, por lo tanto, se simplifican a partir de los bloques de codificación de vídeo reales para soportar la claridad del análisis.
Los bloques 600 contienen un bloque 601 actual y bloques 610 vecinos. El bloque 610 actual es cualquier bloque que se está codificando en un momento específico. Los bloques 610 vecinos son cualquier bloque inmediatamente adyacente al borde izquierdo o al borde superior del bloque 601 actual. La codificación de vídeo generalmente se realiza de arriba a la izquierda a abajo a la derecha. Como tal, los bloques 610 vecinos pueden ser codificados y reconstruidos antes de codificar el bloque 601 actual. Cuando se codifica el bloque 601 actual, el codificador hace coincidir los valores de luma/croma del bloque 601 actual con una muestra (o muestras) de referencia de la línea de referencia que atraviesa los bordes de los bloques 610 vecinos. La coincidencia se emplea entonces para seleccionar un modo de intrapredicción, por ejemplo de los modos 500 de intrapredicción, que apunta a la muestra coincidente (o muestras cuando se seleccionan modo planar o DC). El modo de intrapredicción seleccionado entonces indica que los valores de luma/croma del bloque 601 actual son sustancialmente similares a la muestra de referencia correspondiente al modo de intrapredicción seleccionado. Cualquier diferencia puede ser retenida en un bloque residual. El modo de intrapredicción seleccionado se codifica entonces en un flujo de bits. En el decodificador, el bloque 601 actual puede reconstruirse empleando los valores de luma/croma de las muestras de referencia en la línea de referencia seleccionada en el bloque 610 vecino que corresponde al modo de intrapredicción seleccionado (junto con cualquier información residual del bloque residual).
La FIG. 7 es un diagrama esquemático que ilustra un ejemplo de un esquema 700 de línea de referencia primaria para codificar un bloque con intrapredicción. El esquema 700 de línea de referencia primaria puede emplearse cuando se seleccionan los modos 500 de intrapredicción. Por lo tanto, el esquema 700 de línea de referencia primaria pueden ser empleados por las etapas 105 y 113 del método 100, el componente 215 de estimación intraimagen y un componente 217 de predicción intraimagen del sistema 200 de códec, el componente 317 de predicción intraimagen del codificador 300, y/o el componente 417 de predicción intraimagen del decodificador 400.
El esquema 700 de línea de referencia primaria emplea una línea 711 de referencia primaria de muestras 712 de referencia. La línea 711 de referencia primaria incluye muestras de borde (por ejemplo, píxeles) de bloques vecinos como muestras 712 de referencia para un bloque 701 actual. Una muestra 712 de referencia, tal como se usa en la presente memoria, como un valor, tal como un valor de croma o de luma, de un píxel o subporción del mismo. El bloque 701 actual es sustancialmente similar al bloque 601 actual. Para los fines de análisis, la línea 711 de referencia primaria contiene una fila 713 de referencia que contiene las muestras 712 de referencia por encima del bloque 701 actual. La línea 711 de referencia primaria también contiene una columna 714 de referencia que contiene las muestras 712 de referencia en el lado izquierdo del bloque 701 actual. En el esquema 700 de línea de referencia primaria, se emplea una línea 711 de referencia primaria, donde una línea 711 de referencia primaria es una línea de referencia que es inmediatamente adyacente al bloque 701 actual. Por lo tanto, el bloque 701 actual se hace coincidir lo más posible con las muestras 712 de referencia contenidas en la línea 711 de referencia primaria durante la intrapredicción.
La FIG. 8 es un diagrama esquemático que ilustra un ejemplo de un esquema 800 de línea de referencia primaria para codificar un bloque con intrapredicción. El esquema 800 alternativo de línea de referencia puede emplearse cuando se seleccionan los modos 500 de intrapredicción. Por lo tanto, el esquema 800 de línea de referencia primaria puede ser empleado por las etapas 105 y 113 del método 100, el componente 215 de estimación intraimagen y un componente 217 de predicción intraimagen del sistema 200 de códec, el componente 317 de predicción intraimagen del codificador 300, y/o el componente 417 de predicción intraimagen del decodificador 400.
El esquema 800 alternativo de línea de referencia emplea un bloque 801 actual, que es sustancialmente similar al bloque 701 actual. Una pluralidad de líneas 811 de referencia se extienden desde el bloque 801 actual. Las líneas 811 de referencia contienen muestras 812 de referencia, que son similares a las muestras 712 de referencia. Las líneas 811 de referencia son sustancialmente similares a la línea 711 de referencia primaria, pero se extienden más lejos del bloque 801 actual. El empleo de líneas 811 de referencia alternativas permite que el algoritmo de coincidencia tenga acceso a más muestras 812 de referencia. La presencia de más muestras de referencia puede dar como resultado una mejor coincidencia para el bloque 801 actual en algunos casos, lo que a su vez puede conducir a menos muestras residuales después de seleccionar el modo de predicción. El esquema 800 de línea de referencia alternativa puede denominarse intrapredicción de líneas múltiples (MLIP), y se analiza en detalle en los documentos JVET- C0043, JVET-C0071, JVET-D0099, JVET-D0131 y JVET-D0149 del Equipo Conjunto de Expertos en Vídeo (JVET) que se incorporan por referencia. Las líneas 811 de referencia pueden numerarse de cero a M, donde M es cualquier valor constante predeterminado. Las líneas 811 de referencia pueden incluir las filas 813 de referencia y las columnas 814 de referencia, como se muestra, que son similares a las filas 713 de referencia y la fila 714 de referencia, respectivamente.
Durante la codificación, el codificador puede seleccionar la mejor coincidencia de las líneas 811 de referencia basado en RDO. Específicamente, se emplean M+1 líneas de referencia desde la línea de referencia más cercana (RefLineO) hasta la línea de referencia más lejana (RefLineM), donde M es mayor que cero. El codificador selecciona la línea de referencia con el mejor coste de distorsión de tasa. El índice de línea de referencia seleccionada se señaliza al decodificador en el flujo de bits. Aquí, RefLine0 se puede denominar línea de referencia original (por ejemplo, línea 711 de referencia primaria), y RefLine1 ~ RefLineM se puede denominar líneas de referencia adicionales o líneas de referencia alternativas. Se pueden seleccionar líneas de referencia adicionales para su uso en cualquiera de los modos 500 de intrapredicción. Las líneas de referencia adicionales también se pueden seleccionar para su uso por un subconjunto de los modos 500 de intrapredicción en algunos casos (por ejemplo, DirS-DirE puede usar líneas de referencia adicionales).
Una vez seleccionada una línea 812 de referencia, el índice de línea de referencia seleccionada de las líneas 811 de referencia se señaliza al decodificador en el flujo de bits. Empleando diferentes líneas de referencia, se puede derivar una señal de predicción más precisa, lo que puede aumentar la eficiencia de la codificación en algunos casos reduciendo las muestras residuales. Sin embargo, el empleo de líneas 811 de referencia alternativas aumenta la sobrecarga de señalización a medida que la línea de referencia seleccionada se señaliza al decodificador. A medida que aumenta el número de líneas 811 de referencia usadas, se emplean más bins durante la señalización para identificar de forma única la línea de referencia seleccionada. Como tal, el uso de líneas 811 de referencia alternativas puede realmente disminuir la eficiencia de codificación cuando la muestra coincidente está en la línea de referencia inmediatamente adyacente al bloque 801 actual.
A pesar de la ventaja de compresión asistida con MLIP, algunas áreas se pueden mejorar para lograr una mayor ganancia de codificación. Por ejemplo, se puede emplear un subconjunto de modos de intrapredicción para lograr una mayor compresión. Específicamente, se pueden seleccionar algunos modos de intrapredicción para emplear líneas 811 de referencia alternativas para soportar una mayor precisión de coincidencia. Se pueden seleccionar otros modos de intrapredicción para emplear una línea 711 de referencia primaria y renunciar a la sobrecarga de señalización asociada con el empleo de líneas 811 de referencia alternativas. Los modos de intrapredicción que emplean líneas 811 de referencia alternativas pueden incluirse en un subconjunto de modos de intrapredicción.
La FIG. 9 es un diagrama 900 esquemático que ilustra un ejemplo del subconjunto 930 de modos de intrapredicción, para su uso en la codificación de vídeo de los modos de intrapredicción en un codificador o un decodificador. El esquema 800 de línea de referencia alternativa y el esquema 700 de línea de referencia primaria se pueden combinar/modificar para emplear tanto una lista 920 de modos de intrapredicción como el subconjunto 930 de modos de intrapredicción. La lista 920 de modos de intrapredicción contiene todos los modos 923 de intrapredicción (por ejemplo, modos 500 de intrapredicción) que se pueden emplear en un esquema intrapredicción. Cada uno de estos modos 923 de intrapredicción puede ser indexado por un índice 921 de modo de intrapredicción correspondiente. En este ejemplo, algunos de los modos de intrapredicción tienen acceso a líneas de referencia alternativas. Los modos de intrapredicción que tienen acceso a líneas de referencia alternativas se almacenan en el subconjunto 930 de modos de intrapredicción como modos 933 de predicción de línea de referencia alternativas. Los modos 933 de predicción de línea de referencia alternativas en el subconjunto 930 de modos de intrapredicción se pueden indexar mediante un índice 931 de modo de intrapredicción alternativo. El índice 931 de modo de intrapredicción alternativo es un valor de índice usado para numerar e indicar los modos 933 de predicción de línea de referencia alternativas en el subconjunto 930 de modos de intrapredicción. A medida que se incluyen menos modos de intrapredicción en el subconjunto 930 de modos de intrapredicción, el índice 931 de modo de intrapredicción alternativo puede contener menos bins que el índice 921 de modo de intrapredicción. En consecuencia, cuando se incluye un modo de intrapredicción en el subconjunto 930 de modos de intrapredicción, el modo de intrapredicción puede coincidir con líneas de referencia alternativas. Cuando no se incluye un modo de intrapredicción en el subconjunto 930 de modos de intrapredicción, el modo de intrapredicción se puede hacer coincidir con una línea de referencia primaria. Este esquema aprovecha el hecho de que la lista 920 de modos de intrapredicción contiene muchos modos 923 de intrapredicción para cubrir la textura y el carácter estructural con todo detalle. Sin embargo, la probabilidad de emplear líneas de referencia alternativas es relativamente baja. Como tal, las direcciones aproximadas son suficientes en un caso de línea de referencia alternativa. Por lo tanto, los modos 923 de intrapredicción se pueden muestrear para construir el subconjunto 930 de modos de intrapredicción empleando esquemas como se analiza a continuación.
El uso de tanto la lista 920 de modos de intrapredicción como el subconjunto 930 de modos de intrapredicción permite aumentos significativos en la eficiencia de codificación. Además, la selección de qué modos de intrapredicción se deben incluir como modos 933 de predicción de línea de referencia alternativas afecta a la eficiencia de la codificación. Por ejemplo, un intervalo de modos grande emplea más bits para representar el índice 931 de modo de intrapredicción alternativo, mientras que se emplean menos bits cuando el intervalo de modos es más pequeño. En una realización, el subconjunto 930 de modos de intrapredicción contiene cada segundo modo de intrapredicción en [DirS, DirE], donde [A, B] indica un conjunto que contiene el elemento entero x, y B>x> A. Específicamente, el subconjunto 930 de modos de intrapredicción puede estar asociado con los modos de predicción {DirS, DirS+2, DirS+4, DirS+6, ....,DirE}, donde {A, B, C, D} indica un conjunto que contiene todos los elementos enumerados entre las llaves. Además, se reduce el número de bits para representar un modo de intrapredicción seleccionado en el intervalo de modos de índice 931 de modo de intrapredicción alternativo. En tal caso, el índice 931 de modo de intrapredicción alternativo se puede derivar por el índice 921 del modo de intrapredicción dividido por dos.
En otra realización, el subconjunto 930 de modos de intrapredicción contiene los modos de intrapredicción en una lista 935 MPM. Como se señaló anteriormente, una lista 935 MPM contiene un subconjunto de los modos de intrapredicción que es más probable que se seleccionen. En este caso, el subconjunto 930 de modos de intrapredicción puede configurarse para contener los modos de intrapredicción de los bloques vecinos decodificados y/o reconstruidos del bloque actual. Se puede emplear un indicador en el flujo de bits para indicar si se incluye un modo de intrapredicción seleccionado en la lista 935 MPM. Cuando el modo de intrapredicción seleccionado está en la lista 935 MPM, se señaliza un índice de la lista 935 MPM. De lo contrario, se señaliza el índice 931 de modo de intrapredicción alternativo. Cuando el modo de intrapredicción seleccionado es un modo de línea de referencia primaria, y no se incluye en la lista 935 MPM, se puede señalizar el índice 921 de modo de intrapredicción. En algunos ejemplos, se puede emplear un mecanismo de binarización en el que el índice 931 de modo de intrapredicción alternativo y/o el índice de lista 935 MPM son de longitud fija. En algunos ejemplos, el índice 931 de modo de intrapredicción alternativo y/o el índice de lista 935 MPM se codifican a través de codificación aritmética binaria adaptativa basada en el contexto (CABAC). También se pueden emplear otros mecanismos de binarización y/o de codificación de entropía. El mecanismo de binarización y/o codificación de entropía empleado está predefinido. El intervalo de modos del subconjunto 930 de modos de intrapredicción contiene menos modos de intrapredicción (por ejemplo, modos aproximados) que la lista 920 de modos de intrapredicción. En consecuencia, cuando un modo de intrapredicción en la lista 935 MPM (por ejemplo, el modo de un bloque vecino) no se incluye en el intervalo de modos del subconjunto 930 de modos de intrapredicción, el índice 921 de modo de intrapredicción se puede dividir (por ejemplo, por dos) redondeado a un valor de índice 931 de modo de intrapredicción alternativo más cercano, por ejemplo, sumando o restando uno. El mecanismo de redondeo puede estar predefinido. También se puede predefinir la posición relativa de los bloques vecinos, el orden de escaneo y/o el tamaño de la lista 935 MPM.
Como ejemplo específico, un codificador que opera según H.265 puede emplear un intervalo de modos de [DirS, DirE] con un tamaño de treinta y tres. Cuando cada segundo modo se emplea en el subconjunto 930 de modos de intrapredicción, el tamaño del intervalo de modos para el índice 931 de modo de intrapredicción alternativo es de diecisiete. El tamaño de la lista 935 MPM puede ser uno, y el modo de intrapredicción del bloque decodificado del vecino superior se usa para construir la lista 935 MPM. Cuando el modo del bloque vecino no está en el intervalo de modos del índice 931 de modo de intrapredicción alternativo (por ejemplo, modo tres), el modo del bloque vecino se redondea al modo cuatro (o dos). Como ejemplo particular, cuando el modo de intrapredicción seleccionado es el modo dieciséis, según el índice 921 de modo de intrapredicción, y cuando el modo seleccionado no está en la lista 935 MPM, el modo de intrapredicción seleccionado tendría un índice 931 de modo de intrapredicción alternativo de ocho (16/2 = 8). Cuando se emplea un método de binarización de longitud fija, se podría emplear 1000 para indicar el modo de intrapredicción seleccionado en este ejemplo.
Los ejemplos/realizaciones anteriores suponen que el subconjunto 930 de modos de intrapredicción incluye cada uno de los modos impares (o pares) de los modos 923 de intrapredicción. Sin embargo, también se pueden emplear otros mecanismos para poblar el subconjunto 930 de modos de intrapredicción mientras se emplean los mecanismos descritos anteriormente. En un ejemplo, el subconjunto 930 de modos de intrapredicción incluye cada Nésimo modo de intrapredicción en [DirS, DirE], donde N es un entero igual a 0, 1, 2, 3, 4, etc. Este ejemplo también se puede describir como {DirS, DirS N, DirS 2N....DirE}. Como otro ejemplo, el subconjunto 930 de modos de intrapredicción puede contener cada Nésimo modo de intrapredicción en [DirS, DirE], así como los modos de intrapredicción Planar y DC.
En otro ejemplo, el subconjunto 930 de modos de intrapredicción contiene modos de intrapredicción con alta probabilidad de selección general. Entonces, el coste de señalización del modo de intrapredicción se reduce y se mejora la eficiencia de codificación. En algunos ejemplos, los modos de intrapredicción con direcciones primarias se seleccionan con una mayor probabilidad general en general (por ejemplo, directamente vertical, horizontal, etc.). En consecuencia, el subconjunto 930 de modos de intrapredicción puede incluir dichos modos. Por ejemplo, el subconjunto 930 de modos de intrapredicción puede incluir modos de intrapredicción direccionales primarios, tales como DirS, DirE, DirD, DirV y DirH. Los modos vecinos a los modos primarios también se pueden incluir en algunos ejemplos. Como ejemplo específico, los modos de intrapredicción DirS, DirE, DirD, DirV, DirH, se incluyen en el subconjunto 930 de modos de intrapredicción junto con los modos de intrapredicción adyacentes con un índice de más o menos N. Esto puede expresarse como [DirS, DirS+N], [DirE-N, DirE], [DirD-N, DirD+N], [DirH-N, DirH+N], [DirV-N, DirV+N]. En otro ejemplo, el subconjunto 930 de modos de intrapredicción incluye modos de intrapredicción DirS, DirE, DirD, DirV, DirH, así como modos de intrapredicción adyacentes con un índice de más o menos N y modo Planar y DC.
En otro ejemplo, el subconjunto 930 de modos de intrapredicción se construyó adaptativamente y, por lo tanto, no se definió con modos de intrapredicción predefinidos. Por ejemplo, el subconjunto 930 de modos de intrapredicción puede contener modos de intrapredicción de bloques decodificados vecinos (por ejemplo, bloques 610 vecinos) del bloque actual (por ejemplo, bloque 601 actual). Los bloques vecinos se pueden colocar a la izquierda y por encima del bloque actual. También se pueden emplear bloques vecinos adicionales. El tamaño y el esquema de construcción del subconjunto 930 de modos de intrapredicción están predefinidos. En otro ejemplo, el subconjunto 930 de modos de intrapredicción contiene los modos de intrapredicción de bloques vecinos más ciertos modos predeterminados por defecto de intrapredicción, tales como modos Planar y DC. En otro ejemplo, el subconjunto 930 de modos de intrapredicción contiene los modos de intrapredicción en la lista 935 MPM.
Al recibir un índice de línea de referencia en un flujo de bits, un decodificador determina que la lista 920 de modos de intrapredicción está implicada cuando el índice de línea de referencia apunta a una línea de referencia primaria. En tal caso, el decodificador puede leer un siguiente índice 921 de modo de intrapredicción para determinar los modos 923 de intrapredicción correspondientes. Cuando el índice de línea de referencia apunta a una línea de referencia adicional, se implica el subconjunto 930 de intramodo. En dicho caso, el decodificador puede leer un siguiente índice 931 de modo de intrapredicción alternativo para determinar el modo 933 de predicción de línea de referencia alternativa correspondiente. En algunos ejemplos, se puede emplear un indicador para indicar cuándo el modo 933 de predicción de línea de referencia alternativa indicado está en la lista 935 MPM. En tal caso, el modo 933 de predicción de línea de referencia alternativa puede señalizarse según un índice empleado por la lista 935 MPM.
Como se señaló anteriormente, el diagrama 900 se puede emplear cuando se codifica un modo de intrapredicción con líneas de referencia alternativas o con una línea de referencia primaria. A continuación, se analizan los esquemas de señalización para codificar dichos datos. Específicamente, se puede señalizar un índice de línea de referencia después del índice para el modo de intrapredicción correspondiente. Además, el índice de línea de referencia puede ser señalizado condicionalmente. Por ejemplo, el índice de línea de referencia se puede señalizar cuando el modo de intrapredicción está asociado con líneas de referencia alternativas o se omite cuando el modo de intrapredicción está relacionado con una línea de referencia primaria. Esto permite omitir el índice de línea de referencia siempre que el modo de intrapredicción no se incluya en el subconjunto 930 de modos de intrapredicción, ya que no hay necesidad de indicar un índice de línea de referencia en un caso de línea de referencia principal. Este enfoque aumenta significativamente la eficiencia de codificación reduciendo la sobrecarga de señalización. Los sistemas de señalización condicional que se analizan a continuación son una implementación de ejemplo de este concepto.
La FIG. 10 es un diagrama esquemático que ilustra un ejemplo de representación 1000 de señalización condicional para líneas de referencia alternativas en un flujo de bits de codificación de vídeo. Por ejemplo, la representación 1000 de señalización condicional puede emplearse en un flujo de bits cuando se emplea un subconjunto 930 de modos de intrapredicción como parte de un esquema 800 de línea de referencia alternativa durante la codificación de vídeo que emplea modos de intrapredicción, tal como los modos 500 de intrapredicción en un codificador o un decodificador. Específicamente, cuando un dispositivo de codificación codifica o decodifica un flujo de bits con datos de intrapredicción que incluyen un modo de intrapredicción seleccionado asociado con líneas de referencia alternativas, se usa la representación 1000 de señalización condicional. Específicamente, cuando un dispositivo de codificación codifica o decodifica un flujo de bits con datos de intrapredicción que incluyen un modo de intrapredicción seleccionado asociado con una línea de referencia primaria, se usa la representación 1100 de señalización condicional, como se analiza a continuación.
La representación 1000 de señalización condicional puede incluir un campo de unidad 1041 de codificación que incluye información de partición relevante. Dicha información de partición indica límites de bloque al decodificador para permitir que el decodificador rellene los bloques de imagen decodificados para crear un fotograma. El campo de la unidad 1041 de codificación se incluye para el contexto y puede estar o no ubicado adyacente a los otros campos analizados con respecto a la representación 1000 de señalización condicional. La representación 1000 de señalización condicional incluye además los indicadores 1042. Los indicadores 1042 indican al decodificador que la información que sigue es para un modo de intrapredicción asociado con líneas de referencia alternativas. Por ejemplo, los indicadores 1042 pueden indicar si la siguiente información se codifica como un índice 931 de modo de intrapredicción alternativo o un índice de lista 935 MPM. Siguiendo los indicadores 1042, se emplea un campo de índice 1043 de subconjunto de modos de intrapredicción, por ejemplo para codificar un índice 931 de modo de intrapredicción alternativo. En algunos ejemplos, el campo 1043 de índice de subconjunto de modos de intrapredicción se sustituiría por un campo de índice de lista MPM para mantener un índice de lista 935 MPM como se analizó anteriormente. En cualquier caso, el decodificador es capaz de descifrar el modo de intrapredicción seleccionado para la unidad 1041 de codificación relevante basado en los indicadores 1042 y el índice. Como el campo de índice 1043 de subconjunto de modos de intrapredicción ha indicado que el modo de intrapredicción seleccionado está relacionado con líneas de referencia alternativas, también se incluye un índice 1044 de línea de referencia para indicar al decodificador qué línea de referencia contiene la muestra coincidente. En consecuencia, el índice 1043 de subconjunto de modos de intrapredicción proporciona la dirección de la muestra coincidente en un bloque vecino y el índice 1044 de línea de referencia proporciona la distancia a la muestra coincidente. Basado en esta información, el decodificador puede determinar la muestra coincidente, emplear la muestra coincidente para generar un bloque de predicción y, opcionalmente, combinar el bloque de predicción con un bloque residual codificado en otra parte del flujo de bits para reconstruir un bloque de píxeles.
La FIG. 11 es un diagrama esquemático que ilustra una representación 1100 de señalización condicional de ejemplo para una línea de referencia primaria en un flujo de bits de codificación de vídeo. Por ejemplo, la representación 1100 de señalización condicional puede emplearse en un flujo de bits cuando se emplea un subconjunto 920 de modos de intrapredicción como parte de un esquema 700 de línea de referencia primaria durante la codificación de vídeo que emplea modos de intrapredicción, tal como los modos 500 de intrapredicción en un codificador o un decodificador. La representación 1100 de señalización condicional puede incluir un campo de unidad 1141 de codificación con información de partición de una manera similar al campo de unidad 1041 de codificación. La representación 1100 de señalización condicional también incluye los indicadores 1142, que son sustancialmente similares a los indicadores 1042, pero en este caso indican que el modo de intrapredicción seleccionado no está asociado con un subconjunto 930 de modo de intrapredicción. Basado en la información en los indicadores 1142, el índice 1145 de modo de intrapredicción puede interpretarse como un índice en el intervalo de modos para un índice 921 de modo de intrapredicción. Además, a medida que se determina que el modo de intrapredicción seleccionado a asociar con una línea de referencia primaria, se omite el índice de línea de referencia.
En consecuencia, la representación 1000 de señalización condicional y la representación 1100 de señalización condicional se pueden emplear para señalizar ya sea un modo de intrapredicción con líneas de referencia alternativas o un modo de intrapredicción con una línea de referencia primaria, respectivamente. Estos esquemas se pueden emplear con cualquiera de los ejemplos/realizaciones analizados anteriormente. En un ejemplo, los modos de intrapredicción en [DirS, DirE] pueden emplear líneas de referencia alternativas. En dicho caso, cuando el modo de intrapredicción seleccionado no se incluye en [DirS, DirE] (por ejemplo, modo planar o DC), no hay necesidad de señalizar el índice de línea de referencia. Por lo tanto, se deduce que el índice de referencia es igual a cero, donde cero indica una línea de referencia primaria inmediatamente adyacente al bloque actual. En dicho caso, el subconjunto 930 de modos de intrapredicción no puede emplearse ya que todas las referencias direccionales emplean líneas de referencia alternativas en dicho caso. En resumen, el índice de línea de referencia se señaliza en dicho ejemplo siempre que el modo de intrapredicción no sea modo planar o DC. Además, el índice de línea de referencia no se señaliza siempre que el modo de intrapredicción sea modo planar o DC en dicho caso. En otro ejemplo, el índice de línea de referencia se señaliza siempre que el modo de intrapredicción esté en un subconjunto 930 de modos de intrapredicción. En consecuencia, el índice de línea de referencia no se señaliza siempre que el modo de intrapredicción no se incluya en un subconjunto 930 de modos de intrapredicción.
La Tabla 1 siguiente es un ejemplo de tabla de sintaxis que describe el caso donde se omite el índice de referencia cuando el modo seleccionado es modo planar o DC:
Tabla 1
_____________________________________________________________________________
Como se muestra en la Tabla 1 anterior, si el modo de intrapredicción no es planar y ni DC, entonces se señaliza el índice de línea de referencia, en este ejemplo junto con la posición x e y del bloque actual.
La Tabla 2 siguiente es un ejemplo de tabla de sintaxis que describe el caso donde el índice de referencia se señaliza cuando el modo de intrapredicción actual se incluye en un subconjunto de modos de intrapredicción y se omite de otro modo. El subconjunto de modos de intrapredicción puede determinarse según cualquiera de los mecanismos analizados con respecto a la FIG 9.
Tabla 2
______________________________________ _______________________________________
Como se muestra en la Tabla 2 anterior, si el modo de intrapredicción está en el subconjunto de intrapredicción, entonces se señaliza el índice de línea de referencia.
También se pueden realizar modificaciones adicionales a un esquema MLIP, de forma independiente o en combinación con los ejemplos/realizaciones analizados anteriormente. Por ejemplo, en muchos esquemas MLIP, el modo de intrapredicción DC está limitado a una línea de referencia primaria. En dicho caso, el modo de intrapredicción DC genera un valor de predicción que es un promedio de todas las muestras de referencia en la línea de referencia. Esto crea un efecto de suavizado entre los bloques. Como se analiza a continuación, el modo de intrapredicción DC se puede extender en un esquema MLIP para generar un valor de predicción que es un promedio de todas las muestras de referencia en una pluralidad de líneas de referencia.
La FIG. 12 es un diagrama esquemático que ilustra un mecanismo de ejemplo para la intrapredicción 1200 en modo DC con líneas 1211 de referencia alternativas. La intrapredicción 1200 de modo DC puede ser empleada en un codificador o un decodificador, tal como el codificador 300 o el decodificador 400, cuando se realiza la intrapredicción DC, por ejemplo según los modos 500 de intrapredicción. El esquema de intrapredicción 1200 de modo DC puede ser empleado junto con un subconjunto 930 de modos de intrapredicción, representaciones 1000 y 1100 de señalización condicional, o puede ser empleado de forma independiente de dichos ejemplos.
La intrapredicción 1200 de modo DC emplea un bloque actual con líneas 1211 de referencia alternativas denotadas como 0-M. Como tal, puede emplearse cualquier número de líneas 1211 de referencia. Dichas líneas 1211 de referencia son sustancialmente similares a las líneas 811 de referencia y contienen muestras 1212 de referencia que son sustancialmente similares a las muestras 812 de referencia. Un valor 1201 de predicción de DC se calcula entonces como un promedio de muestras 1212 de referencia en una pluralidad de las líneas 1211 de referencia. En un ejemplo, el valor 1201 de predicción de DC se calcula como un promedio de todas las muestras 1212 de referencia en todas las líneas 1211 de referencia 0-M de forma independiente de cuál de las líneas 1211 de referencia se selecciona durante la selección de modo de intrapredicción. Esto proporciona un valor 1201 de predicción de DC muy robusto para el bloque actual. Por ejemplo, si hay cuatro líneas 1211 de referencia, se determina el valor promedio de todas las muestras 1212 de referencia en las líneas 1211 de referencia indexadas de cero a tres y se establece como el valor 1201 de predicción de DC del bloque actual. En tal ejemplo, el índice de línea de referencia puede no ser señalizado en el flujo de bits en algunos casos.
En otro ejemplo, el valor 1201 de predicción de DC se determina basado en una línea de referencia seleccionada y una línea de referencia correspondiente. Esto permite que el valor 1201 de predicción de DC se determine basado en dos líneas 1211 de referencia correlacionadas en lugar de todas o solo la línea de referencia del índice cero. Por ejemplo, cuando se emplean cuatro líneas 1211 de referencia, las líneas 1211 de referencia se pueden indexar de cero a cuatro. En tal caso, la tabla 3 a continuación indica un ejemplo de las líneas 1211 de referencia correspondientes que se emplean cuando se selecciona una línea de referencia.
Tabla 3
Como se muestra, las líneas 1211 de referencia correlacionadas se pueden emplear para determinar un valor 1201 de predicción de DC. En tal caso, el decodificador puede determinar ambas líneas 1211 de referencia cuando el índice de línea de referencia seleccionado se señaliza en el flujo de bits.
En otro ejemplo, la intrapredicción 1200 de modo DC siempre puede emplear la línea de referencia del índice cero (la línea de referencia primaria) y también puede seleccionar líneas 1211 de referencia adicionales cuando dicha selección haga coincidir más exactamente el valor 1201 de predicción DC con los valores del bloque de píxeles predicho. En la tabla 4 a continuación se representa ese ejemplo. En tal caso, el decodificador puede determinar ambas líneas 1211 de referencia cuando el índice de línea de referencia seleccionado se señaliza en el flujo de bits.
Tabla 4
También se pueden realizar modificaciones adicionales a un esquema MLIP, de forma independiente o en combinación con los ejemplos/realizaciones analizados anteriormente. Por ejemplo, en muchos esquemas MLIP las líneas de referencia se indexan basadas en la distancia de la línea de referencia desde el bloque actual. Por ejemplo, en JVET-C0071, las palabras de código 0, 10, 110 y 111 se emplean para indicar RefLine0, RefLine1, RefLine2 y RefLine3, respectivamente. Este enfoque se puede mejorar asignando palabras de código más cortas a líneas de referencia con una mayor probabilidad estadística de ser seleccionadas. Como muchas líneas de referencia se señalizan en un flujo de bits, la longitud promedio de las palabras de código para la señalización de línea de referencia se disminuye cuando se emplea este mecanismo. Esto da como resultado un aumento de la eficiencia de codificación. Se analiza a continuación un esquema de ejemplo para la señalización de línea de referencia alternativa con palabras de código.
La FIG. 13 es un diagrama esquemático que ilustra un mecanismo 1300 de ejemplo para codificar líneas de referencia alternativas con palabras de código. El mecanismo 1300 puede ser empleado en un codificador o un decodificador, tal como el codificador 300 o el decodificador 400, cuando se realiza la intrapredicción, por ejemplo según los modos 500 de intrapredicción. El mecanismo 1300 puede ser empleado junto con un subconjunto 930 de modos de intrapredicción, representaciones 1000 y 1100 de señalización condicional, intrapredicción 1200 de modo DC o puede ser empleado de forma independiente de dichos ejemplos.
El mecanismo 1300 emplea un bloque 1301 actual para ser codificado por intrapredicción y las líneas 1311 de referencia correspondientes que contienen muestras de referencia. El bloque 1301 actual y las líneas 1311 de referencia pueden ser sustancialmente similares al bloque 801 actual y las líneas 811 de referencia, respectivamente. El bloque 1301 actual se hace coincidir con una o más muestras de referencia en las líneas 1311 de referencia. Basado en la coincidencia, se seleccionan un modo de intrapredicción y una línea 1311 de referencia para indicar la muestra de referencia coincidente. El modo de intrapredicción seleccionado se codifica en el flujo de bits como se analizó anteriormente. Además, el índice de línea de referencia seleccionada se puede codificar en el flujo de bits empleando una palabra 1315 de código de línea de referencia. Una palabra 1315 de código de línea de referencia es un valor binario que indica un índice de una línea de referencia. Además, la palabra 1315 de código de línea de referencia omite los valores cero iniciales para comprimir aún más los datos. En consecuencia, una línea 1311 de referencia puede ser señalizada con un solo valor binario en algunos casos.
En el mecanismo 1300, la longitud de una palabra 1315 de código para un índice 1311 de línea de referencia puede no estar asociada con la distancia desde la línea 1311 de referencia hasta el bloque 1301 actual. En cambio, las palabras 1315 de código se asignan a las líneas 1311 de referencia basadas en la longitud de la palabra 1315 de código y la probabilidad de que se seleccione una línea 1311 de referencia correspondiente como la línea 1311 de referencia que se empleará para un bloque 1301 actual. En algunos casos, una línea 1311 de referencia que está más lejos del bloque 1301 actual puede recibir una palabra de código más corta que una línea 1311 de referencia que está inmediatamente adyacente al bloque 1301 actual. Por ejemplo, las palabras 1315 de código de 0, 10, 110 y 111 se pueden emplear para indicar RefLine0, RefLine1, RefLine2 y RefLine3, respectivamente. Además, el primer bin o los dos primeros bins de las palabras 1315 de código pueden estar codificados por contexto, mientras que el(los) último(s) bin(es) puede(n) estar codificado(s) por derivación sin contexto. Los contextos pueden derivarse de bloques vecinos espaciales (por ejemplo, superior e izquierdo). La tabla 5 muestra esquemas de codificación de ejemplo para palabras 1315 de código cuando se emplean cuatro líneas 1311 de referencia.
Tabla 5
Como se muestra en la tabla 5, las líneas 1311 de referencia pueden indexarse de cero a tres. En un esquema MLIP de ejemplo, dichos índices están representados por palabras 1315 de código basadas en la distancia desde el bloque 1301 actual, con la palabra de código más pequeña asignada a la línea 1311 de referencia más cercana y las palabras 1315 de código más grandes asignadas a la línea 1311 de referencia más distante. En los mecanismos de ejemplo uno y dos, la línea 1311 de referencia más probable es el índice cero, que recibe la palabra 1315 de código más corta. La segunda línea 1311 de referencia más probable es la línea de referencia más lejana (índice tres), que recibe la segunda palabra 1315 de código más corta. Las palabras 1315 de código restantes se asignan a los índices uno y dos en orden descendente o ascendente, dependiendo del ejemplo.
En otro ejemplo, la línea 1311 de referencia del índice cero puede seguir siendo la línea 1311 de referencia más probable. Además, la segunda línea 1311 de referencia más probable puede ser la línea 1311 de referencia del índice dos. Esto daría como resultado la Tabla 6.
Tabla 6
Índice de línea de referencia MLIP | Ejemplo 1_____| Ejemplo 2
Como se muestra en la Tabla 6, la línea 1311 de referencia más probable es el índice cero, que recibe la palabra 1315 de código más corta. La segunda línea 1311 de referencia más probable es la segunda línea de referencia más lejana (índice dos), que recibe la segunda palabra 1315 de código más corta. Las palabras 1315 de código restantes se asignan a los índices uno y tres en orden descendente o ascendente, dependiendo del ejemplo.
Los ejemplos anteriores pueden ampliarse a los casos donde se emplean un mayor número de líneas de referencia. Por ejemplo, cuando se emplean cinco líneas de referencia, los ejemplos de la Tabla 5 podrían ampliarse, como se muestra en la Tabla 7.
Tabla 7
Como se muestra en la Tabla 7, la línea 1311 de referencia más probable es el índice cero, que recibe la palabra 1315 de código más corta. La segunda línea 1311 de referencia más probable es la línea 1311 de referencia asociada con el índice dos, que recibe la segunda palabra 1315 de código más corta. Las palabras 1315 de código restantes se asignan a los índices uno, dos, cuatro y cinco en orden descendente o ascendente, dependiendo del ejemplo.
En otro ejemplo, los índices de línea 1311 de referencia se pueden clasificar en clases, y a cada clase se le pueden asignar diferentes grupos de palabras 1315 de código que se pueden disponer de manera diferente. Por ejemplo, un grupo de clase A puede recibir las palabras 1315 de código más cortas y una clase B puede recibir las palabras 1315 de código más largas. Las palabras 1315 de código de clase A y las palabras 1315 de código de clase B pueden asignarse en orden ascendente o descendente, o cualquier combinación de las mismas. El esquema de construcción de la clase puede estar predefinido. Se proporciona el siguiente ejemplo para aclarar este esquema. El siguiente ejemplo emplea seis líneas 1311 de referencia indexadas de cero a cinco, como se muestra en la Tabla 8. Las líneas 1311 de referencia se pueden asignar a cualquier clase según se desee. Por ejemplo, las líneas 1311 de referencia indexadas como uno, tres y cinco pueden asignarse a la clase A, mientras que las líneas de referencia indexadas como dos y cuatro pueden asignarse a la clase B. La línea 1311 de referencia indexada como cero siempre puede ser la selección de probabilidad más alta y, por lo tanto, siempre puede tener la palabra 1315 de código más corta. A la clase A se le pueden asignar las palabras 1315 de código más cortas, distintas de la palabra 1315 de código para el índice cero. A la clase B se le pueden asignar las palabras 1315 de código más largas. Los resultados de dicho esquema se muestran en la Tabla 8.
Tabla 8
En un primer ejemplo de la Tabla 8, las palabras 1315 de código de clase A y clase B aumentan (orden descendente) de forma independiente. En un segundo ejemplo de la Tabla 8, las palabras 1315 de código de clase A aumentan (orden descendente) mientras que las palabras 1315 de código de clase B disminuyen (orden ascendente). En un tercer ejemplo de la Tabla 8, las palabras 1315 de código de clase A disminuyen (orden ascendente) mientras que las palabras 1315 de código de clase B aumentan (orden descendente). En un cuarto ejemplo de la Tabla 8, las palabras 1315 de código de clase A y clase B ambas disminuyen (orden ascendente) de forma independiente. Cualquier número de líneas de referencia y cualquier número de clases puede ser empleado en este esquema para generar palabras 1315 de código como se desee.
También se pueden realizar modificaciones adicionales a un esquema MLIP, de forma independiente o en combinación con los ejemplos/realizaciones analizados anteriormente. Por ejemplo, los esquemas MLIP emplean líneas de referencia alternativas con filas y columnas. En muchos esquemas MLIP, se emplean un número idéntico de filas y columnas. Sin embargo, cuando el esquema MLIP se opera en hardware, todo el conjunto de filas se almacena en la memoria durante la codificación, por ejemplo, en un búfer de línea en un chip de la unidad de procesamiento central (CPU). Mientras tanto, las columnas se pueden almacenar en caché y extraer en los búferes de la CPU como se desee. En consecuencia, emplear filas de línea de referencia es más costoso desde el punto de vista computacional en términos de recursos del sistema que emplear columnas de línea de referencia. Como puede ser deseable reducir el uso de memoria del búfer de línea, el esquema MLIP a continuación emplea diferentes números de filas de referencia y columnas de referencia. Específicamente, el esquema MLIP a continuación emplea menos filas de referencia que columnas de referencia.
La FIG. 14 es un diagrama esquemático que ilustra un mecanismo 1400 de ejemplo para codificar líneas de referencia alternativas con diferentes números de filas y columnas. El mecanismo 1400 puede ser empleado en un codificador o un decodificador, tal como el codificador 300 o el decodificador 400, cuando se realiza intrapredicción DC, por ejemplo según los modos 500 de intrapredicción. El mecanismo 1400 puede ser empleado junto con un subconjunto 930 de modos de intrapredicción, representaciones 1000 y 1100 de señalización condicional, intrapredicción 1200 de modo DC, mecanismo 1300, o puede ser empleado de forma independiente de dichos ejemplos.
El mecanismo 1400 emplea un bloque 1401 actual con líneas 1411 de referencia alternativas denotadas como 0-M. Como tal, puede emplearse cualquier número de líneas 1411 de referencia. Dichas líneas 1411 de referencia son sustancialmente similares a las líneas 811 y/o 1211 de referencia y contienen muestras de referencia que son sustancialmente similares a las muestras 812 y/o 1212 de referencia. Las líneas 1411 de referencia incluyen las filas 1413 de referencia que incluyen muestras de referencia colocadas por encima del bloque 1401 actual. Las líneas 1411 de referencia también incluyen columnas 1414 de referencia que incluyen muestras de referencia colocadas a la izquierda del bloque 1401 actual. Como se señaló anteriormente, los esquemas MLIP almacenan todas las filas 1413 de referencia en la memoria en el chip durante la intrapredicción, lo que consume muchos recursos. En consecuencia, para reducir el uso de memoria y/o para obtener una compensación particular entre la eficiencia de codificación y el uso de memoria, el número de filas 1413 de referencia puede ser menor que el número de columnas 1414 de referencia. Como se muestra en la FIG. 14, el número de filas 1413 de referencia puede ser la mitad del número de columnas 1414 de referencia. Por ejemplo, esto se puede lograr eliminando la mitad de las filas 1413 de referencia entre las primeras filas 1413 de referencia y la última fila 1413 de referencia (por ejemplo, manteniendo RefLine0 y RefLine3, pero eliminando RefLine1 y RefLine2). En otro ejemplo, las filas 1413 impares o las filas 1413 pares se pueden eliminar (por ejemplo, manteniendo RefLine0 y RefLine2, pero eliminando RefLine1 y RefLine3 o viceversa). El mecanismo 1400 para eliminar las filas 1413 se puede predefinir.
La FIG. 15 es un diagrama esquemático que ilustra otro mecanismo 1500 de ejemplo para codificar líneas de referencia alternativas con diferentes números de filas y columnas. El mecanismo 1500 puede ser empleado en un codificador o un decodificador, tal como el codificador 300 o el decodificador 400, cuando se realiza intrapredicción DC, por ejemplo según los modos 500 de intrapredicción. El mecanismo 1500 puede ser empleado junto con un subconjunto 930 de modos de intrapredicción, representaciones 1000 y 1100 de señalización condicional, intrapredicción 1200 de modo DC, mecanismo 1300, o puede ser empleado de forma independiente de dichos ejemplos.
El mecanismo 1500 es sustancialmente similar al mecanismo 1400, pero emplea diferentes números de filas 1513 de referencia. Específicamente, el mecanismo 1500 emplea un bloque 1501 actual con líneas 1511 de referencia alternativas denotadas como 0-M. Como tal, puede emplearse cualquier número de líneas 1511 de referencia. Dichas líneas 1511 de referencia son sustancialmente similares a las líneas 811 y/o 1211 de<referencia y contienen muestras de referencia que son sustancialmente similares a las muestras>812<y/o 1212>de referencia. Las líneas 1511 de referencia incluyen las filas 1513 de referencia que incluyen muestras de referencia colocadas por encima del bloque 1501 actual. Las líneas 1511 de referencia también incluyen columnas 1514 de referencia que incluyen muestras de referencia colocadas a la izquierda del bloque 1501 actual.
En este caso, el número de filas 1513 de referencia es el número de columnas 1514 de referencia menos K, donde K es un entero positivo que es menor que el número de columnas 1514 de referencia. K puede estar predefinido o señalizado en un Conjunto de Parámetros de Secuencia (SPS), un Conjunto de Parámetros de Imagen (PPS) o una cabecera de segmento en el flujo de bits. En el ejemplo mostrado, el número de filas 1513 de referencia es el número de columnas 1514 de referencia menos una. Sin embargo, se puede emplear cualquier valor de K. Una fila 1513 de referencia se elimina empleando cualquier mecanismo predefinido. En la FIG. 15, se elimina la fila 1513 de referencia asociada a la línea 1511 de referencia indexada como uno. En otros ejemplos, se elimina la fila 1513 de referencia asociada con la línea 1511 de referencia indexada como dos, tres, etc.
Cuando se emplean los mecanismos 1400 y/o 1500, el índice de referencia de las filas de referencia puede ser diferente del índice de referencia de las columnas de referencia. A continuación se presentan algunos mecanismos para indicar o derivar el índice de línea de referencia cuando los números de filas y columnas de referencia son diferentes como se analizó anteriormente. En un mecanismo, el índice de la columna de referencia y el índice de la fila izquierda se señalizan por separado. Por ejemplo, se usa un elemento de sintaxis para señalizar el índice de fila de referencia, entre cero y NumTop, donde NumTop es el número de filas de referencia (incluidos 0 y NumTop). Otro elemento de sintaxis se usa para señalizar el índice de la columna de referencia, entre cero y NumLeft, donde NumLeft es el número de columnas de referencia (incluidos 0 y NumLeft).
En otro mecanismo, se usa un elemento de sintaxis para señalizar el índice de línea de referencia tanto para la fila de referencia como para la columna de referencia. En la mayoría de los ejemplos, NumLeft es mayor que NumTop. Sin embargo, los mecanismos descritos a continuación también se aplican a la situación en la que NumTop es mayor que NumLeft. Cuando NumLeft > NumTop, en un mecanismo, el índice de las columnas de referencia se señaliza usando los mecanismos descritos anteriormente. En tal caso, el índice de línea de referencia está entre cero y NumLeft (incluyendo cero y NumLeft). Cuando se emplea una línea de referencia o píxel de referencia de una fila de referencia y el índice de línea de referencia es mayor que NumTop, se señaliza la línea de referencia asociada con el índice de NumTop.
En otro mecanismo, cuando NumLeft > NumTop, el índice de la fila de referencia se señaliza usando los mecanismos descritos anteriormente. En dicho caso, el índice de referencia está entre cero y NumTop (incluyendo 0 y NumTop). Cuando se emplea una línea de referencia o píxel de una fila de referencia, el índice de línea de referencia señalizado (o analizado) indica la línea de referencia seleccionada. Como NumLeft es mayor que NumTop, se emplea una tabla de mapeo de índices para mapear un índice de línea de referencia señalizado a una columna de referencia seleccionada cuando se selecciona la muestra de referencia de una columna de referencia. Las tablas 9-11 de mapeo de ejemplo se ilustran a continuación.
Tabla 9
Tabla 10
Tabla 11
En algunos ejemplos, los mapeos de la tabla como se muestran anteriormente pueden reemplazarse por un cálculo dependiendo de la implementación.
Además, algunos modos de intrapredicción emplean columnas de referencia como líneas de referencia, mientras que otros modos de intrapredicción usan filas de referencia como líneas de referencia. Mientras, algunos modos de intrapredicción emplean tanto las filas de referencia como las columnas de referencia como líneas de referencia. Por ejemplo, la definición del intervalo de índice puede depender del modo de intrapredicción. Esto se debe a que el proceso de fase y los resultados de la fase se deciden por el intervalo de índice.
Como ejemplos específicos, los modos de intrapredicción que emplean las columnas de referencia (por ejemplo, [DirS, DirH]) tienen un intervalo de índice de [0, NumLeft]. Los modos de intrapredicción que emplean las filas de referencia (por ejemplo, [DirV, DirE]) tienen un intervalo de índice de [0, NumTop]. Los modos de intrapredicción que emplean tanto columnas de referencia como filas de referencia pueden tener dos casos. En un primer caso, el intervalo de índice está entre [0, NumTop] (denotado como Modi1). En este caso, NumLeft > NumTop, mientras que el intervalo de índice es [1, NumTop]. Por lo tanto, se seleccionan un número de columnas de referencia de las columnas de referencia NumLeft, donde el número de columnas de referencia seleccionadas es Numtop o menor. El mecanismo de selección está predefinido en el codificador y decodificador. En un segundo caso, el intervalo de índice está entre [0, NumLeft] (denotado como Modi2). En este caso, se emplea un mecanismo de mapeo para determinar el índice de columnas de referencia y las filas de referencia de índice, por ejemplo, basadas en un índice de línea de referencia señalizado. El mecanismo de mapeo está predefinido. Por ejemplo, se puede emplear cualquier mecanismo de mapeo de las Tablas 9 a 11 anteriores.
Como otro ejemplo específico, cuando el número de líneas de referencia es cuatro, las filas de referencia de las líneas de referencia RefLine1 y RefLine3 se pueden eliminar para reducir el uso de memoria en el chip. En este caso, se emplean cuatro columnas de referencia y dos filas de referencia. Cuando un modo de intrapredicción emplea tanto las columnas de referencia como las filas de referencia, el intervalo de índice se redefine para señalizar de forma única la(s) muestra(s) de referencia seleccionada(s). En este caso, los modos de intrapredicción [DirS, DirH] tienen un intervalo de índice de [0, 3]. Para los modos de intrapredicción [DirV, DirE], el intervalo de índice es [0,1].
Para los modos de intrapredicción que emplean tanto columnas de referencia como filas de referencia (por ejemplo, modos Planar, Dc o intrapredicción en (DirH, DirV)), el intervalo de índice es [0,1] (Modi1) o el intervalo de índice es [0,3] (Modi2). Cuando el intervalo de índice es [0,1] (denotado como Modi1) se emplean dos de las columnas de referencia (por ejemplo, se emplean la parte izquierda de RefLine0 y RefLine2). En este caso, tanto el número de filas de referencia como columnas de referencia es dos. Las dos columnas de referencia restantes también se pueden seleccionar para ser empleadas (por ejemplo, RefLine1 y RefLine3). El mecanismo de selección está predefinido. Cuando el intervalo de índice es [0,3] (denotado como Modi2) el número de columnas de referencia es cuatro, el número de filas de referencia es dos y el intervalo de índice es [0, 3]. A continuación se emplea un mecanismo de mapeo de índices (por ejemplo, el índice de columna de referencia en [0,1] corresponde al índice cero de fila de referencia, el índice de columna de referencia en [2,3] corresponde al índice 1 de fila de referencia). También se pueden usar otros mecanismos de mapeo (por ejemplo, el índice de columna en [0, 2] corresponde al índice 0 de fila, el índice 3 de columna corresponde al índice 1 de fila, etc.). Sin embargo, el mecanismo de mapeo empleado está predefinido.
Los mecanismos de codificación del índice de referencia y los mecanismos de construcción de la línea de referencia se pueden combinar para mejorar la eficiencia de codificación y reducir el uso de memoria en el chip. A continuación se muestra una combinación de ejemplo de dichos mecanismos. En este caso, al índice de línea de referencia más lejana se le asigna la palabra de código más corta y NumTop es la mitad de NumLeft. Además, el número de líneas de referencia es cuatro y se emplea Ex1 de la Tabla 8. En cuanto al mecanismo de codificación del índice, cuando NumTop es menor que NumLeft, se usa Modi1, en el que se conservan las columnas de RefLine0 y RefLine3. Esto da como resultado un mecanismo de señalización de línea de referencia como se muestra en la Tabla 12 a continuación.
Tabla 12
En este ejemplo, cuando el modo de intrapredicción está entre [DirS, DirH], el intervalo de índice es [0, 3] y el mecanismo de representación del índice de línea de referencia se muestra en la Tabla 12. La columna de referencia se puede seleccionar como la línea de referencia, según el índice de línea de referencia. Además, cuando el modo de intrapredicción está entre [DirV, DirE], el intervalo de índice es [0, 1] y el mecanismo de representación del índice de línea de referencia se define en la Tabla 12. La fila de referencia se puede seleccionar como la línea de referencia, según el índice de línea de referencia. En este caso se tienen en cuenta RefLine0 y RefLine3, mientras que RefLine1 y RefLine2 no se tienen en cuenta. Además, cuando el modo de intrapredicción está entre [Planar, DC] y (DirH, DirV), el intervalo de índice es [0, 1] y el mecanismo de representación del índice de línea de referencia se define en la Tabla 12. La columna de referencia y las filas de referencia se seleccionan entonces como la línea de referencia según el índice de línea de referencia. En este caso se tienen en cuenta RefLine0 y RefLine3, mientras que RefLine1 y RefLine2 no se tienen en cuenta. Del mismo modo, las tablas de binarización analizadas anteriormente también pueden aplicarse para aumentar aún más la eficiencia de la codificación.
La FIG.16 es un diagrama esquemático de un dispositivo 1600 de codificación de vídeo según una realización de la descripción. El dispositivo 1600 de codificación de vídeo es adecuado para implementar las realizaciones descritas como se describe en la presente memoria. El dispositivo 1600 de codificación de vídeo comprende puertos 1620 de entrada, puertos 1650 de salida y/o unidades transceptoras (Tx/Rx) 1610 para comunicar datos salida y datos de entrada a través de una red. El dispositivo 1600 de codificación de vídeo también incluye un procesador 1630 que incluye una unidad lógica y/o una unidad de procesamiento central (CPU) para procesar los datos y una memoria 1632 para almacenar los datos. El dispositivo 1600 de codificación de vídeo también puede comprender componentes óptico a eléctrico (OE), componentes eléctrico a óptico (EO) y/o componentes de comunicación inalámbrica acoplados a los puertos 1650 de salida y/o puertos 1620 de entrada para la comunicación de datos a través de redes de comunicación óptica o inalámbrica. El dispositivo 1600 de codificación de vídeo también puede incluir dispositivos 1660 de entrada y/o salida (E/S) para comunicar datos hacia y desde un usuario. Los dispositivos 1660 de E/S pueden incluir dispositivos de salida, tales como una pantalla para visualizar datos de vídeo, altavoces para emitir datos de audio, etc. Los dispositivos 1660 de E/S también pueden incluir dispositivos de entrada, tales como un teclado, ratón, bola de seguimiento, etc. , y/o interfaces correspondientes para interactuar con dichos dispositivos de salida.
El procesador 1630 se implementa mediante hardware y software. El procesador 1630 puede implementarse como uno o más chips de CPU, núcleos (por ejemplo, como un procesador multinúcleo), una matriz de puertas programable en campo (FPGA), circuitos integrados de aplicación específica (ASIC), y procesadores de señales digitales (DSP). El procesador 1630 está en comunicación con los puertos 1620 de entrada, Tx/Rx 1610, puertos 1650 de salida y memoria 1632. El procesador 1630 comprende un módulo 1614 de codificación. El módulo 1614 de codificación implementa las realizaciones descritas anteriormente, tales como los métodos 1700, 1800, 1900 y/o cualquier otro mecanismo descrito anteriormente. Además, el módulo 1614 de codificación puede implementar un sistema 200 de códec, un codificador 300, un decodificador 400, realizar intrapredicción con modos 500 de intrapredicción con bloques 600, emplear un esquema 700 de línea de referencia primaria, emplear un esquema 800 de línea de referencia alternativa, emplear un subconjunto 930 de modos de intrapredicción, emplear representaciones 1000 y/o 1100, emplear intrapredicción 1200 de modo DC, emplear mecanismos 1300, 1400 y/o 1500, así como cualquier combinación de los mismos. La inclusión del módulo 1614 de codificación por lo tanto proporciona una mejora sustancial a la funcionalidad del dispositivo 1600 de codificación de vídeo y efectúa una transformación del dispositivo 1600 de codificación de vídeo a un estado diferente. Alternativamente, el módulo 1614 de codificación puede implementarse como instrucciones almacenadas en la memoria 1632 y ejecutadas por el procesador 1630 (por ejemplo, como un producto de programa informático almacenado en un medio no transitorio).
La memoria 1632 comprende uno o más tipos de memoria tales como discos, unidades de cinta, unidades de estado sólido, memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM), memoria flash, memoria ternaria direccionable por contenido (TCAM), memoria de acceso aleatorio estática (SRAM), etc. La memoria 1632 se puede usar como un dispositivo de almacenamiento de datos de desbordamiento, 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 FIG. 17 es un diagrama de flujo de un método 1700 de ejemplo de codificación de vídeo con un subconjunto de modos de intrapredicción con líneas de referencia alternativas. Por ejemplo, el método 1700 puede operar en un dispositivo 1600 de codificación de vídeo configurado para actuar como un decodificador 400. El método 1700 también puede emplear modos 500 de intrapredicción junto con el esquema 800 de línea de referencia alternativa y el subconjunto 930 de modos de intrapredicción.
En la etapa 1701, se recibe un flujo de bits. El flujo de bits incluye una codificación de datos de vídeo comprimidos según los comprime un decodificador. En la etapa 1703, se determina un subconjunto de modos de intrapredicción, tal como el subconjunto 930 de modos de intrapredicción. El subconjunto de modos de intrapredicción incluye modos de intrapredicción que se correlacionan con una pluralidad de líneas de referencia para un bloque de imagen actual y excluye los modos de intrapredicción que se correlacionan con una línea de referencia primaria para el bloque de imagen actual. El subconjunto de modos de intrapredicción puede incluir varios grupos de modos de intrapredicción como se analizó anteriormente. En algunos ejemplos, el subconjunto de modos de intrapredicción incluye DirS, DirE y cada Nésimo modo de intrapredicción direccional entre DirS y DirE, donde N es un valor entero predeterminado. En otros ejemplos, el subconjunto de modos de intrapredicción puede incluir además el modo de predicción planar y el modo de predicción de DC. En otro ejemplo, el subconjunto de modos de intrapredicción incluye DirS, DirE, DirD, DirH, DirV y modos de intrapredicción direccional válidos en direcciones de más o menos N de DirS, DirE, DirD, DirH y DirV, donde N es un valor entero predeterminado. Dicho subconjunto de modos de intrapredicción puede incluir además el modo de predicción planar y el modo de predicción de DC. En otro ejemplo, el subconjunto de modos de intrapredicción incluye modos de intrapredicción seleccionados para bloques vecinos decodificados colocados en una adyacencia predeterminada al bloque de imagen actual. En otro ejemplo, el subconjunto de modos de intrapredicción incluye modos asociados con una lista MPM para el bloque. Además, el subconjunto de modos de intrapredicción puede incluir cualquier otra combinación de modos de intrapredicción analizados anteriormente.
En la etapa opcional 1705, un modo de intrapredicción seleccionado se decodifica mediante un índice de subconjunto de modos de intrapredicción cuando el modo de intrapredicción seleccionado se incluye en el subconjunto de modos de intrapredicción. En la etapa opcional 1707, el modo de intrapredicción seleccionado se decodifica mediante un índice de modo de interpredicción cuando el modo de intrapredicción seleccionado no se incluye en el subconjunto de modos de intrapredicción. El modo de intrapredicción seleccionado también puede ser decodificado basado en el índice MPM en algunos casos como se analiza con respecto a la FIG. 9.
Los indicadores también se pueden emplear para proporcionar contexto para determinar el esquema de indexación como se analiza con respecto a las FIGS. 10-11.
En la etapa 1709, un índice de línea de referencia se decodifica de la codificación cuando el modo de intrapredicción seleccionado se incluye en el subconjunto de modos de intrapredicción. El índice de línea de referencia indica una línea de referencia seleccionada de la pluralidad de líneas de referencia para el modo de intrapredicción seleccionado. Como se analizó anteriormente, no se decodifica ningún índice de línea de referencia cuando el modo de intrapredicción seleccionado no se incluye en el subconjunto de modos de intrapredicción para reducir los bits extraños en el flujo de bits. El índice de línea de referencia puede codificarse después del modo de intrapredicción seleccionado en la codificación para soportar aún más dicha señalización condicional en el flujo de bits (por ejemplo, como se analiza con respecto a las FIGS 10-11).
En la etapa 1711, los datos de vídeo se presentan a un usuario a través de una pantalla. Los datos de vídeo incluyen un bloque de imagen decodificado basado en el modo de intrapredicción seleccionado y la(s) línea(s) de referencia correspondiente(s).
La FIG. 18 es un diagrama de flujo de un método 1800 de ejemplo de codificación de vídeo con intrapredicción de modo DC con líneas de referencia alternativas. Por ejemplo, el método 1800 puede operar en un dispositivo 1600 de codificación de vídeo configurado para actuar como un decodificador 400. El método 1800 también puede emplear modos 500 de intrapredicción junto con el esquema 800 de línea de referencia alternativa y el subconjunto 930 de modos de intrapredicción según la intrapredicción 1200 de modo DC.
En la etapa 1801, se almacena un flujo de bits en la memoria. El flujo de bits incluye datos de vídeo comprimidos. Los datos de vídeo comprimidos incluyen bloques de imagen codificados como bloques de predicción según un esquema de intrapredicción. En la etapa 1803 se obtiene un bloque de predicción actual que está codificado por un modo de intrapredicción DC. En la etapa 1805, se determina un valor de predicción de DC para el bloque de predicción actual. El valor de predicción de DC aproxima un bloque de imagen actual correspondiente al bloque de predicción actual determinando un promedio de todas las muestras de referencia en al menos dos de una pluralidad de líneas de referencia asociadas con el bloque de predicción actual. En consecuencia, la etapa 1805 extiende el modo de predicción de DC en un contexto de línea de referencia alternativa. En algunos ejemplos, la determinación del valor de predicción de DC puede incluir determinar un promedio de todas las muestras de referencia en N líneas de referencia adyacentes al bloque de predicción actual, donde N es un número entero predeterminado. En algunos ejemplos, determinar el valor de predicción de DC incluye determinar un promedio de todas las muestras de referencia en una línea de referencia seleccionada y una línea de referencia correspondiente (por ejemplo, predefinida). En otro ejemplo más, determinar el valor de predicción de DC incluye determinar un promedio de todas las muestras de referencia en una línea de referencia adyacente (por ejemplo, línea de referencia con índice cero) y una línea de referencia seleccionada como señalada en un flujo de bits. Además, el valor de predicción D<c>puede determinarse empleando cualquier combinación de esquemas como se analizó con respecto a la FIG. 12 anterior. En la etapa 1807, el bloque de imagen actual se reconstruye basado en el valor de predicción de DC. En el bloque 1809, un fotograma de vídeo que incluye el bloque de imagen actual se visualiza a un usuario.
La FIG. 19 es un diagrama de flujo de un método 1900 de ejemplo de codificación de vídeo con líneas de referencia codificadas por palabras de código basadas en la probabilidad de selección. Por ejemplo, el método 1900 puede operar en un dispositivo 1600 de codificación de vídeo configurado para actuar como un decodificador 400. El método 1900 también puede emplear modos 500 de intrapredicción junto con el esquema 800 de línea de referencia alternativa y el subconjunto 930 de modos de intrapredicción empleando el mecanismo 1300. Además, se pueden emplear diferentes números de filas de referencia y columnas de referencia por el método 1900, como se analiza con respecto a las FIGS. 14 y 15.
En la etapa 1901, se recibe un flujo de bits que incluye una codificación. La codificación incluía datos de vídeo comprimidos por un codificador. En la etapa 1903, se decodifica un modo de intrapredicción de la codificación. El modo de intrapredicción indica una relación entre un bloque actual y una muestra de referencia en una línea de referencia seleccionada. Además, el bloque actual se asocia con una pluralidad de líneas de referencia que incluyen la línea de referencia seleccionada (por ejemplo, un esquema de línea de referencia alternativa). En la etapa 1905, la línea de referencia seleccionada se decodifica basada en una palabra de código seleccionada que indica la línea de referencia seleccionada. La palabra de código seleccionada incluye una longitud basada en una probabilidad de selección de la línea de referencia seleccionada como se analiza con respecto a la FIG.
13. Por ejemplo, la pluralidad de líneas de referencia puede ser indicada por una pluralidad de palabras de código. Además, la línea de referencia más alejada del bloque actual puede indicarse mediante la palabra de código con una segunda longitud más corta. En otro ejemplo, la segunda línea de referencia más alejada del bloque actual puede indicarse mediante la palabra de código con una segunda longitud más corta. En otro ejemplo, una línea de referencia predefinida que no sea una línea de referencia adyacente puede ser indicada por la palabra de código con una segunda longitud más corta. En otro ejemplo más, la pluralidad de palabras de código se puede ordenar en un grupo de clase A y un grupo de clase B. El grupo de clase A puede incluir palabras de código con longitudes más cortas que las longitudes de las palabras de código en el grupo de clase B. Además, el grupo de clase A y el grupo de clase B pueden aumentarse y disminuirse de forma independiente uno del otro. En otros ejemplos, las líneas de referencia pueden incluir diferentes números de filas de referencia y columnas de referencia como se analiza con respecto a las FIGS. 14 y 15. Por ejemplo, la pluralidad de líneas de referencia puede incluir filas de referencia y columnas de referencia. Además, el número de filas de referencia almacenadas para el bloque actual puede ser la mitad del número de columnas de referencia almacenadas para el bloque actual. En otro ejemplo, el número de filas de referencia almacenadas para el bloque actual puede ser igual a un número de columnas de referencia almacenadas para el bloque actual menos uno. En otro ejemplo, el número de filas de referencia almacenadas para el bloque actual se puede seleccionar basado en el número de filas de referencia empleadas por una operación de filtro de desbloqueo. En la etapa 1907, los datos de vídeo se presentan a un usuario a través de una pantalla. Los datos de vídeo incluyen un bloque de imagen decodificado basado en el modo de intrapredicción seleccionado y la línea de referencia. En consecuencia, los métodos 1700, 1800 y 1900 pueden aplicarse solos o en cualquier combinación para mejorar la efectividad de un esquema de línea de referencia alternativa cuando se codifica vídeo a través de la intrapredicción.
Un dispositivo de codificación de vídeo que comprende: un medio de recepción para recibir un flujo de bits; un medio de procesamiento para: determinar un subconjunto de modos de intrapredicción, el subconjunto de modos de intrapredicción que incluye modos de intrapredicción que se correlacionan con una pluralidad de líneas de referencia para un bloque de imagen actual y que excluyen modos de intrapredicción que se correlacionan con una línea de referencia primaria para el bloque de imagen actual; cuando se incluye un primer modo de intrapredicción en el subconjunto de modos de intrapredicción, decodificar el primer modo de intrapredicción mediante un índice de modo de intrapredicción alternativo; y cuando el primer modo de intrapredicción no se incluye en el subconjunto de modo de intrapredicción, decodificar el primer modo de intrapredicción mediante un índice de modo de intrapredicción; y un medio de visualización para presentar datos de vídeo que incluyen un bloque de imagen decodificado basado en el primer modo de intrapredicción.
Un método que comprende: almacenar, en un medio de memoria, un flujo de bits que incluye bloques de imagen codificados como bloques de predicción; obtener, por un medio de procesamiento, un bloque de predicción actual codificado por un modo de intrapredicción de Corriente Directa (DC); determinar un valor de predicción de DC para aproximar un bloque de imagen actual correspondiente al bloque de predicción actual determinando un promedio de todas las muestras de referencia en al menos dos de una pluralidad de líneas de referencia asociadas con el bloque de predicción actual; reconstruir, por el procesador, el bloque de imagen actual basado en el valor de predicción de DC; y visualizar, en un medio de visualización, un fotograma de vídeo que incluye el bloque de imagen actual.
Un dispositivo de codificación de vídeo que comprende: medios de recepción para recibir un flujo de bits; medios de procesamiento para decodificar un modo de intrapredicción a partir del flujo de bits, el modo de intrapredicción que indica una relación entre un bloque actual y una línea de referencia seleccionada, el bloque actual asociado con una pluralidad de líneas de referencia que incluyen la línea de referencia seleccionada, y decodificar la línea de referencia seleccionada basada en una palabra de código seleccionada que indica la línea de referencia seleccionada, la palabra de código seleccionada que incluye una longitud basada en una probabilidad de selección de la línea de referencia seleccionada; y un medio de visualización para presentar datos de vídeo que incluye un bloque de imagen decodificado basado en el modo de intrapredicción y la línea de referencia seleccionada.
Un primer componente se acopla directamente a un segundo componente cuando no hay componentes intermedios, excepto una línea, una traza u otro medio entre el primer componente y el segundo componente. El primer componente se acopla indirectamente a un segundo componente cuando hay componentes intermedios, excepto una línea, una traza u otro medio entre el primer componente y el segundo componente. El término "acoplado" y sus variantes incluyen tanto los acoplados directamente como los acoplados indirectamente. El uso del término "aproximadamente" significa un intervalo que incluye ± 10 % del número posterior a menos que se indique lo contrario.
Mientras que varias realizaciones se han proporcionado en la presente descripción, debe entenderse que los sistemas y métodos descritos pueden realizarse en muchas otras formas específicas sin alejarse del alcance de la presente descripción. Los ejemplos presentes deben considerarse como ilustrativos y no restrictivos, y la intención no es limitarse a los detalles dados en la presente memoria. Por ejemplo, los varios elementos o componentes podrían combinarse o integrarse en otro sistema o ciertas características podrían omitirse o no implementarse.
Además, las técnicas, sistemas, subsistemas, métodos descritos e ilustrados en las varias realizaciones como discretos o separados podrían combinarse o integrarse con otros sistemas, componentes, técnicas, o métodos sin apartarse del alcance de la presente descripción. Un experto en la técnica puede determinar otros ejemplos de cambios, sustituciones y alteraciones y podrían hacerse sin apartarse del alcance descrito en la presente memoria. La invención se expone en el conjunto de reivindicaciones adjuntas.
Claims (9)
1. Un dispositivo de decodificación de vídeo que comprende:
un receptor (1610) configurado para recibir un flujo de bits;
un procesador (1630) acoplado al receptor y configurado para:
determinar un subconjunto de modos de intrapredicción, el subconjunto de modos de intrapredicción que incluye modos de intrapredicción que tienen acceso a una pluralidad de líneas de referencia para un bloque de imagen actual y que excluyen modos de intrapredicción que solo tienen acceso a una línea de referencia primaria más cercana al bloque de imagen actual, en donde la pluralidad de líneas de referencia incluye la línea de referencia primaria y un conjunto de líneas de referencia que se colocan más lejos del bloque de imagen actual que la línea de referencia primaria, y en donde el subconjunto de modos de intrapredicción incluye modos asociados con una lista de modo más probable, MPM;
cuando la información del modo de intrapredicción en el flujo de bits indica que no se incluye un primer modo de intrapredicción en el subconjunto de modos de intrapredicción, decodificar el primer modo de intrapredicción mediante un índice de modo de intrapredicción; o, cuando la información del modo de intrapredicción en el flujo de bits indica que se incluye un primer modo de intrapredicción en el subconjunto de modos de intrapredicción, decodificar el primer modo de intrapredicción mediante un índice de lista MPM, en donde el índice de lista MPM indica un modo de intrapredicción en la lista MPM;
realizar una intrapredicción basada en el primer modo de intrapredicción para obtener el bloque de imagen actual; y
una pantalla acoplada al procesador y configurada para presentar datos de vídeo que incluyen el bloque de imagen actual.
2. El dispositivo de decodificación de vídeo de la reivindicación 1, en donde el procesador (1630) se configura además para:
decodificar un índice de línea de referencia cuando el primer modo de intrapredicción se incluye en el subconjunto de modos de intrapredicción, el índice de línea de referencia indica una primera línea de referencia de la pluralidad de líneas de referencia para el primer modo de intrapredicción.
3. El dispositivo de decodificación de vídeo de la reivindicación 2, en donde el índice de línea de referencia se coloca después del primer modo de intrapredicción en el flujo de bits.
4. Un método realizado por un dispositivo de decodificación de vídeo, que comprende:
determinar (1703), por un procesador del dispositivo, un subconjunto de modos de intrapredicción, el subconjunto de modos de intrapredicción que incluye modos de intrapredicción que tienen acceso a una pluralidad de líneas de referencia para un bloque de imagen actual y que excluyen modos de intrapredicción que solo tienen acceso a una línea de referencia primaria más cercana al bloque de imagen actual, en donde la pluralidad de líneas de referencia incluye la línea de referencia primaria y un conjunto de líneas de referencia que se colocan más lejos del bloque de imagen actual que la línea de referencia primaria, y en donde el subconjunto de modos de intrapredicción incluye modos asociados con una lista de modo más probable, MPM;
decodificar (1705), por el procesador, un primer modo de intrapredicción mediante un índice de modo de intrapredicción cuando la información del modo de intrapredicción en el flujo de bits indica que el primer modo de interpredicción no se incluye en el subconjunto de modos de intrapredicción, o, un primer modo de intrapredicción mediante un índice de lista MPM cuando la información del modo de intrapredicción en el flujo de bits indica que el primer modo de intrapredicción se incluye en el subconjunto de modos de intrapredicción, en donde el índice de lista MPM indica un modo de intrapredicción en la lista MPM;
realizar una intrapredicción basada en el primer modo de intrapredicción para obtener el bloque de imagen actual; y
visualizar (1711), en una pantalla, datos de vídeo que incluyen el bloque de imagen actual.
5. El método de la reivindicación 4, el método comprende además:
decodificar (1709) un índice de línea de referencia solo cuando el primer modo de intrapredicción se incluye en el subconjunto de modos de intrapredicción, el índice de línea de referencia que indica una primera línea de referencia de la pluralidad de líneas de referencia para el primer modo de intrapredicción.
6. El método de la reivindicación 5, en donde el índice de línea de referencia se coloca después del primer modo de intrapredicción en el flujo de bits.
7. Un medio legible por ordenador no transitorio que comprende un producto de programa informático para su uso por un dispositivo de decodificación de vídeo, el producto de programa informático que comprende instrucciones ejecutables por ordenador almacenadas en el medio legible por ordenador no transitorio de manera que cuando se ejecutan por un procesador hacen que el dispositivo de decodificación de vídeo:
reciba, a través de un receptor, un flujo de bits;
determine, por el procesador, un subconjunto de modos de intrapredicción, el subconjunto de modos de intrapredicción que incluye modos de intrapredicción que tienen acceso a una pluralidad de líneas de referencia para un bloque de imagen actual y que excluyen modos de intrapredicción que solo tienen acceso a una línea de referencia primaria más cercana al bloque de imagen actual, en donde la pluralidad de líneas de referencia incluye la línea de referencia primaria y un conjunto de líneas de referencia que se colocan más lejos del bloque de imagen actual que la línea de referencia primaria, y en donde el subconjunto de modos de intrapredicción incluye modos asociados con una lista de modo más probable, MPM;
decodifique, por el procesador, un primer modo de intrapredicción mediante un índice de modo de intrapredicción cuando la información del modo de intrapredicción en el flujo de bits indica que el primer modo de intrapredicción no se incluye en el subconjunto de modos de intrapredicción, o, un primer modo de intrapredicción mediante un índice de lista MPM cuando la información del modo de intrapredicción en el flujo de bits indica que el primer modo de intrapredicción se incluye en el subconjunto de modos de intrapredicción, en donde el índice de lista MPM indica un modo de intrapredicción en la lista MPM;
realice una intrapredicción basada en el primer modo de intrapredicción para obtener el bloque de imagen actual; y
presente, en una pantalla, datos de vídeo que incluyen el bloque de imagen actual.
8. El medio legible por ordenador no transitorio de la reivindicación 7, el procesador está configurado además para:
decodificar un índice de línea de referencia solo cuando el primer modo de intrapredicción se incluye en el subconjunto de modos de intrapredicción, el índice de línea de referencia que indica una primera línea de referencia de la pluralidad de líneas de referencia para el primer modo de intrapredicción.
9. El medio legible por ordenador no transitorio de la reivindicación 8, en donde el índice de línea de referencia se coloca después del primer modo de intrapredicción en el flujo de bits.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762503884P | 2017-05-09 | 2017-05-09 | |
| US201762511757P | 2017-05-26 | 2017-05-26 | |
| US15/972,870 US10742975B2 (en) | 2017-05-09 | 2018-05-07 | Intra-prediction with multiple reference lines |
| PCT/CN2018/086136 WO2018205950A1 (en) | 2017-05-09 | 2018-05-09 | Intra-prediction with multiple reference lines |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3001111T3 true ES3001111T3 (es) | 2025-03-04 |
Family
ID=64098024
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES18798000T Active ES3001111T3 (es) | 2017-05-09 | 2018-05-09 | Intrapredicción con múltiples líneas de referencia |
Country Status (9)
| Country | Link |
|---|---|
| US (5) | US10742975B2 (es) |
| EP (2) | EP3568979B1 (es) |
| JP (5) | JP6907328B2 (es) |
| KR (3) | KR102424188B1 (es) |
| CN (4) | CN113840141A (es) |
| ES (1) | ES3001111T3 (es) |
| PL (1) | PL3568979T3 (es) |
| PT (1) | PT3568979T (es) |
| WO (1) | WO2018205950A1 (es) |
Families Citing this family (121)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3300362A1 (en) * | 2016-09-27 | 2018-03-28 | Thomson Licensing | Method for improved intra prediction when reference samples are missing |
| US10742975B2 (en) * | 2017-05-09 | 2020-08-11 | Futurewei Technologies, Inc. | Intra-prediction with multiple reference lines |
| WO2018216862A1 (ko) * | 2017-05-24 | 2018-11-29 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩 방법 및 장치 |
| KR102610014B1 (ko) * | 2017-07-06 | 2023-12-05 | 삼성전자주식회사 | 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치 |
| CN117354501A (zh) | 2017-07-06 | 2024-01-05 | Lx 半导体科技有限公司 | 图像编码/解码方法、发送方法和数字存储介质 |
| US10432929B2 (en) * | 2018-02-12 | 2019-10-01 | Tencent America LLC | Method and apparatus for multiple line intra prediction in video compression |
| KR102448401B1 (ko) * | 2018-03-16 | 2022-09-28 | 엘지전자 주식회사 | 인트라 예측 기반 영상/비디오 코딩 방법 및 그 장치 |
| WO2019182292A1 (ko) * | 2018-03-19 | 2019-09-26 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
| WO2019184834A1 (en) * | 2018-03-28 | 2019-10-03 | Fg Innovation Ip Company Limited | Device and method for coding video data in multiple reference line prediction |
| KR20250017748A (ko) * | 2018-03-30 | 2025-02-04 | 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 | 인트라 예측 기반 영상/비디오 코딩 방법 및 그 장치 |
| US10419754B1 (en) | 2018-04-02 | 2019-09-17 | Tencent America LLC | Method and apparatus for video decoding using multiple line intra prediction |
| CN115623197A (zh) * | 2018-05-12 | 2023-01-17 | 数码士有限公司 | 使用参考样本的视频信号处理方法及设备 |
| EP3804309A1 (en) * | 2018-06-07 | 2021-04-14 | InterDigital VC Holdings, Inc. | Syntax elements for video encoding or decoding |
| CN119922307A (zh) * | 2018-06-18 | 2025-05-02 | 世宗大学校产学协力团 | 影像解码/编码方法和传输比特流的方法 |
| CN118945329A (zh) | 2018-06-27 | 2024-11-12 | 株式会社Kt | 对图像进行解码和编码的方法以及用于发送比特流的装置 |
| US11159806B2 (en) * | 2018-06-28 | 2021-10-26 | Qualcomm Incorporated | Position dependent intra prediction combination with multiple reference lines for intra prediction |
| KR102840294B1 (ko) | 2018-06-29 | 2025-07-30 | 두인 비전 컴퍼니 리미티드 | 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념 |
| SG11202013028PA (en) | 2018-06-29 | 2021-01-28 | Beijing Bytedance Network Technology Co Ltd | Interaction between lut and amvp |
| WO2020003265A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Conditions of usage of luts |
| CN110662052B (zh) | 2018-06-29 | 2022-07-08 | 北京字节跳动网络技术有限公司 | 更新查找表(lut)的条件 |
| EP4322533A3 (en) | 2018-06-29 | 2024-03-06 | Beijing Bytedance Network Technology Co., Ltd. | Checking order of motion candidates in lut |
| KR102627814B1 (ko) | 2018-06-29 | 2024-01-23 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 룩업 테이블의 업데이트: fifo, 제약된 fifo |
| WO2020003282A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Managing motion vector predictors for video coding |
| KR102680903B1 (ko) | 2018-06-29 | 2024-07-04 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Hmvp 후보를 병합/amvp에 추가할 때의 부분/풀 프루닝 |
| JP7601639B2 (ja) * | 2018-06-29 | 2024-12-17 | フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | 拡張参照画像内予測 |
| US10567752B2 (en) | 2018-07-02 | 2020-02-18 | Tencent America LLC | Method and apparatus for intra prediction for non-square blocks in video compression |
| CN110677669B (zh) | 2018-07-02 | 2021-12-07 | 北京字节跳动网络技术有限公司 | 具有lic的lut |
| US10491893B1 (en) | 2018-08-29 | 2019-11-26 | Tencent America LLC | Method and apparatus for multi-line intra prediction |
| MY199332A (en) * | 2018-09-03 | 2023-10-24 | Huawei Tech Co Ltd | Method and apparatus for intra prediction |
| SG11202101877PA (en) | 2018-09-07 | 2021-03-30 | B1 Institute Of Image Technology Inc | Image encoding/decoding method and device |
| US10834393B2 (en) * | 2018-09-10 | 2020-11-10 | Tencent America LLC | Intra interpolation filter for multi-line intra prediction |
| WO2020053798A1 (en) | 2018-09-12 | 2020-03-19 | Beijing Bytedance Network Technology Co., Ltd. | Conditions for starting checking hmvp candidates depend on total number minus k |
| RU2768956C1 (ru) * | 2018-09-28 | 2022-03-25 | ДжейВиСиКЕНВУД Корпорейшн | Устройство декодирования изображения, способ декодирования изображения, устройство кодирования изображения и способ кодирования изображения |
| US11095885B2 (en) * | 2018-10-05 | 2021-08-17 | Tencent America LLC | Mode list generation for multi-line intra prediction |
| WO2020092535A1 (en) * | 2018-10-31 | 2020-05-07 | Interdigital Vc Holdings, Inc. | Multi-reference line intra prediction and most probable mode |
| US11509891B2 (en) * | 2018-11-04 | 2022-11-22 | Lg Electronics Inc. | Intra prediction method and apparatus in image coding system |
| US11178396B2 (en) * | 2018-11-14 | 2021-11-16 | Tencent America LLC | Constrained intra prediction and unified most probable mode list generation |
| JP7182098B2 (ja) * | 2018-11-22 | 2022-12-02 | 北京字節跳動網絡技術有限公司 | 映像処理におけるパルス符号変調技術 |
| EP3857896A4 (en) | 2018-11-22 | 2021-12-01 | Beijing Bytedance Network Technology Co. Ltd. | COORDINATION PROCESS FOR INTER-PREDICTION BASED ON SUB-BLOCKS |
| KR20200063092A (ko) * | 2018-11-27 | 2020-06-04 | 주식회사 엑스리스 | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 |
| US11012711B2 (en) * | 2018-11-29 | 2021-05-18 | Tencent America LLC | Adaptive most probable modes for multiple reference line intra prediction |
| US11032551B2 (en) * | 2018-12-04 | 2021-06-08 | Tencent America LLC | Simplified most probable mode list generation scheme |
| CN111294590A (zh) * | 2018-12-06 | 2020-06-16 | 华为技术有限公司 | 用于多假设编码的加权预测方法及装置 |
| CN118660160A (zh) | 2018-12-28 | 2024-09-17 | 有限公司B1影像技术研究所 | 对图像进行编码/解码的方法和计算机可读存储介质 |
| CN109803145B (zh) * | 2018-12-29 | 2022-10-28 | 浙江大华技术股份有限公司 | 帧内预测方法、装置、编码器及存储装置 |
| CN113395520B (zh) | 2019-01-02 | 2023-05-16 | Oppo广东移动通信有限公司 | 解码预测方法、装置及计算机存储介质 |
| KR102769276B1 (ko) | 2019-01-09 | 2025-02-20 | 엘지전자 주식회사 | Mpm 리스트를 사용하는 인트라 예측 기반 영상 코딩 방법 및 장치 |
| WO2020145735A1 (ko) * | 2019-01-10 | 2020-07-16 | 엘지전자 주식회사 | Mpm 리스트를 사용하는 인트라 예측 기반 영상 코딩 방법 및 장치 |
| KR102648159B1 (ko) | 2019-01-10 | 2024-03-18 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Lut 업데이트의 호출 |
| US11172197B2 (en) | 2019-01-13 | 2021-11-09 | Tencent America LLC | Most probable mode list generation scheme |
| KR102766978B1 (ko) * | 2019-01-13 | 2025-02-14 | 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 | Mrl 기반 인트라 예측을 수행하는 영상 코딩 방법 및 장치 |
| WO2020143824A1 (en) | 2019-01-13 | 2020-07-16 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between lut and shared merge list |
| US11019359B2 (en) * | 2019-01-15 | 2021-05-25 | Tencent America LLC | Chroma deblock filters for intra picture block compensation |
| CN113330739B (zh) | 2019-01-16 | 2025-01-10 | 北京字节跳动网络技术有限公司 | Lut中的运动候选的插入顺序 |
| WO2020162737A1 (ko) | 2019-02-08 | 2020-08-13 | 주식회사 윌러스표준기술연구소 | 이차 변환을 이용하는 비디오 신호 처리 방법 및 장치 |
| JP7515266B2 (ja) * | 2019-02-15 | 2024-07-12 | 日本放送協会 | イントラ予測装置、画像復号装置、及びプログラム |
| JP7682793B2 (ja) | 2019-02-20 | 2025-05-26 | エルジー エレクトロニクス インコーポレイティド | Mpmリストに基づくイントラ予測方法及び装置 |
| KR20210116668A (ko) * | 2019-02-21 | 2021-09-27 | 엘지전자 주식회사 | 인트라 예측을 위한 비디오 신호의 처리 방법 및 장치 |
| US11902572B2 (en) * | 2019-02-26 | 2024-02-13 | Lg Electronics Inc. | Intra prediction-based image coding method and apparatus using unified MPM list |
| WO2020175965A1 (ko) | 2019-02-28 | 2020-09-03 | 주식회사 윌러스표준기술연구소 | 인트라 예측 기반 비디오 신호 처리 방법 및 장치 |
| WO2020180133A1 (ko) * | 2019-03-06 | 2020-09-10 | 엘지전자 주식회사 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 |
| KR20250036265A (ko) * | 2019-03-12 | 2025-03-13 | 텐센트 아메리카 엘엘씨 | 비디오 인코딩 또는 디코딩을 위한 방법 및 장치 |
| WO2020182167A1 (en) | 2019-03-12 | 2020-09-17 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for image coding |
| CN110166772B (zh) * | 2019-03-12 | 2021-04-27 | 浙江大华技术股份有限公司 | 帧内预测模式的编解码方法、装置、设备和可读存储介质 |
| US11405638B2 (en) * | 2019-03-17 | 2022-08-02 | Tencent America LLC | Method and apparatus for video coding by determining intra prediction direction based on coded information of neighboring blocks |
| US11025909B2 (en) * | 2019-03-21 | 2021-06-01 | Tencent America LLC | Method and apparatus for video coding |
| US11496748B2 (en) * | 2019-03-21 | 2022-11-08 | Tencent America LLC | Method and apparatus for improved planar and DC modes for non-zero reference lines |
| AU2020240981B2 (en) * | 2019-03-21 | 2025-07-24 | Huawei Technologies Co., Ltd. | Method and apparatus for intra-prediction |
| US12149679B2 (en) * | 2019-03-22 | 2024-11-19 | Lg Electronics Inc. | Intra prediction method and apparatus based on multi-reference line in image coding system |
| WO2020197152A1 (ko) * | 2019-03-22 | 2020-10-01 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인트라 예측 모드 후보 리스트를 사용하는 영상 디코딩 방법 및 그 장치 |
| HRP20241773T1 (hr) * | 2019-03-22 | 2025-02-28 | Lg Electronics Inc. | Dekodiranje i kodiranje slike |
| CN113615193B (zh) | 2019-03-22 | 2024-06-25 | 北京字节跳动网络技术有限公司 | Merge列表构建和其他工具之间的交互 |
| AU2020245002B2 (en) | 2019-03-23 | 2023-03-30 | Lg Electronics Inc. | Method for coding image on basis of intra prediction using MPM list and apparatus therefor |
| EP3918790A4 (en) | 2019-03-24 | 2022-04-13 | Huawei Technologies Co., Ltd. | METHOD AND DEVICE FOR QUANTIZING COEFFICIENTS FOR A MATRIX-BASED INTRAPREDICTION TECHNIQUE |
| WO2020197202A1 (ko) * | 2019-03-26 | 2020-10-01 | 엘지전자 주식회사 | Mpm 리스트에 기반한 인트라 예측 방법 및 그 장치 |
| EP3723368A1 (en) * | 2019-04-12 | 2020-10-14 | InterDigital VC Holdings, Inc. | Wide angle intra prediction with sub-partitions |
| WO2020228670A1 (en) | 2019-05-10 | 2020-11-19 | Beijing Bytedance Network Technology Co., Ltd. | Luma based secondary transform matrix selection for video processing |
| CN120812262A (zh) * | 2019-05-27 | 2025-10-17 | Sk电信有限公司 | 用于帧内预测的方法和用于提供视频数据的方法 |
| CN117354521A (zh) | 2019-06-07 | 2024-01-05 | 北京字节跳动网络技术有限公司 | 视频比特流中的简化二次变换的有条件信令 |
| WO2020256507A1 (ko) * | 2019-06-20 | 2020-12-24 | 엘지전자 주식회사 | 다중 참조 라인 인트라 예측을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 |
| US11277616B2 (en) | 2019-06-20 | 2022-03-15 | Qualcomm Incorporated | DC intra mode prediction in video coding |
| EP3970377B1 (en) * | 2019-06-21 | 2023-08-30 | Huawei Technologies Co., Ltd. | Method and apparatus of quantizing coefficients for matrix-based intra prediction technique |
| EP3970365B1 (en) * | 2019-06-21 | 2025-08-06 | Huawei Technologies Co., Ltd. | Matrix-based intra prediction for still picture and video coding |
| CN113382256B (zh) * | 2019-06-21 | 2022-05-20 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置、设备及存储介质 |
| WO2020259263A1 (en) * | 2019-06-25 | 2020-12-30 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for image coding |
| CN114208183B (zh) | 2019-08-03 | 2025-01-10 | 北京字节跳动网络技术有限公司 | 视频的缩减二次变换中基于位置的模式导出 |
| KR102808776B1 (ko) | 2019-08-13 | 2025-05-15 | 두인 비전 컴퍼니 리미티드 | 서브 블록 기반 인터 예측의 모션 정밀도 |
| WO2021032045A1 (en) | 2019-08-17 | 2021-02-25 | Beijing Bytedance Network Technology Co., Ltd. | Context modeling of side information for reduced secondary transforms in video |
| CN114365486B (zh) * | 2019-09-19 | 2025-06-10 | 瑞典爱立信有限公司 | 基于矩阵的帧内预测(mip)的方法和设备 |
| WO2021052507A1 (en) | 2019-09-22 | 2021-03-25 | Beijing Bytedance Network Technology Co., Ltd. | Sub-picture coding and decoding of video |
| EP4035392A1 (en) * | 2019-09-24 | 2022-08-03 | InterDigital VC Holdings France, SAS | Most probable mode signaling with multiple reference line intra prediction |
| GB2588406B (en) * | 2019-10-22 | 2022-12-07 | British Broadcasting Corp | Video encoding and video decoding |
| US11363295B2 (en) * | 2019-11-27 | 2022-06-14 | Tencent America LLC | Method and system for intra mode coding |
| EP4070552A1 (en) * | 2019-12-05 | 2022-10-12 | InterDigital VC Holdings France, SAS | Intra sub partitions for video encoding and decoding combined with multiple transform selection, matrix weighted intra prediction or multi-reference-line intra prediction |
| CN114830652B (zh) | 2019-12-16 | 2025-09-12 | 华为技术有限公司 | 用于方向性帧内预测的参考样本插值滤波的方法及装置 |
| US11558605B2 (en) * | 2020-01-23 | 2023-01-17 | Tencent America LLC | Video coding method and system based on multiple reference line intra prediction |
| US12267528B2 (en) * | 2020-02-25 | 2025-04-01 | Lg Electronics Inc. | Image decoding method related to residual coding, and device therefor |
| CN111447441B (zh) * | 2020-03-13 | 2021-11-16 | 浙江大华技术股份有限公司 | 帧内像素预测值的计算方法、电子设备及装置 |
| CN111447440B (zh) * | 2020-03-13 | 2021-11-16 | 浙江大华技术股份有限公司 | 帧内像素预测值的计算方法、电子设备及装置 |
| CN111654696B (zh) * | 2020-04-24 | 2022-08-05 | 北京大学 | 一种帧内的多参考行预测方法、装置、存储介质及终端 |
| US11563977B2 (en) * | 2020-09-24 | 2023-01-24 | Tencent America LLC | Method and apparatus for video coding |
| US11765376B2 (en) | 2020-10-08 | 2023-09-19 | Tencent America LLC | Pruning methods and apparatuses for neural network based video coding |
| CN115086654B (zh) * | 2021-03-14 | 2024-11-22 | 腾讯科技(深圳)有限公司 | 视频编解码方法、装置、计算机可读介质及电子设备 |
| US12015765B2 (en) * | 2021-04-26 | 2024-06-18 | Tencent America LLC | Template matching based intra prediction |
| US12388976B2 (en) * | 2021-06-29 | 2025-08-12 | Sharp Kabushiki Kaisha | Device and method for coding video data |
| US11800122B2 (en) * | 2021-08-17 | 2023-10-24 | Mediatek Inc. | Video processing apparatus using internal prediction buffer that is shared by multiple coding tools for prediction |
| CN118451705A (zh) * | 2021-09-28 | 2024-08-06 | 欧芬诺有限责任公司 | 自适应偏移多参考线编码 |
| WO2023106599A1 (ko) * | 2021-12-06 | 2023-06-15 | 현대자동차주식회사 | 참조샘플라인의 유도 기반 인트라 예측을 이용하는 비디오 코딩을 위한 방법 및 장치 |
| EP4436167A4 (en) * | 2021-12-23 | 2025-10-08 | Hyundai Motor Co Ltd | VIDEO CODING METHOD AND DEVICE USING ADAPTIVE MULTI-REFERENCE LINES |
| EP4458015A4 (en) * | 2021-12-28 | 2026-01-07 | Guangdong Oppo Mobile Telecommunications Corp Ltd | INTRA PREDICTION WITH MULTIPLE REFERENCE LINES |
| EP4460964A1 (en) * | 2022-01-05 | 2024-11-13 | Ofinno, LLC | Asymmetric offset multiple reference line coding |
| CN119054282A (zh) * | 2022-04-03 | 2024-11-29 | Lg 电子株式会社 | 图像编码/解码方法和设备以及其中存储有比特流的记录介质 |
| WO2023195646A1 (ko) * | 2022-04-05 | 2023-10-12 | 현대자동차주식회사 | 선택적 다중 참조라인을 이용하는 비디오 코딩을 위한 방법 및 장치 |
| US20250358405A1 (en) * | 2022-05-16 | 2025-11-20 | Hyundai Motor Company | Method and apparatus for video coding using virtual reference line |
| CN119698832A (zh) | 2022-06-13 | 2025-03-25 | 联发科技股份有限公司 | 电子设备和视讯编译码的方法 |
| WO2024007157A1 (zh) * | 2022-07-05 | 2024-01-11 | Oppo广东移动通信有限公司 | 多参考行索引列表排序方法、视频编解码方法、装置和系统 |
| US12506883B2 (en) * | 2022-07-13 | 2025-12-23 | Tencent America LLC | Template matching for multiple reference line intra prediction |
| EP4562850A1 (en) * | 2022-07-27 | 2025-06-04 | MediaTek Inc | Using mulitple reference lines for prediction |
| CN116016948A (zh) * | 2022-12-30 | 2023-04-25 | 广东中星电子有限公司 | 帧内预测方法和装置以及电子设备 |
| CN119316610B (zh) * | 2023-07-11 | 2026-04-14 | 维沃移动通信有限公司 | 帧内预测方法、参考对象确定方法、装置及电子设备 |
| US20260019562A1 (en) * | 2024-07-13 | 2026-01-15 | Tencent America LLC | Decoder side gradient-based intra mode derivation on non-adjacent reference line for chroma components |
Family Cites Families (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2676709C (en) * | 2007-02-23 | 2013-06-25 | Nippon Telegraph And Telephone Corporation | Video encoding method and decoding method, apparatuses therefor, programs therefor, and storage media which store the programs |
| EP2388999B1 (en) | 2010-05-17 | 2021-02-24 | Lg Electronics Inc. | New intra prediction modes |
| US8902978B2 (en) * | 2010-05-30 | 2014-12-02 | Lg Electronics Inc. | Enhanced intra prediction mode signaling |
| CN103416065A (zh) * | 2010-09-24 | 2013-11-27 | 诺基亚公司 | 用于视频编码的方法、装置和计算机程序 |
| EP2635030A4 (en) * | 2010-10-26 | 2016-07-13 | Humax Co Ltd | CODING AND DECODING METHOD WITH ADAPTIVE INTRAPREDICTION |
| KR101444667B1 (ko) | 2011-01-15 | 2014-09-30 | 에스케이 텔레콤주식회사 | 양방향 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치 |
| US9654785B2 (en) * | 2011-06-09 | 2017-05-16 | Qualcomm Incorporated | Enhanced intra-prediction mode signaling for video coding using neighboring mode |
| CN103636203B (zh) * | 2011-06-17 | 2017-07-14 | 寰发股份有限公司 | 内部预测模式编码的方法及装置 |
| RU2660640C1 (ru) | 2011-06-28 | 2018-07-06 | Самсунг Электроникс Ко., Лтд. | Способ и устройство для кодирования видео, а также способ и устройство для декодирования видео, сопровождаемого внутренним прогнозированием |
| PT3917147T (pt) | 2011-10-24 | 2025-10-16 | Gensquare Llc | Aparelho de descodificação de imagem |
| JP2013141187A (ja) | 2012-01-06 | 2013-07-18 | Sony Corp | 画像処理装置及び画像処理方法 |
| WO2014003421A1 (ko) | 2012-06-25 | 2014-01-03 | 한양대학교 산학협력단 | 비디오 부호화 및 복호화를 위한 방법 |
| US9736487B2 (en) | 2013-03-26 | 2017-08-15 | Mediatek Inc. | Method of cross color intra prediction |
| KR20140124443A (ko) * | 2013-04-15 | 2014-10-27 | 인텔렉추얼디스커버리 주식회사 | 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치 |
| CN105704491B (zh) * | 2014-11-28 | 2020-03-13 | 同济大学 | 图像编码方法、解码方法、编码装置和解码装置 |
| US20160373742A1 (en) * | 2015-06-18 | 2016-12-22 | Qualcomm Incorporated | Intra prediction and intra mode coding |
| CN108886617B (zh) * | 2016-04-06 | 2021-08-27 | 株式会社Kt | 用于处理视频信号的方法和设备 |
| CN116962721A (zh) * | 2016-05-04 | 2023-10-27 | 微软技术许可有限责任公司 | 利用样本值的非相邻参考线进行帧内图片预测的方法 |
| CN109314782A (zh) * | 2016-05-24 | 2019-02-05 | 夏普株式会社 | 用于帧内预测编码的系统和方法 |
| WO2017205703A1 (en) * | 2016-05-25 | 2017-11-30 | Arris Enterprises Llc | Improved weighted angular prediction coding for intra coding |
| US10484712B2 (en) * | 2016-06-08 | 2019-11-19 | Qualcomm Incorporated | Implicit coding of reference line index used in intra prediction |
| US10951912B2 (en) * | 2016-10-05 | 2021-03-16 | Qualcomm Incorporated | Systems and methods for adaptive selection of weights for video coding |
| WO2018070267A1 (ja) * | 2016-10-14 | 2018-04-19 | ソニー株式会社 | 画像処理装置および画像処理方法 |
| US10742975B2 (en) | 2017-05-09 | 2020-08-11 | Futurewei Technologies, Inc. | Intra-prediction with multiple reference lines |
| KR101842178B1 (ko) * | 2018-01-19 | 2018-05-14 | 광성(주) | 선박용 황산화물 저감장치 및 선박용 황산화물 저감장치의 운전방법 |
| US10419754B1 (en) * | 2018-04-02 | 2019-09-17 | Tencent America LLC | Method and apparatus for video decoding using multiple line intra prediction |
| DK3876539T3 (da) * | 2018-11-08 | 2024-02-12 | Guangdong Oppo Mobile Telecommunications Corp Ltd | Fremgangsmåde til kodning/afkodning af et billedsignal og tilknyttet apparat |
| JP2021108949A (ja) | 2020-01-10 | 2021-08-02 | サミー株式会社 | 弾球遊技機の遊技盤 |
-
2018
- 2018-05-07 US US15/972,870 patent/US10742975B2/en active Active
- 2018-05-09 ES ES18798000T patent/ES3001111T3/es active Active
- 2018-05-09 PL PL18798000.8T patent/PL3568979T3/pl unknown
- 2018-05-09 CN CN202110922987.2A patent/CN113840141A/zh active Pending
- 2018-05-09 KR KR1020197026287A patent/KR102424188B1/ko active Active
- 2018-05-09 KR KR1020227036516A patent/KR102645509B1/ko active Active
- 2018-05-09 EP EP18798000.8A patent/EP3568979B1/en active Active
- 2018-05-09 WO PCT/CN2018/086136 patent/WO2018205950A1/en not_active Ceased
- 2018-05-09 CN CN202110922771.6A patent/CN113852812B/zh active Active
- 2018-05-09 KR KR1020217037047A patent/KR102458641B1/ko active Active
- 2018-05-09 CN CN201880009052.1A patent/CN110235444B/zh active Active
- 2018-05-09 EP EP24201166.6A patent/EP4472196A3/en active Pending
- 2018-05-09 JP JP2019546271A patent/JP6907328B2/ja active Active
- 2018-05-09 CN CN202110921992.1A patent/CN113840140B/zh active Active
- 2018-05-09 PT PT187980008T patent/PT3568979T/pt unknown
-
2020
- 2020-06-26 US US16/913,227 patent/US11184610B2/en active Active
-
2021
- 2021-06-30 JP JP2021108949A patent/JP7234300B2/ja active Active
- 2021-11-03 US US17/518,312 patent/US11800094B2/en active Active
-
2023
- 2023-02-22 JP JP2023025996A patent/JP7543464B2/ja active Active
- 2023-09-18 US US18/468,956 patent/US12425580B2/en active Active
-
2024
- 2024-08-21 JP JP2024139650A patent/JP7797586B2/ja active Active
-
2025
- 2025-09-09 US US19/323,203 patent/US20260075192A1/en active Pending
- 2025-12-24 JP JP2025280704A patent/JP2026053588A/ja active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES3001111T3 (es) | Intrapredicción con múltiples líneas de referencia | |
| ES2987068T3 (es) | Intrapredicción utilizando un modelo lineal entre componentes en codificación de vídeo | |
| ES3004733T3 (en) | Adaptation parameter set identifier value spaces in video coding | |
| US10623738B2 (en) | Noise suppression filter | |
| US11606571B2 (en) | Spatial varying transform for video coding | |
| ES2992052T3 (es) | Señalización de grupos de mosaicos en codificación de video | |
| BR112021000817A2 (pt) | Árvore de codificação limitada para codificação de vídeo | |
| KR102961676B1 (ko) | 다중 레퍼런스 라인을 이용한 인트라 예측 |