ES3026211T3 - Use of chroma quantization parameter offsets in deblocking - Google Patents

Use of chroma quantization parameter offsets in deblocking Download PDF

Info

Publication number
ES3026211T3
ES3026211T3 ES19207170T ES19207170T ES3026211T3 ES 3026211 T3 ES3026211 T3 ES 3026211T3 ES 19207170 T ES19207170 T ES 19207170T ES 19207170 T ES19207170 T ES 19207170T ES 3026211 T3 ES3026211 T3 ES 3026211T3
Authority
ES
Spain
Prior art keywords
chroma
segment
level
offset
shift
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19207170T
Other languages
English (en)
Inventor
Gary J Sullivan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES3026211T3 publication Critical patent/ES3026211T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/117—Filters, e.g. for pre-processing or post-processing
    • 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/124—Quantisation
    • 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/124—Quantisation
    • H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/146—Data rate or code amount at the encoder output
    • H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186—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 colour or a chrominance component
    • 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Innovaciones en el uso de los desplazamientos del parámetro de cuantificación de croma ("QP") al determinar un parámetro de control para el filtrado de desbloqueo. Por ejemplo, como parte de la codificación, un codificador establece un desplazamiento QP de croma a nivel de imagen y un desplazamiento QP de croma a nivel de corte para codificar un corte de una imagen. El codificador también realiza el filtrado de desbloqueo de al menos una parte del corte, donde la derivación de un parámetro de control considera solo el desplazamiento QP de croma a nivel de imagen. El codificador emite al menos una parte de un flujo de bits que incluye el contenido codificado. Como parte de la decodificación, un decodificador correspondiente establece un desplazamiento QP de croma a nivel de imagen y un desplazamiento QP de croma a nivel de corte para decodificar un corte de una imagen, pero la derivación de un parámetro de control para el filtrado de desbloqueo considera solo el desplazamiento QP de croma a nivel de imagen. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Uso de desplazamientos de parámetros de cuantificación de croma en desbloqueo
Antecedentes
Los ingenieros usan compresión (también denominada codificación de fuente) para reducir la velocidad de bits de vídeo digital. La compresión disminuye el coste de almacenar y transmitir información de vídeo convirtiendo la información en una forma de velocidad de bits inferior. La descompresión (también denominada decodificación) reconstruye una versión de la información original a partir de la forma comprimida. Un códec es un sistema codificador/decodificador.
Durante las dos últimas décadas, se han adoptado diversos estándares de códec de vídeo, incluyendo los estándares H.261, H.262 (MPEG-2 o ISO/IEC 13818-2), H.263 y H.264 (AVC o ISO/IEC 14496-10) y los estándares MPEG-1 (ISO/IEC 11172-2), MPEG-4 Visual (ISO/IEC 14496-2) y SMPTE 421M. Más recientemente, el estándar HEVC está en desarrollo. Un estándar de códec de vídeo define habitualmente opciones para la sintaxis de un flujo de bits de vídeo codificado, detallando parámetros en el flujo de bits cuando se usan características particulares en la codificación y la decodificación. En muchos casos, un estándar de códec de vídeo también proporciona detalles sobre las operaciones de decodificación que un decodificador debería realizar para lograr resultados correctos en la decodificación. Aparte de los estándares de códec, diversos formatos de códec patentados definen otras opciones para la sintaxis de un flujo de bits de vídeo codificado y las operaciones de decodificación correspondientes.
Un tipo de parámetro en un flujo de bits es un parámetro de cuantificación (“QP”). Durante la codificación, un codificador establece valores de QP para ajustar la calidad y la velocidad de bits. En general, para un valor más bajo de QP, la calidad del vídeo codificado es más alta pero se consumen más bits. Por otro lado, para un valor más alto de QP, la calidad del vídeo codificado es más baja y se consumen menos bits. Un decodificador usa valores de QP cuando reconstruye contenido de vídeo a partir del vídeo codificado.
Una fuente de vídeo tal como una cámara, una salida de animación, un módulo de captura de pantalla, etc., proporciona habitualmente vídeo que es convertido a un formato tal como un formato YUV. Un formato YUV incluye una componente de luma (o Y) con valores de muestra que representan valores de brillo, así como múltiples componentes de croma con valores de muestra que representan valores de diferencia de color. Las definiciones precisas de los valores de diferencia de color (y las operaciones de conversión a/desde el espacio de color YUV a otro espacio de color tal como RGB) dependen de la implementación. En general, un espacio de color de luma/croma puede ser cualquier espacio de color con una componente de luma (o luminancia) y una o más componentes de croma (o crominancia), incluyendo YUV, Y’UV, YIQ, Y’IQ e YDbDr, así como variaciones tales como YCbCr e YCoCg, donde el término Y representa una componente de luma y los otros términos representan componentes de croma.
Para algunos estándares y formatos de códec, un codificador puede establecer diferentes valores de QP para una componente de luma y componentes de croma. De esta manera, el codificador puede controlar cómo se realiza la cuantificación para diferentes componentes de color, y regular, por lo tanto, la calidad y la velocidad de bits entre componentes. Sin embargo, los enfoques anteriores para controlar y usar valores de QP para componentes de croma tienen diversos inconvenientes, incluyendo una falta de control de grano fino en situaciones de QP alto, y el fracaso en proporcionar un nivel apropiado de respuesta en otras operaciones de decodificación.
La publicación de VAN DER AUWERA G ET AL: “AHG6: Chroma QP Offsets and Chroma Deblocking Filtering”, 9. REUNIÓN del JCT-VC; 100. REUNICIÓN DEL MPEG; 27 de abril - 7 de mayo de 2012; GINEBRA; (EQUIPO DE COLABORACIÓN CONJUNTA SOBRE CODIFICACIÓN DE VÍDEO DE ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, no. JCTVC-I0283, describe que los elementos sintácticos cb_qp_offset (desplazamiento de QP de Cb) y cr_qp_offset (desplazamiento de QP de Cr) se señalizan en el PPS y especifican el desplazamiento al parámetro de cuantificación de luma utilizado para obtener los valores de QP de croma. El filtro de desbloqueo de HEVC para las componentes de croma obtiene la intensidad de filtrado de croma sin tener en cuenta los valores de cb_qp_offset y cr_qp_offset que pueden cambiar significativamente los valores de QP de croma para la codificación y, por lo tanto, la intensidad de filtrado de los bordes del artefacto de bloqueo de croma puede ser demasiado débil o demasiado fuerte. Para resolver este problema, este documento propone incluir los valores de cb_qp_offset y cr_qp_offset en el proceso de filtrado de desbloqueo para croma. Este documento no prevé el uso de un desplazamiento de QP de croma a nivel de segmento.
La publicación de XU (SONY) J ET AL: “Chroma QP extension and signalling enhancement”, 100. REUNIÓN DEL MPEG; 30 de abril - 4 de mayo de 2012; GINEBRA; (GRUPO DE EXPERTOS DE IMÁGENES EN MOVIMIENTO O ISO/IEC JTC1/SC29/WG11), no. m24512, 28 de abril de 2012, propone ampliar el QP de croma para que varíe en el intervalo de [0, 51 ] usando como base la propuesta hecha en la JCTVC-H0400. De manera similar al desplazamiento de QP de luma señalizado al nivel de segmento, se propone un desplazamiento de QP de croma que también se señaliza al nivel de segmento.
La publicación de KANUMURI S ET AL: “Use of Chroma QP offsets in Deblocking”, 11. REUNIÓN DEL JCT-VC; 102. REUNIÓN DEL MPEG; 10-19 octubre de 2012; SHANGHAI; (EQUIPO DE COLABORACIÓN CONJUNTA EN LA CODIFICACIÓN DE VÍDEO DE ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, no. JCTVC-K0220, 1 de octubre de 2012, da a conocer que el efecto de los desplazamientos de QP de croma se tiene en cuenta cuando se determina el parámetro tC para el filtrado de desbloqueo de componentes de croma. Se afirma que la obtención actual de este parámetro en el diseño de HEVC actual no refleja adecuadamente el QP real usado para el croma cuando se usan desplazamientos de QP distintos de cero.
Por lo tanto, el objetivo de la invención es proporcionar una memoria o dispositivo de almacenamiento no volátil y un sistema informático mejorados para codificar contenido de imagen o vídeo para el que los valores del parámetro de cuantificación varían según una relación entre una componente de luma y componentes de croma.
Este objetivo se resuelve mediante la materia objeto de las reivindicaciones independientes.
Las realizaciones preferidas están definidas por las reivindicaciones dependientes.
En resumen, la descripción detallada presenta innovaciones en el control y uso de valores de parámetros de cuantificación de croma (“QP”) que dependen de valores de QP de luma. Más generalmente, las innovaciones se refieren al control y uso de valores de QP para una componente de color secundaria (por ejemplo, una componente de croma) que dependen de valores de QP para una componente de color primaria (por ejemplo, una componente de luma).
Por ejemplo, un codificador de vídeo codifica vídeo con múltiples componentes de color para las que los valores de QP varían de acuerdo con una relación entre una componente primaria y al menos una componente secundaria. La codificación incluye filtrado de desbloqueo, durante el cual la obtención de un parámetro de control (para controlar el filtrado de desbloqueo) se basa al menos en parte en un desplazamiento de QP de croma. El desplazamiento de QP de croma indica una diferencia de un valor de QP de luma, que está señalado en alguna otra parte. Se puede usar un desplazamiento de QP de croma a nivel de imagen para especificar una diferencia para el valor de QP de croma que se aplica para una imagen. Se puede usar un desplazamiento de QP de croma a nivel de segmento para especificar una diferencia para el valor de QP de croma que se aplica para un segmento, que es parte de una imagen, además de un desplazamiento de QP de croma a nivel de imagen. Cuando se obtiene el parámetro de control para el filtrado de desbloqueo, el desplazamiento de QP de croma que se considera puede especificarse con un solo desplazamiento de QP de croma a nivel de imagen para simplificar la implementación del filtrado de desbloqueo adaptativo, incluso cuando se ha utilizado una combinación de desplazamientos de QP de croma a nivel de imagen y a nivel de segmento con fines de control de velocidad, y tales desplazamientos de QP de croma a nivel de segmento están disponibles para un codificador y un decodificador. El codificador genera al menos parte de un flujo de bits, o parte de flujo de bits, que incluye el vídeo codificado, incluyendo potencialmente tanto desplazamientos de QP de croma a nivel de imagen como desplazamientos de QP de croma a nivel de segmento.
Como ejemplo adicional, un codificador de imagen o vídeo codifica contenido de imagen o vídeo para el que los valores de QP varían de acuerdo con una relación entre una componente de luma y componentes de croma. Como parte de la codificación, el codificador establece un desplazamiento de QP de croma a nivel de imagen y un desplazamiento de QP de croma a nivel de segmento para la codificación de un segmento de una imagen. El codificador también realiza el filtrado de desbloqueo de al menos una parte del segmento, donde la obtención de un parámetro de control para el filtrado de desbloqueo de la parte del segmento considera el desplazamiento de QP de croma a nivel de imagen pero no el desplazamiento de QP de croma a nivel de segmento. A continuación, el codificador emite al menos una parte de un flujo de bits que incluye el contenido codificado.
O bien, un decodificador de vídeo recibe al menos parte de un flujo de bits, o parte de flujo de bits, que incluye vídeo codificado con múltiples componentes de color para las que los valores de QP varían de acuerdo con una relación entre una componente primaria y al menos una componente secundaria. El flujo de bits o la parte de flujo de bits incluye potencialmente tanto desplazamientos de QP de croma a nivel de imagen como desplazamientos de QP de croma a nivel de segmento. El decodificador decodifica el vídeo codificado. La decodificación incluye filtrado de desbloqueo durante el cual la obtención de un parámetro de control se basa al menos en parte en un desplazamiento de QP de croma. El desplazamiento de QP de croma que se considera puede especificarse con solo un desplazamiento de QP de croma a nivel de imagen, para simplificar la implementación del filtrado de desbloqueo adaptativo, incluso cuando se ha utilizado una combinación de desplazamientos de QP de croma a nivel de imagen y a nivel de segmento para el control de velocidad, y tales desplazamientos de QP de croma a nivel de segmento están disponibles para el decodificador.
Como ejemplo adicional, un decodificador de imagen o vídeo recibe al menos parte de un flujo de bits que incluye contenido de imagen o vídeo codificado, y decodifica contenido para el que los valores de QP varían según una relación entre una componente de luma y componentes de croma. Como parte de la decodificación, el decodificador establece un desplazamiento de QP de croma a nivel de imagen y un desplazamiento de QP de croma a nivel de segmento para la decodificación de un segmento de una imagen. El decodificador también realiza el filtrado de desbloqueo de al menos parte del segmento, donde la obtención de un parámetro de control para el filtrado de desbloqueo de la parte del segmento considera el desplazamiento de QP de croma a nivel de imagen pero no el desplazamiento de QP de croma a nivel de segmento.
La codificación o decodificación se puede implementar como parte de un método, como parte de un dispositivo informático adaptado para realizar el método o como parte de un medio tangible legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que un dispositivo informático realice el método.
Los anteriores y otros objetivos, características y ventajas de la invención resultarán más evidentes a partir de la siguiente descripción detallada, que continúa con referencia a las figuras adjuntas.
Breve descripción de los dibujos
La figura 1 es un diagrama de un sistema informático de ejemplo en el que se pueden implementar algunas realizaciones descritas.
Las figuras 2a y 2b son diagramas de entornos de red de ejemplo en los que se pueden implementar algunas realizaciones descritas.
La figura 3 es un diagrama de un sistema codificador de ejemplo junto con el cual se pueden implementar algunas realizaciones descritas.
La figura 4 es un diagrama de un sistema decodificador de ejemplo junto con el cual se pueden implementar algunas realizaciones descritas.
La figura 5 es un diagrama que ilustra un codificador de vídeo de ejemplo junto con el cual se pueden implementar algunas realizaciones descritas.
La figura 6 es un diagrama que ilustra un decodificador de vídeo de ejemplo junto con el cual se pueden implementar algunas realizaciones descritas.
La figura 7a es una tabla que ilustra un nuevo indicador slicelevel_chroma_qp_flag (indicador de QP de croma a nivel de segmento) en la sintaxis de RBSP del conjunto de parámetros de imagen, y la figura 7b es una tabla que ilustra nuevos valores de slice_qp_delta cb (Cb de delta de QP de segmento) y slice_qp_delta_cr (Cr de delta de QP de segmento) en la sintaxis de cabecera de segmento.
La figura 8 es un diagrama de flujo que ilustra una técnica generalizada para usar desplazamientos de QP de croma para controlar el filtrado de desbloqueo durante la codificación.
La figura 9 es un diagrama de flujo que ilustra una técnica generalizada para usar desplazamientos de QP de croma para controlar el filtrado de desbloqueo durante la decodificación.
Descripción detallada
Para la compresión del contenido de vídeo y otro contenido de imagen que usa una representación de espacio de color multicomponente, un aspecto importante del diseño es el control de la granularidad de la cuantificación para cada una de las componentes de color. Dicho control se logra habitualmente estableciendo una relación de escala entre el o los tamaños de la etapa de cuantificación asociada con una componente de color (a menudo denominada la componente primaria) y otra componente de color (a menudo denominada una componente secundaria). Habitualmente, la componente primaria es una componente de luma, y la o las componentes secundaras son componentes de croma.
Por ejemplo, en el estándar ITU-T H.264, la relación entre el QP para una componente de luma y las componentes de croma se determina de acuerdo con un valor de QP, una tabla de consulta y un desplazamiento controlado por codificador, a veces junto con una matriz de escala de cuantificación para establecer factores de escala específicos de una frecuencia. Existen algunos inconvenientes en los diseños existentes para este aspecto de control de codificación para QP. Por ejemplo, el valor máximo de QP para componentes de croma en H.264 (que indica cuantificación más grosera para croma) se limita a un valor que es sustancialmente menor que el valor máximo de QP soportado para la componente de luma (que indica cuantificación más grosera para luma). Esto puede hacer que se use una cantidad excesiva de bits para codificar las componentes de croma del contenido de vídeo, cuando la granulosidad de cuantificación está limitada por el valor máximo de QP para croma, lo que da como resultado que se usen menos bits para codificar la componente de luma del contenido de vídeo, y puede provocar una reducción en la calidad general.
La descripción detallada presenta diversos enfoques para controlar la granularidad de la cuantificación de componentes secundarias en relación con la de la componente primaria. En muchos casos, estos enfoques alivian las deficiencias de los enfoques anteriores. En particular, la descripción detallada presenta innovaciones para el uso de valores de QP de croma que tienen un intervalo extendido.
Por ejemplo, los enfoques descritos incluyen el uso de un tamaño extendido para la tabla de búsqueda que puede usarse para establecer la relación entre las componentes de color primaria y secundaria. Como ejemplo adicional, la relación funcional en valores de QP establecidos por dicha tabla de búsqueda puede proporcionarse como alternativa a través del uso de operaciones matemáticas simples. También se describen aspectos innovadores adicionales del control de valores de QP en la codificación y decodificación de vídeo. Las técnicas descritas pueden aplicarse a aplicaciones adicionales distintas de la codificación/decodificación de vídeo, tales como la codificación/decodificación de imágenes fijas, la codificación/decodificación de contenidos de escaneo médico, la codificación/decodificación de contenidos de imágenes multiespectrales, etc. Aunque las operaciones descritas en el presente documento están descritas en algunos lugares como realizados por un codificador(por ejemplo,un codificador de vídeo) o un decodificador(por ejemplo,un decodificador de vídeo), en muchos casos las operaciones pueden ser realizadas como alternativa mediante otro tipo de herramienta de procesamiento multimedia.
Algunas de las innovaciones descritas en el presente documento se ilustran con referencia a elementos sintácticos y operaciones específicas del estándar HEVC. Por ejemplo, se hace referencia al borrador de la versión JCTVC-I1003 del estándar HEVC “High efficiency video coding (“HEVC”) text specification draft 7”, JCTVC-I1003_d5, 9a reunión, Ginebra, abril de 2012. Las innovaciones descritas en el presente documento también se pueden implementar para otros estándares o formatos.
Algunas de las innovaciones descritas en el presente documento se ilustran con referencia a elementos sintácticos y operaciones para componentes de color en un formato YCbCr. Las innovaciones descritas en el presente documento también se pueden implementar para otros formatos de luma/croma tales como Y’UV, YIQ, Y’IQ e YDbDr, así como variaciones tales como YCoCg. Los ejemplos de componentes Cb y Cr deben entenderse como que se aplican igualmente cuando las componentes de croma son U y V, I y Q, Db y Dr, Co y Cg, o componentes de croma en otro formato.
De manera más general, son posibles diversas alternativas a los ejemplos descritos en el presente documento. Por ejemplo, algunos de los métodos descritos en el presente documento pueden ser alterados cambiando el orden de las acciones del método descritas, dividiendo, repitiendo u omitiendo ciertas acciones del método, etc. Los diversos aspectos de la tecnología divulgada pueden usarse en combinación o por separado. Diferentes realizaciones utilizan una o más de las innovaciones descritas. Algunas de las innovaciones descritas en el presente documento abordan uno o más de los problemas observados en los antecedentes. Habitualmente, una técnica/herramienta determinada no resuelve todos estos problemas.
I. Sistemas informáticos de ejemplo
La figura 1 ilustra un ejemplo general de un sistema informático (100) adecuado, en el que se pueden implementar varias de las innovaciones descritas. El sistema informático (100) no pretende sugerir ninguna limitación en cuanto al alcance de uso o funcionalidad, ya que las innovaciones se pueden implementar en diversos sistemas informáticos de propósito general o de propósito especial.
Con referencia a la figura 1, el sistema informático (100) incluye una o más unidades de procesamiento (110, 115) y memoria (120, 125). En la figura 1, esta configuración más básica (130) está incluida dentro de una línea discontinua. Las unidades de procesamiento (110, 115) ejecutan instrucciones ejecutables por ordenador. Una unidad de procesamiento puede ser una unidad central de procesamiento (Central Processing Unit, CPU) de propósito general, un procesador en un circuito integrado específico de la aplicación (Application Specific Integrated circuit, ASIC) o cualquier otro tipo de procesador. En un sistema de procesamiento múltiple, múltiples unidades de procesamiento ejecutan instrucciones ejecutables por ordenador para aumentar la potencia de procesamiento. Por ejemplo, la figura 1 muestra una unidad central de procesamiento (110), así como una unidad de procesamiento gráfico o unidad de coprocesamiento (115). La memoria tangible (120, 125) puede ser una memoria volátil(por ejemplo,registros, caché, RAM), una memoria no volátil(por ejemplo,ROM, EEPROM, memoria flash, etc.), o alguna combinación de las dos, accesible por la o las unidades de procesamiento. La memoria (120, 125) almacena software (180) que implementa una o más innovaciones para usar desplazamientos de QP de croma en el filtrado de desbloqueo, en forma de instrucciones ejecutables por ordenador adecuadas para su ejecución por la o las unidades de procesamiento.
Un sistema informático puede tener características adicionales. Por ejemplo, el sistema informático (100) incluye almacenamiento (140), uno o más dispositivos de entrada (150), uno o más dispositivos de salida (160) y una o más conexiones de comunicación (170). Un mecanismo de interconexión (no mostrado), tal como un bus, un controlador o una red, interconecta los componentes del sistema informático (100). Habitualmente, el software del sistema operativo (no mostrado) proporciona un entorno operativo para otro software que se ejecuta en el sistema informático (100), y coordina las actividades de los componentes del sistema informático (100).
El almacenamiento tangible (140) puede ser extraíble o no extraíble e incluye discos magnéticos, cintas o casetes magnéticos, CD-ROM, DVD o cualquier otro medio que pueda usarse para almacenar información y al que se pueda acceder dentro del sistema informático (100). El almacenamiento (140) almacena instrucciones para el software (180) que implementa una o más innovaciones para usar desplazamientos de QP de croma en el filtrado de desbloqueo.
El o los dispositivos de entrada (150) pueden ser un dispositivo de entrada táctil tal como un teclado, ratón, bolígrafo o bola de seguimiento, un dispositivo de entrada de voz, un dispositivo de escaneo u otro dispositivo que proporcione entrada al sistema informático (100). Para la codificación de vídeo, el o los dispositivos de entrada (150) pueden ser una cámara, una tarjeta de vídeo, una tarjeta sintonizadora de TV, o un dispositivo similar que acepte entradas de vídeo en forma analógica o digital, o un CD-ROM o CD-RW que lea muestras de vídeo en el sistema informático (100). El o los dispositivos de salida (160) pueden ser una pantalla, impresora, altavoz, escritor de CD u otro dispositivo que proporcione salida desde el sistema informático (100).
La o las conexiones de comunicación (170) habilitan la comunicación a través de un medio de comunicación a otra entidad informática. El medio de comunicación transporta información tal como instrucciones ejecutables por ordenador, entrada o salida de audio o vídeo, u otros datos en una señal de datos modulada. Una señal de datos modulada es una señal que tiene una o más de sus características establecidas o cambiadas de tal manera que codifican información en la señal. A modo de ejemplo, y no de limitación, los medios de comunicación pueden usar una portadora eléctrica, óptica, de RF u otra portadora.
Las innovaciones pueden describirse en el contexto general de los medios legibles por ordenador. Los medios legibles por ordenador son cualquier medio tangible disponible al que se pueda acceder dentro de un entorno informático. A modo de ejemplo, y no de limitación, con el sistema informático (100), los medios legibles por ordenador incluyen memoria (120, 125), almacenamiento (140) y combinaciones de cualquiera de los anteriores.
Las innovaciones pueden describirse en el contexto general de instrucciones ejecutables por ordenador, tales como las incluidas en módulos de programa, que se ejecutan en un sistema informático en un procesador real o virtual objetivo. En general, los módulos de programa incluyen rutinas, programas, bibliotecas, objetos, clases, componentes, estructuras de datos, etc. que realizan tareas particulares o implementan tipos de datos abstractos particulares. La funcionalidad de los módulos de programa puede estar combinada o dividida entre módulos de programa, según se desee, en diversas realizaciones. Las instrucciones ejecutables por ordenador para módulos de programa pueden ejecutarse dentro de un sistema informático local o distribuido.
Los términos “sistema” y “dispositivo” se usan indistintamente en el presente documento. A menos que el contexto indique claramente lo contrario, ningún término implica ninguna limitación en un tipo de sistema informático o dispositivo informático. En general, un sistema informático o dispositivo informático puede ser local o distribuido, y puede incluir cualquier combinación de hardware de propósito especial y/o hardware de propósito general con software que implementa la funcionalidad descrita en el presente documento.
Los métodos divulgados también se pueden implementar usando hardware informático especializado, configurado para realizar cualquiera de los métodos divulgados. Por ejemplo, los métodos divulgados se pueden implementar mediante un circuito integrado (por ejemplo, un circuito integrado de aplicación específica (“ASIC”) (tal como una unidad de procesador de señal digital (Digital Signal Processor, “DSP”) de ASIC, una unidad de procesamiento de gráficos (Graphics Processing Unit, “GPU”) o un dispositivo lógico programable (Programmable Logic Device, “PLD”), tal como una matriz de puertas programables in situ (Field Programmable Gate Array, “FPGA”)) especialmente diseñada o configurada para implementar cualquiera de los métodos divulgados.
En aras de la presentación, la descripción detallada usa términos tales como “determinar” y “usar” para describir operaciones informáticas en un sistema informático. Estos términos son abstracciones de alto nivel para operaciones realizadas por un ordenador, y no deben confundirse con actos realizados por un ser humano. Las operaciones informáticas reales correspondientes a estos términos varían dependiendo de la implementación.
II. Entornos de red de ejemplo
Las figuras 2a y 2b muestran entornos de red (201,202) de ejemplo que incluyen codificadores de vídeo (220) y decodificadores de vídeo (270). Los codificadores (220) y decodificadores (270) están conectados a través de una red (250) usando un protocolo de comunicación apropiado. La red (250) puede incluir Internet u otra red informática.
En el entorno de red (201) mostrado en la figura 2a, cada herramienta de comunicación en tiempo real (Real Time Communication, “RTC”) (210) incluye tanto un codificador (220) como un decodificador (270) para comunicación bidireccional. Un codificador (220) determinado puede producir una salida conforme con el estándar SMPTE 421M, el estándar ISO-IEC 14496-10 (también conocido como H.264 o AVC), el estándar HEVC, otro estándar, o un formato propietario, aceptando un decodificador (270) correspondiente datos codificados del codificador (220). La comunicación bidireccional puede ser parte de una videoconferencia, llamada telefónica de vídeo u otro escenario de comunicación de dos participantes. Aunque el entorno de red (201) en la figura 2a incluye dos herramientas de comunicación en tiempo real (210), el entorno de red (201) puede incluir en su lugar tres o más herramientas de comunicación en tiempo real (210) que participan en la comunicación de múltiples participantes.
Una herramienta de comunicación en tiempo real (210) gestiona la codificación mediante un codificador (220). La figura 3 muestra un sistema codificador (300) de ejemplo que puede incluirse en la herramienta de comunicación en tiempo real (210). Como alternativa, la herramienta de comunicación en tiempo real (210) usa otro sistema codificador. Una herramienta de comunicación en tiempo real (210) también gestiona la decodificación mediante un decodificador (270). La figura 4 muestra un sistema decodificador (400) de ejemplo, que puede estar incluido en la herramienta de comunicación en tiempo real (210). Como alternativa, la herramienta de comunicación en tiempo real (210) usa otro sistema decodificador.
En el entorno de red (202) mostrado en la figura 2b, una herramienta de codificación (212) incluye un codificador (220) que codifica vídeo para su entrega a múltiples herramientas de reproducción (214), que incluyen decodificadores (270). La comunicación unidireccional puede proporcionarse para un sistema de videovigilancia, un sistema de monitorización de cámara web, presentación de conferencia de escritorio remoto u otro escenario en el que el vídeo se codifica y envía desde una ubicación a una o más ubicaciones distintas. Aunque el entorno de red (202) en la figura 2b incluye dos herramientas de reproducción (214), el entorno de red (202) puede incluir más o menos herramientas de reproducción (214). En general, una herramienta de reproducción (214) se comunica con la herramienta de codificación (212) para determinar un flujo de vídeo para que la herramienta de reproducción (214) lo reciba. La herramienta de reproducción (214) recibe el flujo, almacena temporalmente los datos codificados recibidos durante un período apropiado, y comienza la decodificación y la reproducción.
La figura 3 muestra un sistema codificador (300) de ejemplo que puede estar incluido en la herramienta de codificación (212). Como alternativa, la herramienta de codificación (212) usa otro sistema codificador. La herramienta de codificación (212) también puede incluir lógica de controlador del lado del servidor, para gestionar conexiones con una o más herramientas de reproducción (214). La figura 4 muestra un sistema decodificador (400) de ejemplo, que puede estar incluido en la herramienta de reproducción (214). Como alternativa, la herramienta de reproducción (214) usa otro sistema decodificador. Una herramienta de reproducción (214) también puede incluir lógica de controlador del lado del cliente, para gestionar conexiones con la herramienta de codificación (212).
III. Sistemas de codificador de ejemplo
La figura 3 es un diagrama de bloques de un sistema codificador (300) de ejemplo. El sistema codificador (300) puede ser una herramienta de codificación de propósito general, capaz de operar en cualquiera de múltiples modos de codificación, tal como un modo de codificación de baja latencia para comunicación en tiempo real, un modo de transcodificación y un modo de codificación regular para reproducción multimedia desde un archivo o flujo, o puede ser una herramienta de codificación de propósito especial, adaptada para uno de tales modos de codificación. El sistema codificador (300) puede implementarse como un módulo de sistema operativo, como parte de una biblioteca de aplicaciones o como una aplicación independiente. En general, el sistema codificador (300) recibe una secuencia de tramas de vídeo de origen (311) desde una fuente de vídeo (310) y produce datos codificados como salida a un canal (390). Los datos codificados enviados al canal pueden incluir elementos sintácticos que indican valores de QP establecidos para croma, tales como desplazamientos de QP de croma a nivel de imagen y/o desplazamientos de QP de croma a nivel de segmento.
La fuente de vídeo (310) puede ser una cámara, una tarjeta sintonizadora, medios de almacenamiento u otra fuente de vídeo digital. La fuente de vídeo (310) produce una secuencia de tramas de vídeo a una velocidad de trama de, por ejemplo, 30 tramas por segundo. Tal como se usa en el presente documento, el término “trama” se refiere generalmente a datos de imagen de origen, codificados o reconstruidos. Para vídeo progresivo, una trama es una trama de vídeo progresivo. Para vídeo entrelazado, una trama de vídeo entrelazado es desentrelazada antes de la codificación. Como alternativa, dos campos de vídeo entrelazados complementarios se codifican como una trama de vídeo entrelazada o campos separados. Aparte de indicar una trama de vídeo progresiva, el término “trama” puede indicar un solo campo de vídeo no emparejado, un par complementario de campos de vídeo, un plano de objeto de vídeo que representa un objeto de vídeo en un momento dado, o una región de interés en una imagen más grande. El plano o región de objeto de vídeo puede ser parte de una imagen más grande que incluye múltiples objetos o regiones de una escena.
Una trama de origen de llegada (311) se almacena en un área de almacenamiento en memoria temporal de tramas de origen (320), que incluye múltiples áreas de almacenamiento de memoria intermedia de tramas (321, 322,..., 32n). Una memoria intermedia de tramas (321, 322, etc.) contiene una trama de origen en el área de almacenamiento de tramas de origen (320). Después de que una o más de las tramas de origen (311) se han almacenado en memorias intermedias de tramas (321, 322, etc.), un selector de tramas (330) selecciona periódicamente una trama de origen individual del área de almacenamiento de tramas de origen (320). El orden en el que las tramas son seleccionadas por el selector de tramas (330) para su entrada al codificador (340) puede diferir del orden en el que las tramas son producidas por la fuente de vídeo (310),por ejemplo,una trama puede ser delantera para facilitar la predicción temporalmente hacia atrás. Antes del codificador (340), el sistema codificador (300) puede incluir un preprocesador (no mostrado) que realiza el preprocesamiento (por ejemplo, filtrado) de la trama seleccionada (331) antes de la codificación. El preprocesamiento también puede incluir conversión de espacio de color en componentes primarias y secundarias para codificación.
El codificador (340) codifica la trama (331) seleccionada para producir una trama codificada (341) y también produce señales de operación de control de gestión de memoria (Memory Management Control Operation, “MMCO”) (342) o información de conjunto de imágenes de referencia (Reference Picture Set, “RPS”). Si la trama actual no es la primera trama que se ha codificado, cuando se realiza su proceso de codificación, el codificador (340) puede usar una o más tramas codificadas/decodificadas (369) previamente que se han almacenado en un área de almacenamiento en memoria temporal de tramas decodificadas (360). Tales tramas decodificadas (369) almacenadas se usan como tramas de referencia para la predicción inter-tramas del contenido de la trama de origen (331) actual. En general, el codificador (340) incluye múltiples módulos de codificación que realizan tareas de codificación tales como estimación y compensación de movimiento, transformadas de frecuencia, cuantificación y codificación por entropía. Las operaciones exactas realizadas por el codificador (340) pueden variar dependiendo del formato de compresión. El formato de los datos codificados de salida puede ser un formato de vídeo de medios de ventana, formato VC-1, formato MPEG-x (por ejemplo, MPEG-1, MPEG-2 o MPEG-4), formato H.26x (por ejemplo, H.261, H.262, H.263, H.264), formato HeVC u otro formato.
Por ejemplo, dentro del codificador (340), una trama predicha inter-codificada se representa en términos de predicción a partir de tramas de referencia. Un estimador de movimiento estima el movimiento de bloques o de otros conjuntos de muestras de una trama de origen (341) con respecto a una o más tramas de referencia (369). Cuando se usan múltiples tramas de referencia, las múltiples tramas de referencia pueden ser desde diferentes direcciones temporales o desde la misma dirección temporal. El estimador de movimiento emite información de movimiento tal como información de vector de movimiento, que se codifica por entropía. Un compensador de movimiento aplica vectores de movimiento a fotogramas de referencia para determinar valores de predicción compensados por movimiento. El codificador determina las diferencias (si las hay) entre los valores de predicción compensados por movimiento de un bloque y los valores originales correspondientes. Estos valores residuales de predicción se codifican adicionalmente usando una transformada de frecuencia, cuantificación y codificación por entropía. La cuantificación puede utilizar valores de croma de QP. Por ejemplo, el codificador (340) establece valores para luma de QP y croma de QP para una imagen, segmento y/u otra parte de vídeo, y cuantifica los coeficientes de transformada en consecuencia. De manera similar, para la intrapredicción, el codificador (340) puede determinar valores de intra-predicción para un bloque, determinar valores residuales de predicción y codificar los valores residuales de predicción (con una transformada de frecuencia, cuantificación y codificación por entropía). En particular, el codificador por entropía del codificador (340) comprime valores de coeficientes de transformada cuantificados, así como cierta información secundaria (por ejemplo, información de vectores de movimiento, valores de QP, decisiones de modo, opciones de parámetros). Técnicas habituales de codificación por entropía incluyen codificación de Exp-Golomb, codificación aritmética, codificación diferencial, codificación de Huffman, codificación de longitud de ejecución, codificación de longitud variable a longitud variable (“V2V”), codificación de longitud variable a longitud fija (“V2F”), codificación LZ, codificación de diccionario, codificación por entropía por división en intervalos de probabilidad (Probability Interval Partitioning Entropy, “PIPE”) y combinaciones de las anteriores. El codificador por entropía puede usar diferentes técnicas de codificación para diferentes tipos de información, y puede elegir entre múltiples tablas de códigos dentro de una técnica de codificación particular.
Las tramas codificadas (341) y la información de MMCO/RPS (342) son procesadas por un emulador de proceso de decodificación (350). El emulador de proceso de decodificación (350) implementa parte de la funcionalidad de un decodificador, por ejemplo, tareas de decodificación para reconstruir tramas de referencia que son utilizadas por el codificador (340) en estimación y compensación de movimiento. El emulador de proceso de decodificación (350) usa la información de MMCO/RPS (342) para determinar si una trama codificada (341) determinada necesita ser reconstruida o almacenada para su uso como trama de referencia en la predicción inter-tramas de tramas posteriores a codificar. Si la información de MMCO/RPS (342) indica que es necesario almacenar una trama codificada (341), el emulador de proceso de decodificación (350) modela el proceso de decodificación que sería conducido por un decodificador que recibe la trama codificada (341) y produce una trama decodificada (351) correspondiente. Al hacerlo, cuando el codificador (340) ha usado una o varias tramas decodificadas (369) que se han almacenado en el área de almacenamiento de tramas decodificadas (360), el emulador de proceso de decodificación (350) también usa la o las tramas decodificadas (369) del área de almacenamiento (360) como parte del proceso de decodificación.
El área de almacenamiento en memoria temporal de tramas decodificadas (360) incluye múltiples áreas de almacenamiento de memoria intermedia de tramas (361, 362,..., 36n). El emulador de proceso de decodificación (350) usa la información de MMCO/RPS (342) para gestionar el contenido del área de almacenamiento (360) con el fin de identificar cualquier memoria intermedia (361,362, etc.) de tramas que ya no sean necesarias, por el codificador (340), para su uso como tramas de referencia. Después de modelizar el proceso de decodificación, el emulador de proceso de decodificación (350) almacena una trama (351) recién decodificada en una memoria intermedia (361,362, etc.) de tramas que se ha identificado de esta manera.
Las tramas codificadas (341) y la información de MMCO/RPS (342) también se almacenan temporalmente en un área de datos codificados temporalmente (370). Los datos codificados que se agregan en el área de datos codificados (370) pueden contener, como parte de la sintaxis de un flujo de bits de vídeo codificado elemental, elementos sintácticos que indican valores de QP establecidos para croma, tales como desplazamientos de QP de croma a nivel de imagen y/o desplazamientos de QP de croma a nivel de segmento. Los datos codificados que se agregan en el área de datos codificados (370) también pueden incluir metadatos multimedia relacionados con los datos de vídeo codificados(por ejemplo,como uno o más parámetros en uno o más mensajes de información de mejora suplementaria (Supplemental Enhancement Information, “SEI”) o mensajes de información de usabilidad de vídeo (Viedo Usability Information, “VUI”)).
Los datos agregados (371) del área de datos codificados temporalmente (370) son procesados por un codificador de canal (380). El codificador de canal (380) puede empaquetar los datos agregados para su transmisión como un flujo multimedia(por ejemplode acuerdo con un formato de contenedor multimedia tal como ISO/IEC 14496-12), en cuyo caso el codificador de canal (380) puede añadir elementos sintácticos como parte de la sintaxis del flujo de transmisión multimedia. O bien, el codificador de canal (380) puede organizar los datos agregados para su almacenamiento como un archivo(por ejemplo,de acuerdo con un formato de contenedor multimedia tal como ISO/IEC 14496-12), en cuyo caso el codificador de canal (380) puede añadir elementos sintácticos como parte de la sintaxis del archivo de almacenamiento multimedia. O, de manera más general, el codificador de canal (380) puede implementar uno o más protocolos de multiplexación de sistemas de medios o protocolos de transporte, en cuyo caso el codificador de canal (380) puede añadir elementos sintácticos como parte de la sintaxis del o de los protocolos. El codificador de canal (380) proporciona salida a un canal (390), que representa almacenamiento, una conexión de comunicaciones u otro canal para la salida.
IV. Sistemas decodificadores de ejemplo
La figura 4 es un diagrama de bloques de un sistema decodificador (400) de ejemplo junto con el cual se pueden implementar algunas realizaciones descritas. El sistema decodificador (400) puede ser una herramienta de decodificación de propósito general capaz de operar en cualquiera de múltiples modos de decodificación, tal como un modo de decodificación de baja latencia para comunicación en tiempo real, y un modo de decodificación regular para reproducción multimedia desde un archivo o flujo, o puede ser una herramienta de decodificación de propósito especial adaptada para uno de dichos modos de decodificación. El sistema decodificador (400) puede implementarse como un módulo de sistema operativo, como parte de una biblioteca de aplicaciones o como una aplicación independiente. En general, el sistema decodificador (400) recibe datos codificados desde un canal (410) y produce tramas reconstruidas como salida para un destino de salida (490). Los datos codificados pueden incluir elementos sintácticos que indican valores de QP establecidos para croma, tales como desplazamientos de QP de croma a nivel de imagen y/o desplazamientos de QP de croma a nivel de segmento.
El sistema decodificador (400) incluye un canal (410), que puede representar almacenamiento, una conexión de comunicaciones u otro canal para datos codificados como entrada. El canal (410) produce datos codificados que han sido codificados por canal. Un decodificador por canal (420) puede procesar los datos codificados. Por ejemplo, el decodificador por canal (420) desempaqueta datos que se han agregado para su transmisión como un flujo de medios (por ejemplo, de acuerdo con un formato de contenedor de medios tal como ISO/IEC 14496 12), en cuyo caso el decodificador por canal (420) puede analizar sintácticamente elementos sintácticos añadidos como parte de la sintaxis del flujo de transmisión de medios. O bien, el decodificador por canal (420) separa datos de vídeo codificados que se han agregado para su almacenamiento como un archivo(por ejemplo,de acuerdo con un formato de contenedor multimedia tal como ISO/IEC 14496-12), en cuyo caso el decodificador de canal (420) puede analizar sintácticamente elementos sintácticos añadidos como parte de la sintaxis del archivo de almacenamiento multimedia. O, de manera más general, el decodificador por canal (420) puede implementar uno o más protocolos de demultiplexación de sistema de medios o protocolos de transporte, en cuyo caso el decodificador por canal (420) puede analizar sintácticamente elementos sintácticos añadidos como parte de la sintaxis del o de los protocolos.
Los datos codificados (421) que se emiten desde el decodificador por canal (420) se almacenan en un área de datos codificados temporalmente (430) hasta que se ha recibido una cantidad suficiente de tales datos. Los datos codificados (421) incluyen tramas codificadas (431) e información de MMCO/RPS (432). Los datos codificados (421) en el área de datos codificados (430) pueden contener, como parte de la sintaxis de un flujo de bits de vídeo codificado elemental, elementos sintácticos que indican valores de QP establecidos para croma, tales como desplazamientos de QP de croma a nivel de imagen y/o desplazamientos de QP de croma a nivel de segmento. Los datos codificados (421) en el área de datos codificados (430) también pueden incluir metadatos multimedia relacionados con los datos de vídeo codificados(por ejemplo,como uno o más parámetros en uno o más mensajes de SEI o mensajes de VUI). En general, el área de datos codificados (430) almacena temporalmente datos codificados (421) hasta que tales datos codificados (421) son usados por el decodificador (450). En ese punto, los datos codificados para una trama codificada (431) y la información de MMCO/RPS (432) se transfieren desde el área de datos codificados (430) al decodificador (450). A medida que la decodificación continúa, se añaden nuevos datos codificados al área de datos codificados (430) y los datos codificados más antiguos que quedan en el área de datos codificados (430) se transfieren al decodificador (450).
El decodificador (450) decodifica periódicamente una trama codificada (431) para producir una trama decodificada (451) correspondiente. Según sea apropiado, cuando se realiza su proceso de decodificación, el decodificador (450) puede usar una o más tramas decodificadas previamente (469) como tramas de referencia para la predicción inter-tramas. El decodificador (450) lee dichas tramas decodificadas previamente (469) de un área de almacenamiento de memoria temporal de tramas decodificadas (460). En general, el decodificador (450) incluye múltiples módulos de decodificación que realizan tareas de decodificación tales como decodificación por entropía, cuantificación inversa (que puede usar valores de croma de QP), transformadas de frecuencia inversa y compensación de movimiento. Las operaciones exactas realizadas por el decodificador (450) pueden variar dependiendo del formato de compresión.
Por ejemplo, el decodificador (450) recibe datos codificados para una trama o secuencia de tramas comprimida, y produce una salida que incluye la trama decodificada (451). En el decodificador (450), una memoria intermedia recibe datos codificados para una trama comprimida, y hace que los datos codificados recibidos estén disponibles para un decodificador por entropía. El decodificador por entropía decodifica por entropía los datos cuantificados codificados por entropía, así como la información lateral codificada por entropía, aplicando habitualmente la inversa de la codificación por entropía realizada en el codificador. Un compensador de movimiento aplica información de movimiento a una o más tramas de referencia para formar predicciones compensadas por movimiento de subbloques y/o bloques (en general, bloques) de la trama que se reconstruye. Un módulo de intra predicción puede predecir espacialmente valores de muestra de un bloque actual a partir de valores de muestra vecinos previamente reconstruidos. El decodificador (450) también reconstruye residuos de predicción. Un cuantificador inverso cuantifica inversamente los datos decodificados por entropía, usando potencialmente valores de QP de croma. Por ejemplo, el decodificador (450) establece valores para QP de luma y QP de croma para una imagen, segmento y/u otra parte de vídeo basándose en elementos sintácticos en el flujo de bits y, en consecuencia, cuantifica inversamente los coeficientes de transformada. Un transformador de frecuencia inverso convierte los datos cuantificados en el dominio de la frecuencia en información en el dominio espacial. Para una trama predicha, el decodificador (450) combina residuos de predicción reconstruidos con predicciones compensadas por movimiento para formar una trama reconstruida. El decodificador (450) puede combinar de manera similar residuos de predicción con predicciones espaciales a partir de la intra-predicción. Un bucle de compensación de movimiento en el decodificador de vídeo (450) incluye un filtro de desbloqueo adaptativo para suavizar las discontinuidades a través de las filas y/o columnas de límite de bloque en la trama decodificada (451).
El área de almacenamiento temporal de la memoria de tramas decodificadas (460) incluye múltiples áreas de almacenamiento en la memoria intermedia de tramas (461,462,..., 46n). El área de almacenamiento de tramas decodificadas (460) es un ejemplo de una DPB. El decodificador (450) usa la información de MMCO/RPS (432) para identificar una memoria intermedia de tramas (461, 462, etc.) en la que puede almacenar una trama decodificada (451). El decodificador (450) almacena la trama decodificada (451) en esa memoria intermedia de tramas.
Un secuenciador de salida (480) usa la información de MMCO/RPS (432) para identificar cuándo está disponible la siguiente trama que va a producirse en orden de salida en el área de almacenamiento de tramas decodificadas (460). Cuando la siguiente trama (481) que se va a producir en el orden de salida está disponible en el área de almacenamiento de tramas decodificadas (460), se lee mediante el secuenciador (480) de salida y se emite al destino de salida (490)(por ejemplo,pantalla). En general, el orden en el que las tramas son emitidas desde el área de almacenamiento de tramas decodificadas (460) por el secuenciador (480) de salida puede diferir del orden en el que las tramas son decodificadas por el decodificador (450).
V. Codificadores de vídeo de ejemplo
La figura 5 es un diagrama de bloques de un codificador de vídeo generalizado (500). El codificador (500) recibe una secuencia de tramas de vídeo que incluye una trama actual (505) y produce datos codificados (595) como salida.
El codificador (500) está basado en bloques y usa un formato de bloque que depende de la implementación. Los bloques pueden subdividirse adicionalmente en diferentes etapas,por ejemplo,en las etapas de transformación de frecuencia y de codificación por entropía. Por ejemplo, una trama puede dividirse en 64x64 bloques, 32x32 bloques o 16x16 bloques que, a su vez, pueden dividirse en bloques y subbloques más pequeños de valores de píxel, para codificación y decodificación.
El sistema codificador (500) comprime las tramas predichas y las tramas intra-codificadas. En aras de la presentación, la figura 5 muestra una “intra-ruta” a través del codificador (500) para la codificación intra-trama, y una “inter-rutas” para la codificación inter-tramas. Muchos de los componentes del codificador (500) se usan tanto para la codificación intra-trama como para la codificación inter-tramas. Las operaciones exactas realizadas por esos componentes pueden variar dependiendo del tipo de información que se comprime.
Si la trama actual (505) es una trama predicha, un estimador de movimiento (510) estima el movimiento de bloques, subbloques u otros conjuntos de valores de píxel de la trama actual (505) con respecto a una o más tramas de referencia. El almacén de tramas (520) almacena temporalmente una o más tramas previas reconstruidas (525) para su uso como tramas de referencia. Cuando se usan múltiples tramas de referencia, las múltiples tramas de referencia pueden ser desde diferentes direcciones temporales o desde la misma dirección temporal. El estimador de movimiento (510) emite como información de movimiento de información lateral (515), tal como información de vector de movimiento diferencial.
El compensador de movimiento (530) aplica vectores de movimiento reconstruidos a la o las tramas de referencia reconstruidas (525) cuando forma una trama actual compensada por movimiento (535). La diferencia (si la hay) entre un subbloque, bloque, etc. de la trama actual compensada en movimiento (535) y la parte correspondiente de la trama actual original (505) es el residuo de predicción (545) para el subbloque, bloque, etc. Durante la reconstrucción posterior de la trama actual, se añaden residuos de predicción reconstruidos a la trama actual compensada en movimiento (535) para obtener una trama reconstruida que está más cerca de la trama actual original (505). En la compresión con pérdidas, sin embargo, todavía se pierde algo de información de la trama actual original (505). La intra-ruta puede incluir un módulo de intra-predicción (no mostrado) que predice espacialmente valores de píxel de un bloque o subbloque actual a partir de valores de píxel vecinos previamente reconstruidos.
Un transformador de frecuencia (560) convierte la información de vídeo en el dominio espacial en el dominio de la frecuencia(es decir,datos espectrales, transformados). Para tramas de vídeo basadas en bloques, el transformador de frecuencia (560) aplica una transformada del coseno discreta, una aproximación de número entero de la misma, u otro tipo de transformada de bloque directa, a bloques o subbloques de datos de valor de píxel o datos residuales de predicción, produciendo bloques/subbloques de coeficientes de transformada de frecuencia. Un cuantificador (570) cuantifica entonces los coeficientes de transformada. Por ejemplo, el cuantificador (570) aplica cuantificación escalar no uniforme a los datos del dominio de la frecuencia con un tamaño de paso que varía trama a trama, segmento a segmento, bloque a bloque o con otro tamaño de paso. El cuantificador (570) puede usar valores de QP para componentes de luma y componentes de croma que incluyen valores de QP de croma, tal como se describe en la Sección VII. Por ejemplo, el codificador (500) establece valores para QP de luma y QP de croma para una imagen, segmento y/u otra parte de vídeo tal como una unidad de codificación, y cuantifica los coeficientes de transformada en consecuencia.
Cuando se necesita una versión reconstruida de la trama actual para la estimación/compensación de movimiento posterior, un cuantificador inverso (576) realiza la cuantificación inversa sobre los datos de coeficientes de frecuencia cuantificados. El cuantificador inverso (576) también puede usar valores de QP de croma. Un transformador de frecuencia inversa (566) realiza una transformada de frecuencia inversa, produciendo bloques/subbloques de residuos de predicción reconstruidos o valores de píxeles. Para una trama predicha, el codificador (500) combina residuos de predicción reconstruidos (545) con predicciones compensadas por movimiento (535) para formar la trama reconstruida (505). (Aunque no se muestra en la figura 5, en la intra-ruta, el codificador (500) puede combinar residuos de predicción con predicciones espaciales a partir de la intra-predicción). El almacén de tramas (520) almacena temporalmente la trama actual reconstruida para su uso en la predicción compensada por movimiento posterior.
La cuantificación y otro procesamiento con pérdidas pueden dar como resultado líneas visibles en los límites entre bloques o subbloques de una trama. Tales “artefactos de bloqueo” podrían ocurrir, por ejemplo, si los bloques adyacentes en una región que cambia suavemente de una imagen (tal como un área del cielo) se cuantifican a diferentes niveles promedio. Para reducir los artefactos de bloqueo, un codificador y un decodificador pueden usar filtrado de “desbloqueo” para suavizar las discontinuidades de frontera entre bloques y/o subbloques en tramas de referencia. Tal filtrado es “en bucle”, por que se produce dentro de un bucle de compensación de movimiento, es decir, el codificador y el decodificador lo realizan en tramas de referencia usadas posteriormente en la codificación/decodificación. El filtrado de desbloqueo en bucle se habilita normalmente durante la codificación, en cuyo caso un decodificador también realiza filtrado de desbloqueo en bucle para una decodificación correcta. Los detalles del filtrado de desbloqueo varían dependiendo del estándar o formato del códec, y pueden ser bastante complejos. A menudo, las reglas para aplicar filtrado de desbloqueo pueden variar dependiendo de factores tales como contenido/suavidad, modo de codificación (por ejemplo, intra o inter), vectores de movimiento para bloques/sub-bloques en diferentes lados de un límite, tamaño de bloque/sub-bloque, estado codificado/no codificado (por ejemplo, si la información de coeficiente de transformada se señaliza en el flujo de bits).
En la figura 5, un bucle de compensación de movimiento en el codificador (500) incluye un filtro adaptativo de desbloqueo en bucle (510) antes o después del almacén de tramas (520). El decodificador (500) aplica filtrado en bucle a tramas reconstruidas para suavizar adaptativamente las discontinuidades a través de los límites en las tramas. La sección VII describe ejemplos en los que el filtrado de desbloqueo cambia, dependiendo del valor de desplazamiento de QP de croma.
El codificador por entropía (580) comprime la salida del cuantificador (570) así como la información de movimiento (515) y cierta información secundaria (por ejemplo, valores de QP). El codificador por entropía (580) proporciona datos codificados (595) a la memoria intermedia (590), que multiplexa los datos codificados en un flujo de bits de salida. Los datos codificados pueden incluir elementos sintácticos que indican valores de QP establecidos para croma, tales como desplazamientos de QP de croma a nivel de imagen y/o desplazamientos de QP de croma a nivel de segmento. La sección VII describe ejemplos de tales elementos sintácticos.
Un controlador (no mostrado) recibe entradas de diversos módulos del codificador. El controlador evalúa los resultados intermedios durante la codificación, por ejemplo, ajustando los valores de QP y realizando el análisis de distorsión de velocidad. El controlador funciona con otros módulos para establecer y cambiar los parámetros de codificación durante la codificación. En particular, el controlador puede variar los valores de QP y otros parámetros de control para controlar la cuantificación de las componentes de luma y las componentes de croma durante la codificación.
En algunas implementaciones, el controlador puede establecer un valor de QP de luma a nivel de imagen, un valor de QP de luma a nivel de segmento o un valor de QP de luma a nivel de unidad de codificación durante la codificación, para controlar la cuantificación a nivel de imagen, a nivel de segmento o a nivel de unidad de codificación, dentro de un segmento. Para un segmento determinado, el valor de QP de luma puede establecerse en el QP de luma a nivel de imagen o en un QP de luma a nivel de segmento, que se representará en el flujo de bits con el QP de luma a nivel de imagen más un desplazamiento de QP de luma a nivel de segmento. O bien, el controlador puede establecer un valor de QP de luma para una unidad de codificación determinada dentro del segmento. En este caso, un desplazamiento de QP de luma a nivel de unidad de codificación se señaliza en el flujo de bits, junto con un desplazamiento de QP de luma a nivel de segmento y el valor de QP de luma a nivel de imagen, para indicar el valor de QP de luma a nivel de unidad de codificación. Por lo tanto, diferentes segmentos dentro de una imagen pueden tener diferentes valores de QP de luma especificados, y diferentes unidades de codificación dentro de un segmento pueden tener diferentes valores de QP de luma especificados. El controlador también puede establecer un valor de QP de croma a nivel de imagen o un valor de QP de croma a nivel de segmento, tal como se indica en el flujo de bits con uno o más desplazamientos de QP de croma. Un desplazamiento de QP de croma no especifica directamente el valor de QP de croma, sino que se usa en un proceso de obtención (tal como se describe en la sección VII) para determinar el valor de QP de croma. El controlador también puede especificar una matriz de escala de cuantificación para establecer factores de escala específicos de frecuencia para coeficientes de una componente de luma y/o una componente de croma.
Un valor de QP controla cómo es de grosera la cuantificación de los coeficientes de transformada de luma y croma. Por ejemplo, un valor de QP puede controlar un factor de escala conocido como un tamaño de paso de cuantificación (Quantization Step Size, “QSS”) de acuerdo con una relación definida. Por ejemplo, el valor de QP se señala en el flujo de bits como QP menos 26, y el QSS es S * 2(QP/6) o aproximadamente S * 2(QP/6), en donde S es un factor de escala tal como una constante de valor fijo, un factor de escala específico de transformada o un factor de escala específico para una frecuencia. En algunas implementaciones, una fórmula basada en números enteros indica un QSS que se aproxima a S * 2(QP/6). En esta relación, un valor alto de QP significa un QSS alto(es decir,grosero), y un valor bajo de QP indica un QSS bajo(es decir,fino). Como alternativa, QP puede estar inversamente relacionado con QSS. Por ejemplo, un valor de QP se señala en el flujo de bits como 25 menos QP, y el QSS es S * 2((51-QP)/6) o aproximadamente S * 2((51-QP)/6). En este ejemplo, los mismos valores de QSS pueden señalizarse efectivamente, pero un valor alto de QP significa un QSS bajo, y un valor bajo de QP significa un QSS alto. De manera más general, las innovaciones descritas en el presente documento pueden aplicarse para diversas relaciones entre QP y QSS, incluyendo las relaciones descritas anteriormente, así como relaciones en las que el QP es un parámetro tal como el parámetro denominado QUANT en el estándar H.263, y relaciones en las que el QP es un parámetro tal como el parámetro denominado quantiser_scale (escala de cuantificador) en el estándar H.262.
En general, el controlador puede establecer el QP de luma y el QP de croma para una imagen, segmento u otra parte de vídeo, y luego evaluar los resultados de la codificación del contenido(por ejemplo,coeficientes de transformada de cuantificación y/o codificación por entropía de los coeficientes de transformada cuantificados) en términos de calidad y/o de velocidad de bits. Si los resultados son satisfactorios, el controlador puede seleccionar el QP de luma y el QP de croma que se establecieron. De lo contrario, el controlador puede ajustar el QP de luma y/o el QP de croma. Por ejemplo, si la calidad del contenido de croma codificado es demasiado alta en relación con la calidad del contenido de luma codificado, el controlador puede ajustar el QP para aumentar el QSS de croma y/o disminuir el QSS de luma para equilibrar la calidad entre las componentes de luma y de croma mientras también se consideran objetivos globales para la velocidad y/o la calidad. O, si la calidad del contenido de croma codificado es demasiado baja en relación con la calidad del contenido de luma codificado, el controlador puede ajustar el QP para disminuir el QSS de croma y/o aumentar el QSS de luma para equilibrar la calidad entre las componentes de luma y de croma mientras también se consideran objetivos globales para la velocidad y/o la calidad. La configuración y el ajuste del QP de luma y el QP de croma se puede repetir imagen a imagen, segmento a segmento o con otro tamaño de paso.
Dependiendo de la implementación y del tipo de compresión deseada, los módulos del codificador pueden añadirse, omitirse, dividirse en múltiples módulos, combinarse con otros módulos y/o sustituirse por módulos similares. En ejemplos alternativos, codificadores con diferentes módulos y/u otras configuraciones de módulos realizan una o más de las técnicas descritas. Los ejemplos específicos de codificadores usan habitualmente una variación o versión complementada del codificador (500). Las relaciones mostradas entre módulos dentro del codificador (500) indican flujos generales de información en el codificador; no se muestran otras relaciones por sencillez.
VI. Decodificadores de vídeo de ejemplo
La figura 6 es un diagrama de bloques de un decodificador (600) generalizado junto con el cual se pueden implementar varias realizaciones descritas. El decodificador (600) recibe datos codificados (695) para una trama o secuencia de tramas comprimida, y produce una salida que incluye una trama reconstruida (605). En aras de la presentación, la figura 6 muestra una “intra-ruta” a través del decodificador (600) para la decodificación intra-trama, y una “inter-rutas” para la decodificación inter-tramas. Muchos de los componentes del decodificador (600) se usan tanto para decodificación intra-trama como para decodificación inter-tramas. Las operaciones exactas realizadas por esos componentes pueden variar dependiendo del tipo de información que se está descomprimiendo.
Una memoria intermedia (690) recibe datos codificados (695) para una trama comprimida, y hace que los datos codificados recibidos estén disponibles para el analizador sintáctico / decodificador por entropía (680). Los datos codificados pueden incluir elementos sintácticos que indican valores de QP establecidos para croma, tales como desplazamientos de QP de croma a nivel de imagen y/o desplazamientos de QP de croma a nivel de segmento. La sección VII describe ejemplos de tales elementos sintácticos. El analizador sintáctico / decodificador por entropía (680) decodifica por entropía los datos cuantificados codificados por entropía, así como la información lateral codificada por entropía, aplicando habitualmente la inversa de la codificación por entropía realizada en el codificador.
Un compensador de movimiento (630) aplica información de movimiento (615) a una o más tramas de referencia (625), para formar predicciones compensadas por movimiento (635) de subbloques y/o bloques de la trama (605) que se reconstruye. El almacén de tramas (620) almacena una o más tramas reconstruidas previamente para su uso como tramas de referencia.
La intra-ruta puede incluir un módulo de intra-predicción (no mostrado) que predice espacialmente valores de píxel de un bloque o subbloque actual a partir de valores de píxel vecinos previamente reconstruidos. En la inter-ruta, el decodificador (600) reconstruye los residuos de predicción. Un cuantificador inverso (670) cuantifica inversamente los datos decodificados por entropía, usando potencialmente valores de QP de croma. Por ejemplo, el decodificador (600) establece valores para QP de luma y QP de croma para una imagen, segmento y/u otra parte de vídeo, tal como una unidad de codificación, basándose en elementos sintácticos en el flujo de bits y, en consecuencia, el cuantificador inverso (670) cuantifica inversamente los coeficientes de transformada.
En algunas implementaciones, el decodificador puede establecer un valor de QP de luma a nivel de imagen, un valor de QP de luma a nivel de segmento o un valor de QP de luma a nivel de unidad de codificación durante la decodificación, tal como se indica mediante los elementos sintácticos en el flujo de bits, incluyendo un valor de QP de luma a nivel de imagen, un desplazamiento de QP de luma a nivel de segmento (si está presente) y un desplazamiento de QP de luma a nivel de unidad de codificación (si está presente). Diferentes segmentos dentro de una imagen pueden tener diferentes valores de QP de luma especificados, y diferentes unidades de codificación dentro de un segmento pueden tener diferentes valores de QP de luma especificados. El decodificador también establece un valor de QP de croma a nivel de imagen o valor de QP de croma a nivel de segmento, tal como se indica en el flujo de bits con uno o más desplazamientos de QP de croma. El decodificador también puede usar una matriz de escala de cuantificación para establecer factores de escala específicos para una frecuencia para coeficientes de una componente de luma y/o una componente de croma. Un valor de QP representa un tamaño de paso de cuantificación (“QSS”) de acuerdo con una relación definida, tal como se describió anteriormente.
Un transformador de frecuencia inverso (660) convierte los datos del dominio de la frecuencia reconstruidos en información de dominio espacial. Por ejemplo, el transformador de frecuencia inverso (660) aplica una transformada de bloque inversa a coeficientes de transformada de frecuencia, produciendo datos de valor de píxel o datos residuales de predicción. La transformada de frecuencia inversa puede ser una transformada del coseno discreta inversa, una aproximación de número entero de la misma, u otro tipo de transformada de frecuencia inversa.
Para una trama predicha, el decodificador (600) combina residuos de predicción reconstruidos (645) con predicciones compensadas por movimiento (635) para formar la trama reconstruida (605). (Aunque no se muestra en la figura 6, en la intra-ruta, el decodificador (600) puede combinar residuos de predicción con predicciones espaciales a partir de la intra-predicción). Un bucle de compensación de movimiento en el decodificador (600) incluye un filtro adaptativo de desbloqueo en bucle (610) antes o después del almacenamiento de trama (620). El decodificador (600) aplica filtrado en bucle a tramas reconstruidas para suavizar adaptativamente las discontinuidades a través de los límites en las tramas. Los detalles del filtrado de desbloqueo durante la decodificación (por ejemplo, reglas que dependen de factores tales como contenido/suavidad, modo de codificación, vectores de movimiento para bloques/sub-bloques en diferentes lados de un límite, tamaño de bloque/sub-bloque, estado codificado/no codificado, etc.) reflejan típicamente los detalles del filtrado de desbloqueo durante la codificación.
En la figura 6, el decodificador (600) también incluye un filtro de desbloqueo de posprocesamiento (608). El filtro de desbloqueo de postprocesamiento (608) suaviza opcionalmente las discontinuidades en las tramas reconstruidas. Otro filtrado (tal como filtrado de eliminación de anillo) también se puede aplicar como parte del filtrado de posprocesamiento.
Dependiendo de la implementación y del tipo de descompresión deseado, los módulos del decodificador pueden añadirse, omitirse, dividirse en múltiples módulos, combinarse con otros módulos y/o ser sustituidos por módulos similares. En ejemplos alternativos, los decodificadores con diferentes módulos y/u otras configuraciones de módulos realizan una o más de las técnicas descritas. Los ejemplos específicos de decodificadores usan habitualmente una variación o versión complementada del decodificador (600). Las relaciones mostradas entre módulos dentro del decodificador (600) indican flujos generales de información en el decodificador; no se muestran otras relaciones por sencillez.
VII. Control y uso de valores de QP de croma de intervalo extendido
Esta sección presenta diversas innovaciones para controlar y usar valores de QP de croma.
En el diseño de HEVC en JCTVC-I1003, el QP para croma está limitado al intervalo [0, 39] para una profundidad de bits de 8. Por el contrario, el QP para luma puede variar en el intervalo [0, 51] para una profundidad de bits de 8. El intervalo se incrementa apropiadamente para profundidades de bits más altas tanto para luma como para croma. Con este diseño, el valor de QP usado para croma se satura a un valor mucho más pequeño en comparación con el valor de QP usado para luma. Es decir, el valor de QP más alto (y el QSS más alto) usado para el croma es mucho más pequeño que el valor de QP más alto (y el QSS más alto) usado para el luma. Esta restricción puede provocar problemas para el control de la velocidad en aplicaciones de baja velocidad de bits, cuando se asigna una cantidad excesiva (ineficaz, no informada) de bits a la codificación de componentes de croma con relación a componentes de luma. Además, el diseño puede no ser muy adecuado para una amplia variedad de formatos de color.
En particular, de acuerdo con el diseño de HEVC en JCTVC-I1003, los QP se usan para las componentes de croma Cb y Cr (es decir, QPob y QPor) se obtienen del QP usado para la componente de luma (QPy) como sigue. Los valores de QPCb y QPCr son iguales al valor de QP<c>tal como se especifica en la Tabla 1 basándose en una búsqueda para el índice de QP intermedio qPi. La Tabla 1 especifica QPc como una función de qPi.
Tabla 1. QP<c>como una función de qPj en JCTVC-I1003
El índice QP intermedio qPi puede ser qPicb (para la componente de croma Cb) o qPicr (componente de croma Cr). Se obtiene como:
qPicb = Clip3( -QpBdOffsetc, 51, QP<y>+ cb qp offset), o
qPiCr = Clip3( -QpBdOffsetc, 51, QP<y>+ cr qp offset)
donde Clip3 es una función definida como sigue. Clip3 (x, y, z) es x cuando z < x, es y cuando z > y, y es z de otro modo. Los valores cb_qp_offset y cr_qp_offset son valores de desplazamiento de QP de croma a nivel de imagen que pueden señalizarse en un conjunto de parámetros de imagen (“PPS”). QPy es un valor de QP para luma. QpBdOffsetC es un desplazamiento de intervalo del QP de croma que depende de la profundidad de bits de croma (aumentando para profundidades de bits más altas). Los valores de ejemplo para QpBdOffsetC son 0, 6, 12, 18, 24 y 36, donde QpBdOffsetC = 6 * bit_depth_chroma_minus8 y bit_depth_chroma_minus8 está en el intervalo de 0 a 6, inclusive, para profundidades de bits de 8 a 14 bits por muestra.
En el diseño de HEVC en JCTVC-I1003, puede producirse un ajuste adicional a los QP para luma y croma basándose en la profundidad de bits. Este tipo de ajuste es también un aspecto de las innovaciones descritas a continuación. Es decir, tales ajustes para la profundidad de bits también se pueden hacer para las innovaciones descritas a continuación. Para mayor claridad, las ecuaciones que representan este ajuste en el diseño de HEVC en JCTVC-I1003 son:
QP'<y>= QP<y>+ QpBdOffsety.
QP’cb = QPcb QpBdOffsetc, y
QP'cr = QP cr QpBdOffsetc
Por lo tanto, el proceso general de obtener un valor de QP de croma(porejemplo,QP’cb o QP’Cr ) es para: (1) determinar un índice de QP intermedio qPI(porejemplo,qPICb o qPICr) a partir del valor de QP de luma (QP<y>) y el desplazamiento de QP de croma a nivel de imagen(porejemplo,cb_qp_offset o cr_qp_offset), (2) determinar un valor de QPc(por ejemplo,QPCb o QPCr) a través de una operación de consulta de tabla, y (3) ajustar el valor de QPC mediante QpBdOffsetC.
A. Nuevos enfoques para expresar QP para croma
Diversas innovaciones descritas en el presente documento amplían el intervalo de QP de croma para coincidir con el intervalo de QP de luma. Algunas innovaciones descritas en el presente documento modifican el proceso de obtención de QPCb y QPCr a partir de QP<y>, en comparación con el diseño de HEVC en JCTVC-I1003.
Para los nuevos enfoques descritos en esta sección, el proceso global de obtener un valor de QP de croma(porejemplo,QP’cb o QP’Cr) es como sigue. En primer lugar, un índice QP intermedio qPI(porejemplo,qPICb o qPICr) se determina a partir de un valor de QP de luma (QP<y>) y un desplazamiento de QP de croma. El desplazamiento de QP de croma tiene en cuenta los desplazamientos de QP de croma a nivel de imagen, y también puede tener en cuenta el desplazamiento de QP de croma a nivel de segmento en algunos nuevos enfoques. A continuación, un valor de QPc(porejemplo,QPcb o QPcr) se determina a través de una operación de consulta de tabla o de otra operación de mapeo. A continuación, el valor de QPc se ajusta mediante QpBdOffsetc.
QP’cb = QPcb QpBdOffsetc, 0
QPYr = QP Cr QpBdOffsetc.
La etapa final puede saltarse cuando QpBdOffsetc es cero. De nuevo, los valores de ejemplo para QpBdOffsetc son 0, 6, 12, 18, 24 y 36.
1. Nuevo enfoque 1
En el nuevo enfoque 1, los valores de QPcb y QPcr son iguales al valor de QPc tal como se especifica en la Tabla 2, dependiendo del valor del índice qPI.
Tabla 2. QP<c>como una función de qPi en un nuevo enfoque1
En comparación con la Tabla 1, la Tabla 2 se extiende de 51 a 71 para el índice qPi. Asimismo, en comparación con la Tabla 1, el valor de QP de croma QPc es diferente para los valores del índice qPI por encima de 43. El índice qPI (para qPICb o qPICr) se obtiene como sigue. En estas ecuaciones, el límite superior es 71 en lugar de 51.
La relación entre QP<c>y qPI puede especificarse como una tabla para cada valor del índice qPI. Como alternativa, se necesita una tabla que contenga solo 5 entradas, y la parte restante puede implementarse usando la lógica representada de la siguiente manera, en la que “>>“ indica un desplazamiento aritmético a la derecha de un número entero representado en la aritmética del complemento de dos:
2. Nuevo enfoque 2
En el nuevo enfoque 2, los valores de QPcb y QPcr son iguales al valor de QP<c>tal como se especifica en la Tabla 3, dependiendo del valor del índice qPI.
Tabla 3. QP<c>como una función de qPi en el nuevo enfoque 2
En comparación con la Tabla 1, el valor de QP de croma QPc es diferente para los valores del índice qPi por encima de 43. El índice qPI (para qPICb o qPICr) se obtiene como sigue. En estas ecuaciones, el límite superior es 57 en lugar de 51, lo que extiende efectivamente la Tabla 3 hasta qPI = 57.
qPicb = Clip3( -QpBdOffsetc, 57, QPv cb qp offset;
qPicr = Clip3( -QpBdOffsetc, 57, QPv cr qp offset)
La relación entre QP<c>y qPI puede especificarse como una tabla para cada valor del índice qPI. Como alternativa, se necesita una tabla que contenga solo 5 entradas, y la parte restante puede implementarse usando la lógica representada de la siguiente manera:
si ( qPi < 30 )
QPc - qPi
si no, si(qPi>=30&&qPt<=34)
determinar QPc de la tabla
si no, si ( qPi > 34 && qPi < 44 )
QPc = 33 ( (qPi - 34) » 1 )
si no
QPc = qPi -6
3. Nuevo enfoque 3
En el nuevo enfoque 3, los valores de QPcb y QPcr son iguales al valor de QP<c>tal como se especifica en la Tabla 4, dependiendo del valor del índice qPI.
Tabla 4. QP<c>como una función de qPI en el nuevo enfoque 3
En comparación con la Tabla 1, la Tabla 4 se extiende de 51 a 71 para el índice qPi. Además, en comparación con la Tabla 1, el valor de QP de croma QPc es diferente cuando el índice qPI es 34, y para valores de índice qPI por encima de 43. El índice qPI (para qPICb o qPICr) se obtiene como sigue. En estas ecuaciones, el límite superior es 71 en lugar de 51.
qPicb = Clip3( -QpBdOffsctc, 71,QPy+cbqp offset;
<qPiCr>-Clip3(—QpBdOffsctc,71, QPy + crqp offsct)
La relación entre QPc y qPI puede especificarse como una tabla para cada valor del índice qPI. Como alternativa, la relación puede especificarse como una función lineal por tramos y puede implementarse usando la lógica representada de la siguiente manera:
si ( qPi < 30 )
QPc = qPr
si no, si ( qPi >= 30 && qPi <= 34 )
QPc = qPi - I
si no
QPc = 33 ( (qPi - 34)» 1 )
4. Nuevo enfoque 4
En el nuevo enfoque 4, los valores de QPcb y QPcr son iguales al valor de QPc tal como se especifica en la tabla 5, dependiendo del valor del índice qPI.
Tabla 5. QP<c>como una función de qPien el nuevo enfoque 4
En comparación con la Tabla 1, el valor de QP de croma QP<c>es diferente cuando qPI = 34 y para valores de índice qPI por encima de 43. El índice qPI (para qPICb o qPcr) se obtiene como sigue. En estas ecuaciones, el límite superior es 57 en lugar de 51, lo que extiende efectivamente la Tabla 5 hasta qP<1>= 57.
qPicb = Clip3( -QpBdOffsetc, 57, QP<y>+ cb qp offset;
qPicr = Clip3( -QpBdOffsetc, 57, QPv cr qp offset)
La relación entre QPc y qPi puede especificarse como una tabla para cada valor del índice qPi. Como alternativa, la relación puede especificarse como una función lineal por tramos y puede implementarse usando la lógica representada de la siguiente manera:
si ( qPi < 30 )
QPc = qPi
si no, si( qPi >= 30 && qPi <= 3 4 )
QPc = qPi - 1
si no, si ( qPi > 34 && qPi < 44 )
QPc - 33 ( (qPi - 34) » 1)
si no
QPc = qPi - 6
5. Nuevo enfoque 5
El nuevo enfoque 5 combina el nuevo enfoque 3 con el uso de desplazamientos de QP de croma a nivel de segmento. El uso de desplazamientos de QP de croma a nivel de segmento puede habilitarse/deshabilitarse usando un indicador señalizado en el conjunto de parámetros de secuencia (“SPS”), PPS u otra estructura sintáctica de nivel superior. El nuevo enfoque 5 es por lo demás idéntico al nuevo enfoque 3, excepto por que los valores para el índice qPI se obtienen como sigue:
qPICb = Clip3 (-QpBdOffsetc, 71, QPy cb_qp_offset slice_qp_delta_cb)
qPicr = Clíp3( -QpBdOffsetc , 71, QP<y>+ er qp offset si ice qp delta cr)
Las variables slice_qp_delta _cb y slice_qp_delta_cr son valores de desplazamiento de QP de croma a nivel de segmento para componentes Cb y Cr, respectivamente, que pueden señalizarse en una cabecera de segmento.
6. Nuevo enfoque 6
De manera similar, el nuevo enfoque 6 combina el nuevo enfoque 4 con el uso de desplazamientos de QP de croma a nivel de segmento. El uso de desplazamientos de QP de croma a nivel de segmento puede habilitarse/deshabilitarse usando un indicador señalizado en el SPS, PPS u otra estructura sintáctica de nivel superior. El nuevo enfoque 6 es, por lo demás, idéntico al nuevo enfoque 4, excepto por que los valores para el índice qPI se obtienen como sigue:
qPICb = Clip3 (-QpBdOffsetc, 57, QP<y>+ cb_qp_offset slice_qp_delta_cb)
qPicr = Clíp3( -QpBdOffsetc, 57, QP<y>+ er qp offset si ice qp delta cr)
7. Ventajas de los nuevos enfoques
Para cada nuevo enfoque en esta sección, la tabla para determinar QP<c>como una función de qPI se extiende efectivamente para permitir alcanzar valores más altos de QP de croma (indicando valores más altos de QSS para croma, de acuerdo con relaciones de ejemplo entre QP y QSS). En particular, las tablas se extienden de manera efectiva, de tal manera que el valor máximo posible de QP para croma es ahora 51 en lugar de 39 (en JCTVC-I1003). Esto permite una cuantificación más agresiva(es decir,grosera) para componentes de croma en escenarios de QP alto, lo que reduce la velocidad de bits para las componentes de croma. Los bits guardados pueden ser utilizados, por el contrario, para componentes de luma, para mejorar la calidad general. Asimismo, para cada nuevo enfoque, la tabla puede implementarse usando fórmulas/lógica simples, tal como se describió anteriormente.
Los nuevos enfoques 2, 4 y 6 tienen las siguientes ventajas adicionales.
En primer lugar, se evita que la diferencia entre los tamaños de las etapas de cuantificación representados por el valor de QP para luma y el valor de QP correspondiente para croma sea demasiado extrema, especialmente para los valores de QP en el extremo alto de la tabla ampliada. Habitualmente, un tamaño de etapa de cuantificación (“QSS") depende del valor de QP de acuerdo con la relación definida(por ejemplo,relación aproximadamente logarítmica; en algunas implementaciones, aproximadamente QSS = 2(QP/6), de tal manera que QSS es directamente proporcional a QP en el exponente de la relación). Cuando se usan valores por defecto para desplazamientos de QP de croma (es decir, los desplazamientos se establecen en 0), la relación de QSS representada por el índice de QP (obtenido del QP para luma) con respecto a QSS para croma puede ser tan grande como 4 en el diseño de HEVC en JCTVC-M003(por ejemplo,aproximadamente 285 frente a 265 para un QP de luma de 51 y un QP de croma de 39). En los nuevos enfoques 2, 4 y 6, por el contrario, la relación es como máximo de 2(por ejemplo,aproximadamente 285 frente a 275 para QP de luma de 51 y QP de croma de 45). Limitar la relación para QSS puede ayudar a evitar un uso excesivo de bits para componentes de croma cuando se pretende que la cuantificación sea grosera.
En segundo lugar, para la relación de cambio en QP para luma con respecto a cambio en QP para croma, se habilita una pendiente de 1 en operación de QP alto (QSS alto). Para condiciones de QP alto (cuando qPI es > 43), un cambio de 1 para el QP de luma da como resultado un cambio de 1 para el QP de croma, o un cambio de -1 para el QP de luma da como resultado un cambio de -1 para el QP de croma. Esto ayuda a que un controlador de codificación mantenga el equilibrio entre luma y croma cuando cambia los valores de QP(por ejemplo,durante el control de la velocidad para ajustar la calidad global en función de la velocidad de bits). Para este intervalo de valores de QP, la relación entre los tamaños de las etapas de cuantificación de luma y croma permanece constante, lo que facilita un control fino de la velocidad de bits sin cambios inesperados en el equilibrio entre luma y croma.
Tercero, en algunas implementaciones (para las que QPC es qPI - 6 en operación de QP alta), se puede usar un desplazamiento de QP de croma fijo de 6 para lograr QSS iguales para luma y croma en operación de QP alta (QSS alta). En algunos casos, un codificador puede desear codificar todos los planos usando el mismo QSS (lo que se hace posible cuando QPy = QPc). En el diseño en JCTVC-I1003, esto significa que el desplazamiento de QP de croma puede necesitar ser ajustado dependiendo del QP, ya que la relación entre QP<y>y QP<c>tiene una diferencia variable (véase la Tabla 1). Por el contrario, en los nuevos enfoques 2, 4 y 6, para valores de qPI mayores que 43, QP<c>= qPI - 6. Por lo tanto, la diferencia entre qPI y QP<c>se mantiene en 6 para este intervalo, y un desplazamiento de QP de croma fijo de 6 puede lograr el objetivo (QP<y>= QP<c>).
En cuarto lugar, el desplazamiento de QP de croma necesario para lograr una relación relativa deseada (entre el QSS para luma y croma) es mucho menor que en JCTVC-I1003. Por ejemplo, en JCTVC-I1003, si el codificador desea usar un QP de 39 tanto para luma como para croma, el desplazamiento de QP de croma necesario es de 12. Este valor para el desplazamiento se hace incluso mayor si la Tabla 1 se extiende simplemente a la misma pendiente vista al final. En los nuevos enfoques 2, 4 y 6, sin embargo, se puede lograr la misma relación relativa usando un desplazamiento mucho menor de 6.
En quinto lugar, el intervalo extendido para los valores de QP de croma no afecta significativamente al rendimiento de velocidad-distorsión para condiciones de uso comunes con valores de QP de intervalo bajo y medio (para cuantificación fina y cuantificación de intervalo medio), ya que las modificaciones en los nuevos enfoques se aplican principalmente fuera del intervalo de valores de QP usados en las condiciones de uso comunes. Al mismo tiempo, sin embargo, para situaciones de alto QP (QSS alto), hay beneficios en términos de rendimiento de distorsión de velocidad y flexibilidad del codificador para usar un intervalo extendido para el QP de croma. Para situaciones habituales de alto QP, la pérdida en la calidad de croma (de cuantificación más grosera, bits guardados, etc., usando QP de croma de intervalo extendido) es más que compensada por la ganancia en la calidad de luma.
Cualquiera de los nuevos enfoques para expresar QP para croma como una función de QP para luma puede usarse junto con una matriz de escalamiento de cuantificación para establecer factores de escalamiento específicos de frecuencia para coeficientes de una componente de luma y/o una componente de croma.
B. Restricciones sobre los valores de los desplazamientos de QP de croma
Las restricciones sobre los valores de los desplazamientos de QP de croma son útiles en implementaciones de ejemplo tales como las de los nuevos enfoques 1 a 6 para limitar enormes diferencias de calidad entre luma y croma. En particular, el intervalo de -12 a 12 es eficaz en implementaciones de ejemplo para desplazamiento de QP de croma. (En el estándar H.264/AVC, un desplazamiento de QP de croma está limitado de manera similar al intervalo de -12 a 12, inclusive). Este intervalo tiene propiedades útiles. Por ejemplo, para el nuevo enfoque 4, a QP altos, dado que un desplazamiento de QP de croma de 6 representa el caso en el que el QP de luma es igual al QP de croma, el desplazamiento de 12 representa el contrapunto a un desplazamiento de 0. En estos dos desplazamientos de QP de croma(es decir,los desplazamientos de 0 y 12), el QSS más grande es exactamente 2x el QSS más pequeño(por ejemplo,QSS de 295 para un QP de croma de 57 es 2x el QSS de 285 para un QP de croma de 51, que es 2x el QSS de 275 para un QP de croma de 45), por ejemplo relaciones entre QP y QSS.
En el caso de los nuevos enfoques 1 a 4, las restricciones sobre los valores de los desplazamientos de QP de croma pueden imponerse sobre cb_qp_offset y cr_qp_offset. Para los nuevos enfoques 5 y 6, las restricciones sobre los valores de los desplazamientos de QP de croma pueden imponerse sobre los valores (cb_qp_offset slice_qp_delta _cb) y (cr_qp_offset slice_qp_delta_cr). Como alternativa, para los nuevos enfoques 5 y 6, las restricciones sobre los valores de los desplazamientos de QP de croma pueden imponerse sobre valores individuales para cb_qp_offset, slice_qp_delta_cb, cr_qp_offset y slice_qp_delta_cr.
C. Sintaxis y semántica de valores para desplazamientos de QP de croma a nivel de segmento
En los nuevos enfoques 5 y 6, la sintaxis y la semántica del flujo de bits soportan la señalización de los desplazamientos de QP de croma a nivel de segmento. Los desplazamientos de QP de croma a nivel de segmento proporcionan al codificador una mayor capacidad para controlar con precisión el QP de croma para diferentes regiones dentro de una imagen. La figura 7a muestra un nuevo indicador slicelevel_chroma_qp_flag en la sintaxis de RBSP de PPS, y la figura 7b muestra nuevos valores slice_qp_delta_cb y slice_qp_delta_cr en la sintaxis de cabecera de segmento, por ejemplo, implementaciones. Los valores codificados por entropía slice_qp_delta_cb y slice_qp_delta_cr están condicionalmente presentes en una cabecera de segmento, dependiendo del valor de slicelevel_chroma_qp_flag en el PPS aplicable. Por lo tanto, cuando no se usan desplazamientos de QP de croma a nivel de segmento, se evita la sobrecarga de sintaxis a nivel de segmento. En el segmento de sintaxis de PPS (701) mostrado en la figura 7a, los valores cb_qp_offset y cr_qp_offset especifican un desplazamiento de base usado en la obtención de QPob y QPor respectivamente, tal como se ha especificado anteriormente. El valor de slicelevel_chroma_qp_flag igual a 1 especifica que los elementos sintácticos slice_qp_delta_cb y slice_qp_delta_cr están presentes en las cabeceras de segmento asociadas. De lo contrario, los elementos sintácticos slice_qp_delta_cb y slice_qp_delta_cr no están presentes en las cabeceras de segmento asociadas.
En una cabecera de segmento (tal como se muestra en el segmento de sintaxis (702) en la figura 7b), slice_qp_delta especifica el valor inicial de QPy para ser utilizado para todos los bloques de codificación en el segmento hasta que sea modificado por el valor de cu_qp_delta (delta de QP de la unidad de codificación) en la capa de unidad de codificación. El parámetro de cuantificación QPy inicial para el segmento se calcula como
SliceQPv = 26 + pie init qp minus26 sliceqpdelta
El valor de slice_qp_delta está limitado de tal manera que SliceQPY está en el intervalo de -QpBdOffsetY 51, ambos inclusive.
Los valores slice_qp_delta_cb y slice_qp_delta_cr especifican un desplazamiento delta utilizado en la obtención de QPCb y QPor respectivamente, tal como se especifica para los nuevos enfoques 5 y 6. Cuando no está presente, se deduce que el valor de estos elementos sintácticos es 0.
D. Primer conjunto de enfoques para el filtrado de desbloqueo modificado para croma
En el diseño de HEVC en JCTVC-I1003, la “intensidad” de filtro (parámetro te) utilizada mientras se desbloquea un borde de bloque de una componente de croma se determina utilizando un valor de QPc. La variable QPc se determina como se especifica en la Tabla 1 usando un índice qPi que se obtiene como:
donde QP<q>y QP<p>representan los valores de QP de luma para los bloques presentes a cada lado del borde. La idea general es ajustar la intensidad de filtro basándose en los valores de QP usados para cuantificar las muestras alrededor del borde. Este enfoque para determinar qPi para el filtrado de desbloqueo de croma es ineficaz cuando los desplazamientos de QP de croma (cb_qp_offset y cr_qp_offset) no son iguales a cero. Para diferentes valores distintos de cero de desplazamientos de QP de croma, el QP usado para componentes de croma sería diferente, pero la intensidad de filtro sigue siendo la misma.
En algunas implementaciones de ejemplo, el efecto de los desplazamientos de QP de croma se tiene en cuenta cuando se determina qPi para filtrado de desbloqueo de croma. En estas implementaciones, el índice qPi se obtiene como:
<qPi = C lip3(>0,<51, ( ( (>QP<q>+ QP<p 1 ) » 1 j cqp o ffs e t) ).>
donde cqp_offset representa cb_qp_offset y cr_qp_offset para las componentes Cb y Cr, respectivamente. En estas implementaciones de ejemplo, la obtención del índice qPi para el filtrado de desbloqueo de croma explica los efectos de los desplazamientos de QP de croma, pero de lo contrario se basa en la forma en que qPI se obtiene en JCTVC-I1003 cuando se expresa QP para croma como una función de QP para luma.
En otras implementaciones de ejemplo, cuando se adopta uno de los nuevos enfoques descritos anteriormente para formas de expresar QP para croma en función de QP para luma, el índice qPI para el filtrado de desbloqueo se puede obtener como:
donde QPmax y cqp_offset dependen del nuevo enfoque usado. Para los nuevos enfoques 1,3 y 5, por ejemplo, QPmax es igual a 71. Para los nuevos enfoques 2, 4 y 6, por ejemplo, QPmax es igual a 57. Para los nuevos enfoques 1 a 4, cqp_offset representa cb_qp_offset y cr_qp_offset para las componentes Cb y Cr, respectivamente. Para los nuevos enfoques 5 y 6, cqp_offset representa (cb_qp_offset slice_qp_delta cb) y (cr_qp_offset slice_qp_delta_cr) para las componentes Cb y Cr, respectivamente. De manera más general, cuando el valor del índice qPI se obtiene para el filtrado de desbloqueo, (QP<q>+ QP<p>+ 1) >> 1 reemplaza QP<y>, y se considera un desplazamiento de QP de croma.
La manera en que la variable qPI se usa en el filtrado de desbloqueo depende de la implementación. Por ejemplo, la variable qPi se utiliza entonces para determinar una variable QP<c>tal como se especifica en la tabla 5 anterior. Otra variable Q se obtiene como:
donde bS es un conjunto de intensidad de filtrado de frontera que depende del modo de codificación (intra o inter), de la presencia de coeficientes de transformación distintos de cero en un bloque, de los valores del vector de movimiento y/o de otros factores, donde slice_tc_offset_div2 es el valor del elemento sintáctico slice_tc_offset_div2 para el segmento que contiene una primera muestra en el lado de un borde a filtrar. El valor de la variable te se determina entonces basándose en el mapeo de Q a te mostrado en la siguiente tabla.
Tabla 6. te’, en función de Q
Finalmente, el parámetro de control tC se obtiene como: tC = te * (1 << (BitDepthC - 8)).
E. Segundo conjunto de enfoques para el filtrado de desbloqueo modificado para croma
En el diseño de HEVC en JCTVC-K0030, el filtro “intensidad” (Parámetro te) utilizado mientras se desbloquea un borde de bloque de una componente de croma se determina utilizando un valor de QPe. La variable QPe se determina tal como se especifica en la Tabla 1 usando un índice qPi, que se obtiene como:
donde QP<q>y QP<p>representan los valores de QP de luma para los bloques presentes a cada lado del borde. La idea general es ajustar la intensidad del filtro basándose en los valores de QP usados para cuantificar las muestras alrededor del borde. Este enfoque para determinar qPi tiene sentido cuando los desplazamientos de QP de croma (es decir, pic_cb_qp_offset slice_cb_qp_offset y pic_cr_qp_offset slice_cr_qp_offset) son iguales a cero; este enfoque para determinar qPi no tiene sentido, sin embargo, cuando los desplazamientos de QP de croma no son iguales a cero. Para valores diferentes, distintos de cero, de desplazamientos de QP de croma, el QP usado para componentes de croma sería diferente, pero la intensidad del filtro seguiría siendo la misma. Por lo tanto, el diseño de filtrado de desbloqueo descrito en JCTVC-K0030 no proporciona personalización específica para una componente, de la intensidad del proceso de filtrado de desbloqueo.
Esta sección describe enfoques que tienen en cuenta los efectos de los desplazamientos de QP de croma cuando se determina el parámetro tC para controlar el filtrado de desbloqueo de componentes de croma. Estos enfoques ayudan a reflejar adecuadamente el QP real usado para el croma cuando se usan desplazamientos de QP distintos de cero. En algunas implementaciones de ejemplo, el efecto de los desplazamientos de QP de croma se tiene en cuenta cuando se determina qPi para filtrado de desbloqueo de croma.
Esto puede implicar almacenar los valores de QP de croma sobre una base de unidad de árbol de codificación (Coding Tree Unit, “CTU”). En muchos casos, el impacto sobre la complejidad informática del almacenamiento de los valores de QP de croma para este propósito es relativamente pequeño y, en cualquier caso, el impacto sobre la complejidad normalmente se compensa por los beneficios del filtrado de desbloqueo adaptativo que tiene en cuenta los valores de QP de croma reales.
Sin embargo, si el impacto en la complejidad informática se considera prohibitivo, se pueden usar otros enfoques que ofrecen un compromiso entre el coste de almacenamiento añadido y la reactividad a los cambios en los valores de QP de croma. En enfoques de compromiso, el filtrado de desbloqueo puede explicar los desplazamientos de QP de croma a nivel de imagen sin tener en cuenta los desplazamientos de QP a nivel de segmento (u otros desplazamientos de QP de croma de grano fino dentro de una imagen). Aunque tales enfoques de compromiso ignoran alguna información sobre los desplazamientos de QP de croma que está disponible para el codificador y el decodificador, y señalizada en el flujo de bits, eliminan el requisito de almacenamiento en memoria intermedia de valores de QP de croma reales, mientras que todavía proporcionan un mejor rendimiento que el esquema actual de ignorar completamente los valores de QP de croma en el proceso de filtrado de desbloqueo.
En un enfoque de ejemplo (un enfoque de no compromiso), se tienen en cuenta los efectos de los desplazamientos de QP de croma a nivel de imagen, así como los efectos de los desplazamientos de QP de croma a nivel de segmento. La ecuación modificada es la siguiente:
donde cqp_offset representa pic_cb_qp_offset slice_cb_qp_offset para Cb, y cqp_offset representa pic_cr_qp_offset slice_cr_qp_offset para Cr.
En otro enfoque de ejemplo (también un enfoque de no compromiso), los efectos de los desplazamientos de QP de croma tanto a nivel de imagen como a nivel de segmento aún se tienen en cuenta. Sin embargo, a diferencia del enfoque anterior, la operación de recorte se evita como una simplificación. La ecuación modificada es la siguiente:
qPi =( ((QPq+ QPp 1 ) » 1) cqp offset),
donde cqp_offset todavía representa pic_cb_qp_offset slice_cb_qp_offset para Cb, y cqp_offset todavía representa pic_cr_qp_offset slice_cr_qp_offset para Cr.
En otro enfoque de ejemplo (un enfoque de compromiso), se tienen en cuenta los efectos de los desplazamientos de QP de croma especificados solo a nivel de imagen. Es decir, incluso si se usaron y señalizaron desplazamientos de QP de croma a nivel de segmento en el flujo de bits (u otros desplazamientos de QP de croma de grano fino dentro de una imagen se usaron y señalizaron en el flujo de bits), tales desplazamientos a nivel de segmento / de grano más fino no se consideran parte del control del filtrado de desbloqueo. Este enfoque de compromiso es más simple que considerar los desplazamientos de QP de croma tanto al nivel de imagen como al nivel de segmento, y puede tener requisitos de memoria más bajos. La ecuación modificada es la siguiente:
donde cqp_offset representa pic_cb_qp_offset para Cb, y cqp_offset representa pic_cr_qp_offset para Cr.
En otro enfoque de ejemplo más (también un enfoque de compromiso), se tienen en cuenta los efectos de los desplazamientos de QP de croma especificados solo a nivel de imagen. De nuevo, esto es más simple, y puede tener requisitos de memoria más bajos, que considerar los desplazamientos de QP de croma tanto al nivel de imagen como al nivel de segmento (u otros desplazamientos de QP de croma de grano fino dentro de una imagen). La operación de recorte se evita como una simplificación adicional. La ecuación modificada es la siguiente:
donde cqp_offset representa pic_cb_qp_offset para Cb, y cqp_offset representa pic_cr_qp_offset para Cr.
Aunque los dos primeros enfoques (enfoques de no compromiso) en esta sección son capaces de tener en cuenta tanto los desplazamientos de QP de croma a nivel de imagen como los desplazamientos de QP de croma a nivel de segmento, los dos segundos enfoques (enfoques de compromiso) son simplificaciones que tienen en cuenta solamente los desplazamientos de QP de croma especificados a nivel de imagen (pero no los desplazamientos de QP de croma especificados a nivel de segmento). Con los dos enfoques de compromiso, para el funcionamiento del filtro de desbloqueo, los valores o desplazamientos de QP de croma no necesitan almacenarse en una base de segmento o en una base de CTU. En su lugar, solo se almacenan los desplazamientos a nivel de imagen (2 por imagen).
Un codificador puede seguir usando desplazamientos de QP de croma a nivel de segmento (y/u otros desplazamientos de QP de croma de grano fino) con el propósito de control de velocidad. Incluso en tales situaciones, considerar solo los desplazamientos de QP de croma a nivel de imagen puede ser adecuado para ajustar la fuerza del filtrado de desbloqueo. En muchos escenarios, se considera que los planos de croma son de igual o mayor importancia que los planos de luma (donde los desplazamientos de QP de croma necesitan ser distintos de cero para hacer coincidir el QP de croma con el QP de luma). De este modo, los desplazamientos de QP de croma a nivel de imagen tienen habitualmente más de un impacto (que los desplazamientos de QP de croma a nivel de segmento) cuando se consideran con el propósito de controlar cómo desbloquear las componentes de croma de filtrado. Algunos codificadores pueden usar solo desplazamientos de QP de croma a nivel de imagen, y no desplazamientos de QP de croma a nivel de segmento, para el control de velocidad. Por lo tanto, incluso si los desplazamientos de QP de croma a nivel de segmento disponibles (u otros desplazamientos de QP de croma de grano fino disponibles) no se consideran en el control del filtrado de desbloqueo, hay ventajas para considerar desplazamientos de QP de croma a nivel de imagen.
La manera en que la variable qPI se usa en el filtrado de desbloqueo dependiendo de la implementación. Por ejemplo, la variable qPI se obtiene como:
qPi = (( QP<q>+QPp+ 1) » 1 ) cQpPicOffset,
donde la variable cQpPicOffset proporciona un ajuste para el valor del desplazamiento de QP a nivel de imagen para la componente Cb o Cr de una imagen, pero evita la necesidad de variar la cantidad de ajuste dentro de la imagen al no incluir un ajuste para el valor del desplazamiento de QP a nivel de segmento para la componente Cb o Cr. La variable qPI se utiliza entonces para determinar una variable QPc tal como se especifica en la tabla 5 anterior. Otra variable Q se obtiene entonces a partir de QP<c>como:
donde bS es un conjunto de intensidad de filtrado de frontera que depende del modo de codificación (intra o inter), de la presencia de coeficientes de transformación distintos de cero en un bloque, de los valores de vector de movimiento y/u otros factores, donde slice_tc_offset_div2 es el valor del elemento sintáctico slice_tc_offset_div2 para el segmento que contiene una primera muestra en el lado de un borde a filtrar. El valor de la variable te’ se determina entonces basándose en el mapeo de Q a te’ mostrado en la tabla 6. Finalmente, el parámetro de control te se obtiene como: te = te’ * (1 << (BitDepthC - 8)).
La figura 8 muestra una técnica generalizada (800) para usar desplazamientos de QP de croma para controlar el filtrado de desbloqueo durante la codificación. Un codificador de vídeo tal como uno descrito anteriormente con referencia a la figura 5 u otro codificador de imagen o vídeo realiza la técnica (800).
El codificador codifica contenido de imagen o vídeo para el que los valores de QP varían de acuerdo con una relación entre una componente de luma y componentes de croma. Como parte de la codificación, el codificador establece (810) un desplazamiento de QP de croma a nivel de imagen y un desplazamiento de QP de croma a nivel de segmento para la codificación de un segmento de una imagen. El codificador cuantifica los coeficientes de transformada para una o más partes del segmento según se regula por el QP de croma, que se indica por el desplazamiento de QP de croma a nivel de imagen y el desplazamiento de QP de croma a nivel de segmento. El codificador puede ajustar el desplazamiento de QP de croma a nivel de imagen y/o el desplazamiento de QP de croma a nivel de segmento durante la codificación con fines de control de velocidad, y el codificador puede establecer diferentes desplazamientos de QP de croma a nivel de segmento para diferentes segmentos de la imagen. El codificador almacena el desplazamiento de croma a nivel de imagen para su uso en el filtrado de desbloqueo, pero el codificador no necesita almacenar desplazamientos de QP de croma a nivel de segmento para su uso en el filtrado de desbloqueo.
El codificador también realiza (820) el filtrado de desbloqueo de al menos parte del segmento que se codificó con el desplazamiento de QP de croma a nivel de imagen y el desplazamiento de QP de croma a nivel de segmento. Para el filtrado de desbloqueo, el codificador obtiene un parámetro de control considerando el desplazamiento de QP de croma a nivel de imagen pero no el desplazamiento de QP de croma a nivel de segmento. Por ejemplo, el parámetro de control depende de una variable qPI obtenida a partir de:
qPi = ( ( (QP<q>+ QPr 1 ) » 1) cqpoffset),
donde las variables QP<q>y QP<p>representan valores de QP de luma para bloques a cada lado de un borde en la parte del segmento en el que se realiza el filtrado de desbloqueo, y donde la variable cqp_offset representa el desplazamiento de QP de croma a nivel de imagen (pero no el desplazamiento de QP de croma a nivel de segmento). El desplazamiento de QP de croma a nivel de imagen puede señalizarse por separado para dos componentes de croma diferentes de la imagen(por ejemplo,para Cb y Cr), tales como los valores de la variable qPI y el parámetro de control se calculan por separado para las dos componentes de croma diferentes.
El codificador emite (830) al menos parte de un flujo de bits que incluye el contenido codificado. El flujo de bits puede incluir uno o más elementos sintácticos que indican el desplazamiento de QP de croma a nivel de imagen para la imagen, y uno o más elementos sintácticos que indican el desplazamiento de QP de croma a nivel de segmento para el segmento. Un desplazamiento de QP de croma a nivel de imagen puede señalizarse por separado en el flujo de bits para cada componente de croma diferente de la imagen, o diferentes componentes de croma de la imagen pueden usar el mismo desplazamiento de QP de croma a nivel de imagen señalizado en el flujo de bits. Un desplazamiento de QP de croma a nivel de segmento puede señalizarse por separado en el flujo de bits para cada componente de croma diferente del segmento, o diferentes componentes de croma del segmento pueden usar el mismo desplazamiento de QP de croma a nivel de segmento señalizado en el flujo de bits.
La figura 9 muestra una técnica generalizada (900) para usar desplazamientos de QP de croma para controlar el filtrado de desbloqueo durante la decodificación. Un decodificador de vídeo tal como uno descrito anteriormente con referencia a la figura 6 u otro decodificador de imagen o vídeo realiza la técnica (900).
El decodificador recibe (910) al menos parte de un flujo de bits que incluye contenido de imagen o vídeo codificado. Para el contenido de imagen o vídeo, los valores de QP varían de acuerdo con una relación entre una componente de luma y componentes de croma. Por ejemplo, el flujo de bits incluye uno o más elementos sintácticos que indican el desplazamiento de QP de croma a nivel de imagen para una imagen y uno o más elementos sintácticos que indican el desplazamiento de QP de croma a nivel de segmento para un segmento en la imagen. Un desplazamiento de QP de croma a nivel de imagen puede señalizarse por separado en el flujo de bits para cada componente de croma diferente de la imagen, o diferentes componentes de croma de la imagen pueden usar el mismo desplazamiento de QP de croma a nivel de imagen señalizado en el flujo de bits. Un desplazamiento de QP de croma a nivel de segmento puede señalizarse por separado en el flujo de bits para cada componente de croma diferente del segmento, o diferentes componentes de croma del segmento pueden usar el mismo desplazamiento de QP de croma a nivel de segmento señalizado en el flujo de bits.
El decodificador decodifica el contenido codificado. Como parte de la decodificación, el decodificador establece (920) un desplazamiento de QP de croma a nivel de imagen y un desplazamiento de QP de croma a nivel de segmento para la decodificación de un segmento de una imagen. El decodificador cuantifica inversamente los coeficientes de transformada para una o más partes del segmento según se regula por el QP de croma, que se indica por el desplazamiento de QP de croma a nivel de imagen y el desplazamiento de QP de croma a nivel de segmento. El decodificador puede establecer diferentes desplazamientos de QP de croma a nivel de segmento para diferentes segmentos de la imagen. El decodificador almacena el desplazamiento de croma a nivel de imagen para su uso en el filtrado de desbloqueo, pero el decodificador no necesita almacenar desplazamientos de QP de croma a nivel de segmento para su uso en el filtrado de desbloqueo.
El decodificador también realiza (930) el filtrado de desbloqueo de al menos parte del segmento que se codificó con el desplazamiento de QP de croma a nivel de imagen y el desplazamiento de QP de croma a nivel de segmento. Para el filtrado de desbloqueo, el decodificador obtiene un parámetro de control considerando el desplazamiento de QP de croma a nivel de imagen pero no el desplazamiento de QP de croma a nivel de segmento. Por ejemplo, el parámetro de control depende de una variable qPI obtenida a partir de:
donde las variables QP<q>y QP<p>representan valores de QP de luma para bloques a cada lado de un borde en la parte del segmento en el que se realiza el filtrado de desbloqueo, y donde la variable cqp_offset representa el desplazamiento de QP de croma a nivel de imagen (pero no el desplazamiento de QP de croma a nivel de segmento). El desplazamiento de QP de croma a nivel de imagen puede señalizarse por separado para dos componentes de croma diferentes de la imagen(porejemplo,para Cb y Cr), de manera que diferentes valores de la variable qPI y el parámetro de control se calculan por separado para las dos componentes de croma diferentes.
F. Alternativas
Por motivos de ilustración, la descripción detallada incluye diversos ejemplos con nombres específicos para algunos parámetros y variables. Las innovaciones descritas en el presente documento no están limitadas a implementaciones con parámetros o variables que tienen dichos nombres. En su lugar, las innovaciones descritas en el presente documento se pueden implementar con diversos tipos de parámetros y variables.
Por ejemplo, algunos de los ejemplos descritos en el presente documento incluyen los parámetros slicelevel_chroma_qp_flag, cb_qp_offset cr_qp_offset, slice_qp_delta_cb y slice_qp_delta_cr. En la versión del estándar HEVC en JCTVC-K1003, slicelevel_chroma_qp_flag se vuelve a etiquetar pic_slice_chroma_qp_offsets_present_flag pero tiene esencialmente el mismo significado. Los desplazamientos de QP de croma a nivel de imagen se denominan pic_cb_qp_offset y pic_cr_qp_offset en lugar de cb_qp_offset y cr_qp_offset. Los desplazamientos de QP de croma a nivel de segmento se denominan slice_cb_qp_offset y slice_cr_qp_offset en contraposición a slice_qp_delta_cb y slice_qp_delta_cr de segmento. Los ejemplos descritos en el presente documento también se aplican a los parámetros tal como se volvieron a etiquetar.
En algunos ejemplos descritos en el presente documento, un valor de QP se señala en el flujo de bits como QP menos 26, y el QSS es S* 2(QP/6) o aproximadamente S* 2(QP/6)en la que S es un factor de escala tal como una constante de valor fijo, un factor de escala específico de transformada o un factor de escala específico de frecuencia. En esta relación, un valor alto de QP significa un valor alto(es decir,QSS aproximado), y un valor bajo de QP indica un valor bajo(es decir,fine) QSS. Como alternativa, QP puede estar inversamente relacionado con QSS. Por ejemplo, un valor de QP se señala en el flujo de bits como 25 menos QP, y el QSS es S* 2((51-QP)/6) o aproximadamente S* 2((51-QP)/6). En este ejemplo, los mismos valores de QSS pueden señalizarse efectivamente, pero un valor alto de QP significa un QSS bajo, y un valor bajo de QP significa un QSS alto. De manera más general, las innovaciones descritas en el presente documento pueden aplicarse para diversas relaciones entre QP y QSS, incluyendo las relaciones descritas anteriormente, así como relaciones en las que el QP es un parámetro tal como el parámetro denominado QUANT en el estándar H.263, y relaciones en las que el QP es un parámetro tal como el parámetro denominado quantiser_scale en el estándar H.262.

Claims (11)

REIVINDICACIONES
1. Una memoria no volátil o dispositivo de almacenamiento, que tiene almacenada en la misma al menos parte de un flujo de bits que incluye contenido de imagen o vídeo codificado para el que los valores del parámetro de cuantificación, QP, varían de acuerdo con una relación entre una componente de luma y componentes de croma, en donde el flujo de bits se organiza para facilitar la decodificación de al menos parte del contenido codificado mediante operaciones que comprenden:
establecer (920) un desplazamiento de QP de croma a nivel de imagen y un desplazamiento de QP de croma a nivel de segmento para la decodificación de un segmento de una imagen;
para la decodificación del segmento, usando el desplazamiento de QP de croma a nivel de imagen y el desplazamiento de QP de croma a nivel de segmento para regular la cuantificación inversa, según un QP de croma, de coeficientes de transformada para una o más partes del segmento; y
realizar (930) el filtrado de desbloqueo de croma de al menos parte del segmento, en donde la obtención de un parámetro de control para el filtrado de desbloqueo de croma de la al menos parte del segmento considera el desplazamiento de QP de croma a nivel de imagen pero no el desplazamiento de QP de croma a nivel de segmento, dependiendo el parámetro de control de una variable qPI obtenida a partir de:
qPi = ( ( ( Q P q Q P p 1 ) » 1) cqp o f fs e t)
en donde las variables QPQ y QPP representan valores de QP de luma para bloques a cada lado de un borde en la al menos parte del segmento en el que se realiza el filtrado de desbloqueo de croma, y en el que la variable cqp_offset representa el desplazamiento de QP de croma a nivel de imagen; y
en donde, de acuerdo con la sintaxis del flujo de bits, el desplazamiento de QP de croma a nivel de imagen se señaliza por separado para dos componentes de croma diferentes para la imagen, y en donde los valores del parámetro de control se obtienen por separado para las dos componentes de croma diferentes.
2. La memoria no volátil o dispositivo de almacenamiento de la reivindicación 1, en donde el flujo de bits incluye uno o más elementos sintácticos que indican el desplazamiento de QP de croma a nivel de imagen para la imagen y uno o más elementos sintácticos que indican el desplazamiento de QP de croma a nivel de segmento para el segmento.
3. La memoria no volátil o dispositivo de almacenamiento de cualquiera de las reivindicaciones 1 a 2, en donde la sintaxis del flujo de bits permite la señalización de diferentes desplazamientos de QP de croma a nivel de segmento para diferentes segmentos de la imagen.
4. La memoria no volátil o dispositivo de almacenamiento de cualquiera de las reivindicaciones 1 a 3, en la que las operaciones comprenden, además:
almacenar el desplazamiento de QP de croma a nivel de imagen.
5. Un sistema informático que comprende una o más unidades de procesamiento y memoria, en donde el sistema informático implementa un codificador de imagen o vídeo configurado para codificar contenido de imagen o vídeo para el que los valores del parámetro de cuantificación, QP, varían de acuerdo con una relación entre una componente de luma y componentes de croma, comprendiendo el codificador:
un controlador, configurado para establecer (920) un desplazamiento de QP de croma a nivel de imagen y un desplazamiento de QP de croma a nivel de segmento para la codificación de un segmento de una imagen;
un filtro de desbloqueo, configurado para realizar (930) el filtrado de desbloqueo de croma de al menos parte del segmento, en donde la obtención de un parámetro de control para el filtrado de desbloqueo de croma de la al menos parte del segmento considera el desplazamiento de QP de croma a nivel de imagen pero no el desplazamiento de QP de croma a nivel de segmento, dependiendo el parámetro de control de una variable qPI obtenida a partir de:
qP i = ( ( ( Q P q QPp 1 ) » 1) cqp o f fs e t )
en donde las variables QPQ y QPP representan valores de QP de luma para bloques a cada lado de un borde en la al menos parte del segmento en el que se realiza el filtrado de desbloqueo de croma, en donde la variable cqp_offset representa el desplazamiento de QP de croma a nivel de imagen;
en donde, de acuerdo con la sintaxis del flujo de bits, el desplazamiento de QP de croma a nivel de imagen se señaliza por separado para dos componentes de croma diferentes para la imagen, y en donde los valores del parámetro de control se obtienen por separado para las dos componentes de croma diferentes; y una memoria intermedia, configurada para almacenar al menos parte de un flujo de bits que incluye contenido codificado.
6. El sistema informático de la reivindicación 5, en donde el flujo de bits incluye uno o más elementos sintácticos que indican el desplazamiento de QP de croma a nivel de imagen para la imagen y uno o más elementos sintácticos que indican el desplazamiento de QP de croma a nivel de segmento para el segmento.
7. El sistema informático de cualquiera de las reivindicaciones 5 a 6, en el que la sintaxis del flujo de bits permite la señalización de diferentes desplazamientos de QP de croma a nivel de segmento para diferentes segmentos de la imagen
8. El sistema informático de cualquiera de las reivindicaciones 5 a 7, que comprende, además:
un cuantificador, configurado para cuantificar coeficientes de transformada para una o más partes del segmento de acuerdo con un QP de croma indicado por el desplazamiento de QP de croma a nivel de imagen y el desplazamiento de QP de croma a nivel de segmento.
9. Un sistema informático que comprende una o más unidades de procesamiento y memoria, en donde el sistema informático implementa un decodificador de imagen o vídeo, que comprende:
una memoria intermedia configurada, para almacenar al menos parte de un flujo de bits que incluye contenido de imagen o vídeo codificado para el que los valores del parámetro de cuantificación, QP, varían según una relación entre una componente de luma y componentes de croma;
un analizador sintáctico, configurado para analizar sintácticamente, a partir del flujo de bits, uno o más elementos sintácticos que indican un desplazamiento de QP de croma a nivel de imagen y uno o más elementos sintácticos que indican un desplazamiento de QP de croma a nivel de segmento para la decodificación de un segmento de una imagen; y
un filtro de desbloqueo, configurado para realizar el filtrado de desbloqueo de croma de al menos parte del segmento, en el que la obtención de un parámetro de control para el filtrado de desbloqueo de croma de la al menos parte del segmento considera el desplazamiento de QP de croma a nivel de imagen pero no el desplazamiento de QP de croma a nivel de segmento, dependiendo el parámetro de control de una variable qPI obtenida a partir de:
qPi = ( ( ( Q P q QPp 1 ) » 1) cqp o f f s e t )
en donde las variables QPQ y QPP representan valores de QP de luma para bloques a cada lado de un borde en la al menos parte del segmento en el que se realiza el filtrado de desbloqueo de croma, en donde la variable cqp_offset representa el desplazamiento de QP de croma a nivel de imagen; y en donde, de acuerdo con la sintaxis del flujo de bits, el desplazamiento de QP de croma a nivel de imagen se señaliza por separado para dos componentes de croma diferentes para la imagen, y en donde los valores del parámetro de control se obtienen por separado para las dos componentes de croma diferentes.
10. El sistema informático de la reivindicación 9,
en donde la sintaxis del flujo de bits permite la señalización de diferentes desplazamientos de QP de croma a nivel de segmento para diferentes segmentos de la imagen.
11. El sistema informático de la reivindicación 10, que comprende además:
un cuantificador inverso, configurado para cuantificar inversamente coeficientes de transformada para una o más partes del segmento de acuerdo con un QP de croma indicado por el desplazamiento de QP de croma a nivel de imagen y el desplazamiento de QP de croma a nivel de segmento.
ES19207170T 2012-07-02 2013-07-01 Use of chroma quantization parameter offsets in deblocking Active ES3026211T3 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261667381P 2012-07-02 2012-07-02
US201261707948P 2012-09-29 2012-09-29
US13/732,369 US9591302B2 (en) 2012-07-02 2012-12-31 Use of chroma quantization parameter offsets in deblocking

Publications (1)

Publication Number Publication Date
ES3026211T3 true ES3026211T3 (en) 2025-06-10

Family

ID=49778133

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19207170T Active ES3026211T3 (en) 2012-07-02 2013-07-01 Use of chroma quantization parameter offsets in deblocking

Country Status (14)

Country Link
US (13) US9591302B2 (es)
EP (5) EP4521750A3 (es)
JP (1) JP6272321B2 (es)
KR (1) KR102143663B1 (es)
CN (1) CN104584560B (es)
DK (1) DK3624448T3 (es)
ES (1) ES3026211T3 (es)
HR (1) HRP20250545T1 (es)
HU (1) HUE071184T2 (es)
LT (1) LT3624448T (es)
PL (1) PL3624448T3 (es)
PT (1) PT3624448T (es)
RS (1) RS66743B1 (es)
WO (1) WO2014008212A1 (es)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013064654A1 (en) * 2011-11-03 2013-05-10 Panasonic Corporation Efficient rounding for deblocking
US9414054B2 (en) 2012-07-02 2016-08-09 Microsoft Technology Licensing, Llc Control and use of chroma quantization parameter values
US9591302B2 (en) * 2012-07-02 2017-03-07 Microsoft Technology Licensing, Llc Use of chroma quantization parameter offsets in deblocking
US9485506B2 (en) 2012-09-11 2016-11-01 Texas Instruments Incorporated Method and system for constraining slice header processing overhead in video coding
JP5826730B2 (ja) * 2012-09-20 2015-12-02 株式会社ソニー・コンピュータエンタテインメント 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
US10785482B2 (en) 2012-09-24 2020-09-22 Texas Instruments Incorporated Method and system for constraining tile processing overhead in video coding
HK1217846A1 (zh) * 2013-04-05 2017-01-20 夏普株式会社 利用颜色位深缩放的视频压缩
US9538190B2 (en) * 2013-04-08 2017-01-03 Qualcomm Incorporated Intra rate control for video encoding based on sum of absolute transformed difference
EP2854404B1 (en) * 2013-09-09 2024-11-20 Apple Inc. Chroma quantization in video coding
US9510002B2 (en) 2013-09-09 2016-11-29 Apple Inc. Chroma quantization in video coding
KR102275639B1 (ko) 2013-10-14 2021-07-08 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 영상 코딩 및 디코딩에 대한 기본 색상 인덱스 맵 모드의 특징
WO2015076140A1 (ja) * 2013-11-20 2015-05-28 京セラドキュメントソリューションズ株式会社 画像圧縮伸張装置および画像形成装置
US10622522B2 (en) * 2014-09-05 2020-04-14 Theodore Lowes LED packages with chips having insulated surfaces
CN105874795B (zh) 2014-09-30 2019-11-29 微软技术许可有限责任公司 在波前并行处理被启用时对图片内预测模式的规则
BR112017006461B1 (pt) * 2014-10-03 2024-04-30 Nec Corporation Dispositivo e método de decodificação de vídeo
WO2016056398A1 (ja) * 2014-10-06 2016-04-14 ソニー株式会社 画像処理装置および方法
EP3010231A1 (en) 2014-10-17 2016-04-20 Thomson Licensing Method for color mapping a video signal based on color mapping data and method of encoding a video signal and color mapping data and corresponding devices
CN107852512A (zh) * 2015-06-07 2018-03-27 夏普株式会社 基于亮度转换函数或视频色彩分量值的优化视频编码的系统及方法
CN106664405B (zh) * 2015-06-09 2020-06-09 微软技术许可有限责任公司 用调色板模式对经逸出编码的像素的稳健编码/解码
US10110926B2 (en) 2015-10-15 2018-10-23 Cisco Technology, Inc. Efficient loop filter for video codec
US10277921B2 (en) * 2015-11-20 2019-04-30 Nvidia Corporation Hybrid parallel decoder techniques
EP3244617A1 (en) * 2016-05-13 2017-11-15 Thomson Licensing A method and device for deblocking filtering a boundary within an intra predicted block
WO2018025211A1 (en) * 2016-08-03 2018-02-08 Amimon Ltd. Successive refinement video compression
US10602111B2 (en) 2016-09-06 2020-03-24 Apple Inc. Auto white balance control algorithm based upon flicker frequency detection
US20180091812A1 (en) * 2016-09-23 2018-03-29 Apple Inc. Video compression system providing selection of deblocking filters parameters based on bit-depth of video data
WO2018066241A1 (en) * 2016-10-03 2018-04-12 Sharp Kabushiki Kaisha Systems and methods for applying deblocking filters to reconstructed video data
WO2018066982A1 (ko) 2016-10-04 2018-04-12 김기백 영상 데이터 부호화/복호화 방법 및 장치
US12587689B2 (en) 2016-10-04 2026-03-24 B1 Institute Of Image Technology, Inc. Method and apparatus for reconstructing 360-degree image according to projection format
US10455254B2 (en) * 2016-11-10 2019-10-22 Mediatek Inc. Method and apparatus of video coding
JP6985287B2 (ja) 2016-11-28 2021-12-22 日本放送協会 符号化装置、復号装置、符号化方法、及び復号方法
US11070818B2 (en) * 2017-07-05 2021-07-20 Telefonaktiebolaget Lm Ericsson (Publ) Decoding a block of video samples
EP3425911A1 (en) 2017-07-06 2019-01-09 Thomson Licensing A method and a device for picture encoding and decoding
US11019339B2 (en) * 2017-07-12 2021-05-25 Futurewei Technologies, Inc. Fractional quantization parameter offset in video compression
US10778978B2 (en) * 2017-08-21 2020-09-15 Qualcomm Incorporated System and method of cross-component dynamic range adjustment (CC-DRA) in video coding
US10812798B2 (en) 2017-10-19 2020-10-20 Qualcomm Incorporated Chroma quantization parameter (QP) offset
US10819965B2 (en) * 2018-01-26 2020-10-27 Samsung Electronics Co., Ltd. Image processing device and method for operating image processing device
CN111937383B (zh) * 2018-03-30 2023-08-01 交互数字Vc控股公司 视频编码和解码中的色度量化参数调整
US11259023B2 (en) * 2018-04-12 2022-02-22 Qualcomm Incorporated Harmonization of transform-based quantization and dynamic range adjustment scale derivation in video coding
EP3868095A4 (en) * 2018-11-26 2021-12-15 Huawei Technologies Co., Ltd. APPARATUS AND METHOD FOR DERIVATING A CHROMINANCE QUANTIFICATION PARAMETER
EP3700205A1 (en) * 2019-02-19 2020-08-26 Nokia Technologies Oy Quantization parameter derivation for cross-channel residual encoding and decoding
WO2020182116A1 (en) * 2019-03-10 2020-09-17 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods using an adaptive loop filter
CN113767629A (zh) * 2019-04-26 2021-12-07 华为技术有限公司 用于指示色度量化参数映射函数的方法和装置
CN113906763B (zh) 2019-05-05 2024-01-12 北京字节跳动网络技术有限公司 用于视频编解码的色度去方块协调
MY206259A (en) 2019-05-28 2024-12-06 Dolby Laboratories Licensing Corp Quantization parameter signaling
KR102594690B1 (ko) * 2019-06-11 2023-10-26 엘지전자 주식회사 크로마 양자화 파라미터 데이터 기반 영상 디코딩 방법 및 그 장치
CN113994683A (zh) * 2019-06-21 2022-01-28 华为技术有限公司 用于色度量化控制的编码器、解码器和对应方法
US11418787B2 (en) 2019-06-28 2022-08-16 Qualcomm Incorporated Chroma delta QP in video coding
US11381819B2 (en) 2019-07-05 2022-07-05 Qualcomm Incorporated Chroma delta quantization parameter (QP) in video coding
CN119653085A (zh) * 2019-08-22 2025-03-18 Lg 电子株式会社 图像解码方法、图像编码方法和用于图像数据的传输方法
JP7318110B2 (ja) * 2019-08-22 2023-07-31 エルジー エレクトロニクス インコーポレイティド クロマ量子化パラメータを使用する画像デコード方法及びその装置
AU2020335790B2 (en) 2019-08-23 2023-05-18 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for performing chroma deblocking for blocks which use joint chroma coding
CN114342369B (zh) * 2019-09-02 2025-07-18 北京字节跳动网络技术有限公司 用于视频编解码的色度去方块调谐
JPWO2021045162A1 (es) 2019-09-06 2021-03-11
KR102799921B1 (ko) 2019-09-14 2025-04-25 바이트댄스 아이엔씨 크로마 디블로킹 필터링을 위한 양자화 파라미터
KR20260112255A (ko) 2019-09-20 2026-07-16 알리바바 그룹 홀딩 리미티드 비디오 처리에서 양자화 파라미터 시그널링
KR20250057134A (ko) * 2019-09-23 2025-04-28 후아웨이 테크놀러지 컴퍼니 리미티드 색차 양자화 파라미터 시그널링을 위한 방법 및 장치
CN114424554B (zh) * 2019-09-23 2024-04-09 华为技术有限公司 色度qp偏移表指示和推导的方法和装置
CN114556945A (zh) * 2019-09-23 2022-05-27 Vid拓展公司 用于双向光流的切换逻辑
WO2021072177A1 (en) 2019-10-09 2021-04-15 Bytedance Inc. Cross-component adaptive loop filtering in video coding
KR20220073746A (ko) 2019-10-14 2022-06-03 바이트댄스 아이엔씨 비디오 처리에서 크로마 양자화 파라미터 사용
CN119893101A (zh) * 2019-10-28 2025-04-25 Lg电子株式会社 图像编码/解码方法和用于发送比特流的方法
EP4055827A4 (en) 2019-12-09 2023-01-18 ByteDance Inc. USE OF QUANTIZATION GROUPS IN VIDEO CODING
WO2021121419A1 (en) 2019-12-19 2021-06-24 Beijing Bytedance Network Technology Co., Ltd. Interaction between adaptive color transform and quantization parameters
WO2021134072A1 (en) * 2019-12-27 2021-07-01 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of video coding in 4:4:4 chroma format
CN112544079A (zh) * 2019-12-31 2021-03-23 北京大学 视频编解码的方法和装置
CN114902657B (zh) 2019-12-31 2025-06-13 字节跳动有限公司 视频编解码中的自适应颜色变换
WO2021136555A1 (en) 2020-01-05 2021-07-08 Beijing Bytedance Network Technology Co., Ltd. Use of offsets with adaptive colour transform coding tool
CN114982237B (zh) 2020-01-14 2026-08-04 抖音视界(北京)有限公司 视频编解码中量化参数的信令通知
CN114946180B (zh) * 2020-01-15 2024-07-09 抖音视界(北京)有限公司 使用量化参数信息的去方块滤波
WO2021143896A1 (en) 2020-01-18 2021-07-22 Beijing Bytedance Network Technology Co., Ltd. Adaptive colour transform in image/video coding
CN115023953A (zh) * 2020-02-04 2022-09-06 华为技术有限公司 指示高级语法的编码器、解码器以及对应方法
KR20210104592A (ko) * 2020-02-17 2021-08-25 현대자동차주식회사 크로마 신호의 리샘플링에 기반하는 영상 부호화 및 복호화
CN120186349A (zh) * 2020-02-21 2025-06-20 阿里巴巴(中国)有限公司 计算机实现的编码及解码方法、计算机可读存储介质
KR102898174B1 (ko) * 2020-02-26 2025-12-09 에이치에프아이 이노베이션 인크. 이미지 또는 비디오 프로세싱 시스템에서의 루프 필터 파라미터 시그널링 방법 및 장치
MX2022010749A (es) * 2020-03-16 2022-09-23 Interdigital Vc Holdings France Se?alizacion de presencia de desplazamiento de croma en codificacion de video.
WO2021201215A1 (ja) * 2020-04-02 2021-10-07 日本放送協会 デブロッキングフィルタ制御装置及びプログラム
US11652996B2 (en) * 2021-05-25 2023-05-16 Tencent America LLC Method and apparatus for video coding
US11665351B2 (en) 2021-06-30 2023-05-30 Tencent America LLC Method and apparatus for video coding
EP4383722A4 (en) * 2021-08-06 2024-11-20 Panasonic Intellectual Property Corporation of America ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD AND DECODING METHOD
CN114584834B (zh) * 2022-01-27 2024-02-13 百果园技术(新加坡)有限公司 视频质量优化方法、装置、设备和存储介质
US20240414339A1 (en) * 2023-06-09 2024-12-12 Qualcomm Incorporated Quantization offsets for dependent quantization in video coding

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030112863A1 (en) 2001-07-12 2003-06-19 Demos Gary A. Method and system for improving compressed image chroma information
US7319415B2 (en) 2002-05-01 2008-01-15 Thomson Licensing Chroma deblocking filter
WO2004040914A1 (en) 2002-11-01 2004-05-13 Nokia Corporation A method and device for transcoding images
US7227901B2 (en) * 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
US8625680B2 (en) * 2003-09-07 2014-01-07 Microsoft Corporation Bitstream-controlled post-processing filtering
US8014450B2 (en) 2003-09-07 2011-09-06 Microsoft Corporation Flexible range reduction
JP4407249B2 (ja) * 2003-11-18 2010-02-03 ソニー株式会社 データ処理装置およびその方法と符号化装置、その方法及びプログラム
KR100647295B1 (ko) * 2004-11-10 2006-11-23 삼성전자주식회사 비디오 디코더에서의 인접 정보 처리 장치 및 방법과 그방법을 수행하기 위한 프로그램이 저장된 기록 매체
US7873105B2 (en) 2005-04-01 2011-01-18 Broadcom Corporation Hardware implementation of optimized single inverse quantization engine for a plurality of standards
US8681867B2 (en) 2005-10-18 2014-03-25 Qualcomm Incorporated Selective deblock filtering techniques for video coding based on motion compensation resulting in a coded block pattern value
JP4769605B2 (ja) * 2006-03-17 2011-09-07 富士通株式会社 動画像符号装置及び方法
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
US9445128B2 (en) * 2006-12-08 2016-09-13 Freescale Semiconductor, Inc. System and method of determining deblocking control flag of scalable video system for indicating presentation of deblocking parameters for multiple layers
US9961372B2 (en) 2006-12-08 2018-05-01 Nxp Usa, Inc. Adaptive disabling of deblock filtering based on a content characteristic of video information
US8634462B2 (en) 2007-03-13 2014-01-21 Matthias Narroschke Quantization for hybrid video coding
US8204129B2 (en) * 2007-03-27 2012-06-19 Freescale Semiconductor, Inc. Simplified deblock filtering for reduced memory access and computational complexity
US8724698B2 (en) 2007-04-13 2014-05-13 Apple Inc. Method and system for video rate control
JP2009004920A (ja) * 2007-06-19 2009-01-08 Panasonic Corp 画像符号化装置および画像符号化方法
US8150187B1 (en) 2007-11-29 2012-04-03 Lsi Corporation Baseband signal quantizer estimation
JP5007259B2 (ja) * 2008-03-27 2012-08-22 ルネサスエレクトロニクス株式会社 画像符号化装置
US8199823B2 (en) * 2008-04-15 2012-06-12 Sony Corporation Estimation of B frame average rate quantization parameter (QP) in a group of pictures (GOP)
US8189677B2 (en) * 2008-04-15 2012-05-29 Sony Corporation Estimation of P frame average rate quantization parameter (QP) in a group of pictures (GOP)
US8279924B2 (en) 2008-10-03 2012-10-02 Qualcomm Incorporated Quantization parameter selections for encoding of chroma and luma video blocks
JP5094760B2 (ja) 2009-02-13 2012-12-12 三菱電機株式会社 動画像符号化装置
KR101060495B1 (ko) * 2009-03-19 2011-08-30 주식회사 코아로직 인코딩 장치와 방법 및 그 인코딩 장치를 포함한 멀티미디어 장치
US20110274162A1 (en) 2010-05-04 2011-11-10 Minhua Zhou Coding Unit Quantization Parameters in Video Coding
JP2011250400A (ja) 2010-04-27 2011-12-08 Panasonic Corp 動画像符号化装置及び動画像符号化方法
JP2011259362A (ja) * 2010-06-11 2011-12-22 Sony Corp 画像処理装置および方法
US9462280B2 (en) * 2010-12-21 2016-10-04 Intel Corporation Content adaptive quality restoration filtering for high efficiency video coding
US9363509B2 (en) * 2011-03-03 2016-06-07 Electronics And Telecommunications Research Institute Method for determining color difference component quantization parameter and device using the method
BR122020013607B1 (pt) * 2011-03-11 2023-10-24 Sony Corporation Aparelho e método de processamento de imagem
US9854275B2 (en) 2011-06-25 2017-12-26 Qualcomm Incorporated Quantization in video coding
CN103797796B (zh) * 2011-09-08 2017-04-19 谷歌技术控股有限责任公司 用于系数矩形块的量化和去量化的方法和装置
EP2737704B1 (en) * 2011-09-13 2020-02-19 HFI Innovation Inc. Method and apparatus for reduction of deblocking filter
US9485521B2 (en) * 2011-09-19 2016-11-01 Lg Electronics Inc. Encoding and decoding image using sample adaptive offset with start band indicator
US8976857B2 (en) * 2011-09-23 2015-03-10 Microsoft Technology Licensing, Llc Quality-based video compression
US9185404B2 (en) * 2011-10-07 2015-11-10 Qualcomm Incorporated Performing transform dependent de-blocking filtering
US9510020B2 (en) * 2011-10-20 2016-11-29 Qualcomm Incorporated Intra pulse code modulation (IPCM) and lossless coding mode deblocking for video coding
US9167269B2 (en) * 2011-10-25 2015-10-20 Qualcomm Incorporated Determining boundary strength values for deblocking filtering for video coding
US9538200B2 (en) * 2012-01-19 2017-01-03 Qualcomm Incorporated Signaling of deblocking filter parameters in video coding
CN106131560B (zh) * 2012-01-20 2019-10-11 维洛媒体国际有限公司 解码装置和解码方法
US9451258B2 (en) * 2012-04-03 2016-09-20 Qualcomm Incorporated Chroma slice-level QP offset and deblocking
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US9031137B2 (en) * 2012-05-03 2015-05-12 Texas Instruments Incorporated Signaling signed band offset values for sample adaptive offset (SAO) filtering in video coding
US9414054B2 (en) 2012-07-02 2016-08-09 Microsoft Technology Licensing, Llc Control and use of chroma quantization parameter values
US9591302B2 (en) 2012-07-02 2017-03-07 Microsoft Technology Licensing, Llc Use of chroma quantization parameter offsets in deblocking
RU2667719C1 (ru) * 2012-12-18 2018-09-24 Сони Корпорейшн Устройство обработки изображения и способ обработки изображения
KR102063385B1 (ko) * 2013-01-30 2020-01-07 인텔 코포레이션 차세대 비디오용 콘텐츠 적응적 엔트로피 코딩
GB2512826B (en) * 2013-04-05 2017-05-10 Canon Kk Method and device for determining the value of a quantization parameter
US10708588B2 (en) * 2013-06-19 2020-07-07 Apple Inc. Sample adaptive offset control
US9510002B2 (en) * 2013-09-09 2016-11-29 Apple Inc. Chroma quantization in video coding
US9843812B2 (en) * 2014-05-23 2017-12-12 Sony Corporation Video transmission system with color gamut partitioning and method of operation thereof
US10038919B2 (en) * 2014-05-29 2018-07-31 Apple Inc. In loop chroma deblocking filter
US9807410B2 (en) * 2014-07-02 2017-10-31 Apple Inc. Late-stage mode conversions in pipelined video encoders
EP3205098B1 (en) * 2014-10-06 2020-01-08 Telefonaktiebolaget LM Ericsson (publ) Coding and deriving quantization parameters
PL4283989T3 (pl) * 2018-04-01 2026-05-11 Lg Electronics Inc. Urządzenie do kodowania obrazu i służący do tego sposób oparty na wyprowadzeniu parametru kwantyzacji

Also Published As

Publication number Publication date
US11943442B2 (en) 2024-03-26
US12506869B2 (en) 2025-12-23
US20240314314A1 (en) 2024-09-19
US20210211669A1 (en) 2021-07-08
EP2867761B1 (en) 2019-11-27
EP3624448B1 (en) 2025-02-19
US20170353725A1 (en) 2017-12-07
JP6272321B2 (ja) 2018-01-31
RS66743B1 (sr) 2025-05-30
US10097832B2 (en) 2018-10-09
DK3624448T3 (da) 2025-05-19
US9781421B2 (en) 2017-10-03
US20230156194A1 (en) 2023-05-18
PT3624448T (pt) 2025-05-22
LT3624448T (lt) 2025-06-10
EP4521750A3 (en) 2025-05-21
WO2014008212A1 (en) 2014-01-09
CN104584560B (zh) 2018-04-10
EP4521749A2 (en) 2025-03-12
US20250159170A1 (en) 2025-05-15
US10972735B2 (en) 2021-04-06
US20250159173A1 (en) 2025-05-15
EP3624448A1 (en) 2020-03-18
CN104584560A (zh) 2015-04-29
EP4521750A2 (en) 2025-03-12
US20250159171A1 (en) 2025-05-15
HRP20250545T1 (hr) 2025-06-20
KR20150035810A (ko) 2015-04-07
US10313670B2 (en) 2019-06-04
US20140003498A1 (en) 2014-01-02
HUE071184T2 (hu) 2025-08-28
EP2867761A1 (en) 2015-05-06
US10652542B2 (en) 2020-05-12
US11595651B2 (en) 2023-02-28
US9591302B2 (en) 2017-03-07
US20190289291A1 (en) 2019-09-19
US20190098307A1 (en) 2019-03-28
EP4521751A2 (en) 2025-03-12
JP2015523029A (ja) 2015-08-06
EP4521751A3 (en) 2025-05-21
US20170134728A1 (en) 2017-05-11
KR102143663B1 (ko) 2020-08-11
US20200228803A1 (en) 2020-07-16
EP4521749A3 (en) 2025-05-21
US20250159172A1 (en) 2025-05-15
PL3624448T3 (pl) 2025-06-16

Similar Documents

Publication Publication Date Title
US11943442B2 (en) Use of chroma quantization parameter offsets in deblocking
US12348719B2 (en) Control and use of chroma quantization parameter values
HK40123172A (en) Use of chroma quantization parameter offsets in deblocking
HK40123174A (en) Use of chroma quantization parameter offsets in deblocking