ES2788757T3 - Procedimiento, aparato y sistema para codificar y decodificar las unidades de transformada de una unidad de codificación - Google Patents

Procedimiento, aparato y sistema para codificar y decodificar las unidades de transformada de una unidad de codificación Download PDF

Info

Publication number
ES2788757T3
ES2788757T3 ES13841668T ES13841668T ES2788757T3 ES 2788757 T3 ES2788757 T3 ES 2788757T3 ES 13841668 T ES13841668 T ES 13841668T ES 13841668 T ES13841668 T ES 13841668T ES 2788757 T3 ES2788757 T3 ES 2788757T3
Authority
ES
Spain
Prior art keywords
transform
chroma
coded block
residual
transform unit
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
ES13841668T
Other languages
English (en)
Inventor
Christopher James Rosewarne
Volodymyr Kolesnikov
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Application granted granted Critical
Publication of ES2788757T3 publication Critical patent/ES2788757T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

Procedimiento (1100) de decodificación a partir de un flujo de bits de vídeo (312) de una unidad (952) de transformada de una trama de vídeo (510) que está en un formato 4:2:2 y que contiene muestras residuales de croma (456), conteniendo la unidad (952) de transformada dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de dos canales de croma, comprendiendo el procedimiento: determinar un tamaño (1102) de transformada de la unidad (952) de transformada para los dos canales de croma, determinándose el tamaño de transformada según un valor de profundidad de transformada de la unidad (952) de transformada y un tamaño de una unidad de codificación que contiene un árbol (630) de transformada que incluye la unidad (952) de transformada y un nodo padre que tiene un indicador de bloque codificado que indica la presencia de, como mínimo, un coeficiente distinto de cero para una zona que incluye la unidad de transformada, en el que el valor de profundidad corresponde a un nivel jerárquico de la unidad (952) de transformada dentro del árbol (630) de transformada que depende de un indicador de transformada de fraccionamiento que se codifica en el flujo de bits de vídeo (312) si el valor de profundidad de transformada de la unidad (952) de transformada es menor que una profundidad de transformada máxima permitida; decodificar (1104) dos valores (942, 944) de indicador de bloque codificado para un primero de los dos canales de croma de la unidad (952) de transformada y dos valores (946, 948) de indicador de bloque codificado para el segundo de los dos canales de croma de la unidad (952) de transformada a partir del flujo de bits de vídeo (312), en el que la unidad (952) de transformada tiene dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los canales de croma, y cada valor de indicador de bloque codificado de los dos valores (942, 944, 946, 948) de indicador de bloque codificado corresponde a una matriz de coeficientes residuales de croma de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962); decodificar (1106) a partir del flujo de bits de vídeo (312) cada una de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los canales de croma, según un valor de indicador de bloque codificado correspondiente de los dos valores (942, 944, 946, 948) de indicador de bloque codificado; seleccionar (1108) una transformada inversa cuadrada para las matrices de coeficientes residuales de croma decodificadas (956, 958, 960, 962), seleccionándose la transformada inversa cuadrada a partir de un conjunto predeterminado de transformadas inversas cuadradas, según el tamaño de transformada determinado; y aplicar (1110) la transformada inversa cuadrada seleccionada a cada una de las matrices de coeficientes residuales de croma decodificadas (956, 958, 960, 962) para producir las muestras residuales de croma (456) para el canal de croma de la unidad (952) de transformada.

Description

DESCRIPCIÓN
Procedimiento, aparato y sistema para codificar y decodificar las unidades de transformada de una unidad de codificación
REFERENCIA A LA(S) SOLICITUD(ES) RELACIONADA(S)
Esta solicitud reivindica prioridad de la Patente australiana n° 2012232992, presentada el 28 de septiembre de 2012. SECTOR TÉCNICO
La presente invención se refiere en general a procesamiento de señales de vídeo digitales y, en particular, a un procedimiento, un aparato y un sistema para codificar y decodificar coeficientes residuales de una unidad de transformada (TU), en los que la unidad de transformada (TU) incluye una o varias unidades de transformada (TU) y se puede configurar para múltiples formatos de croma, incluyendo un formato de croma 4:2:2.
ESTADO DE LA TÉCNICA ANTERIOR
Actualmente existen muchas aplicaciones para codificación de vídeo, incluyendo aplicaciones para transmisión y almacenamiento de datos de vídeo. Se han desarrollado asimismo muchos estándares de codificación de vídeo y otros están en desarrollo actualmente. Recientes desarrollos en la estandarización de codificación de vídeo han conducido a la formación de un grupo denominado el “equipo conjunto colaborativo sobre codificación de vídeo” (JCT-VC). El equipo conjunto colaborativo sobre codificación de vídeo (JCT-VC) incluye miembros del grupo de estudio 16, cuestión 6 (SG16/Q6) del sector de estandarización sobre telecomunicación (ITU-T) de la Unión Internacional de Telecomunicaciones (ITU), conocido como grupo de expertos de codificación de vídeo (VCEG), y miembros de las organizaciones internacionales de estandarización/comisión electrotécnica internacional, comité técnico conjunto 1/subcomité 29/grupo de trabajo 11 (ISO/IEC JTC1/SC29/WG11), conocido asimismo como el grupo de expertos de imágenes en movimiento (MPEG).
El equipo conjunto colaborativo sobre codificación de vídeo (JCT-VC) tiene el objetivo de producir un nuevo estándar de codificación de vídeo para mejorar significativamente un estándar de codificación de vídeo existente en la actualidad, conocido como “H.264/MPEG-4 AVC”. El estándar H.264/MPEG-4 AVC es en sí mismo una gran mejora sobre estándares de codificación de vídeo anteriores, tales como MPEG-4 e ITU-T H.263. El nuevo estándar de codificación de vídeo en desarrollo se ha denominado “codificación de vídeo de alta eficiencia (HEVC)”. El equipo conjunto colaborativo sobre codificación de vídeo JCT-VC está considerando así mismo desafíos de implementación que surgen de la tecnología propuesta para la codificación de vídeo de alta eficiencia (HEVC) que crean dificultades cuando se modifica la escala de implementaciones del estándar para funcionar a altas resoluciones en tiempo real o altas velocidades de trama. Un desafío de implementación es la complejidad y el tamaño de la lógica utilizada para soportar múltiples tamaños de “transformada” para transformar datos de vídeo entre el dominio de frecuencia y el dominio espacial.
El documento “HM7: High Efficiency Video Coding (HVEC) Test Model 7 Encoder Description” (documento JCTVC-I102 del equipo conjunto colaborativo sobre codificación de vídeo) describe información general sobre la codificación de vídeo de alta eficiencia y una descripción del lado de codificador para el modelo de prueba 7 (HM7). El documento “A quick overview of HVEC” (Touadj Ebrahimi, 16 de diciembre de 2011, páginas 1-31, XP055072335) da a conocer un resumen de funcionalidades y una arquitectura de codificación para el estándar HVEC a fecha de diciembre de 2011. El documento “BoG report: Extended chroma formats” (Flynn D, JCTVC-J0581, 19 de julio de 2012 describe temas sobre la selección de material de prueba, condiciones de prueba y presentación en profundidad de las propuestas JCTVC-J0191 y JCTVC-0357 que dan a conocer modelos de software para formatos de croma 4:2:2 y 4:4:4. La publicación de Patente US 2012/0183080 describe un procedimiento y un aparato para una estructura de partición de unidades de transformada de baja complejidad para HVEC.
El documento “Extension of HM7 to Support Additional Chroma Formats” (documento JCTVC-J0191 del equipo conjunto colaborativo sobre codificación de vídeo) describe un modelo basado en HM7.0 que proporciona soporte para formatos de croma 4:2:0, 4:4:4 y 4:0:0.
CARACTERÍSTICAS
Un objetivo de la presente invención es superar sustancialmente, o, como mínimo, paliar, una o varias desventajas de disposiciones existentes.
Según un aspecto de la presente invención se da a conocer un procedimiento de decodificación de una unidad de transformada, según la reivindicación 1, y un procedimiento de codificación de una unidad de transformada, según la reivindicación 2.
Según otro aspecto de la presente invención se da a conocer un decodificador de vídeo, según la reivindicación 10.
Según otro aspecto de la presente invención se da a conocer un programa informático, según la reivindicación 15. Según otro aspecto de la presente invención se da a conocer un codificador de vídeo, según la reivindicación 20. Según un aspecto adicional de la presente invención se da a conocer un programa informático, según la reivindicación 21.
Se dan a conocer asimismo otros aspectos.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
A continuación se describirá, como mínimo, una realización de la presente invención haciendo referencia a los siguientes dibujos, en los que:
la figura 1 es un diagrama de bloques esquemático que muestra un sistema de codificación y decodificación de vídeo;
las figuras 2A y 2B forman un diagrama de bloques esquemático de un sistema informático de propósito general en el que se pueden poner en práctica uno o ambos de los sistemas de codificación y decodificación de vídeo de la figura 1;
la figura 3 es un diagrama de bloques esquemático que muestra módulos funcionales de un codificador de vídeo; la figura 4 es un diagrama de bloques esquemático que muestra módulos funcionales de un decodificador de vídeo; las figuras 5A y 5B ilustran esquemáticamente formatos de croma para representar datos de trama;
la figura 6A es una representación esquemática de un árbol de transformada a modo de ejemplo de una unidad de codificación;
la figura 6B es una representación esquemática del árbol de transformada a modo de ejemplo dispuesto en una cuadrícula de muestras de luma;
la figura 6C es una representación esquemática del árbol de transformada a modo de ejemplo dispuesto en una cuadrícula de muestras de croma;
la figura 7 es una ilustración esquemática de una estructura de datos que representa un canal de luma del árbol de transformada a modo de ejemplo;
la figura 8 ilustra una estructura de datos que representa un canal de croma del árbol de transformada a modo de ejemplo;
las figuras 9A y 9B muestran esquemáticamente una estructura de flujo de bits que codifica el árbol de transformada a modo de ejemplo;
las figuras 9C y 9D muestran esquemáticamente una estructura de flujo de bits alternativa que codifica el árbol de transformada a modo de ejemplo;
la figura 10 es un diagrama de flujo esquemático que muestra un procedimiento para codificar el árbol de transformada a modo de ejemplo;
la figura 11 es un diagrama de flujo esquemático que muestra un procedimiento para decodificar el árbol de transformada a modo de ejemplo; y
las figuras 12A a 12C muestran esquemáticamente patrones de exploración residual de una unidad de transformada de 4x8.
DESCRIPCIÓN DETALLADA QUE INCLUYE EL MEJOR MODO
Cuando se hace referencia en uno cualquiera o varios de los dibujos adjuntos a etapas y/o características, que tienen los mismos numerales de referencia, para los fines de esta descripción esas etapas y/o características tienen la misma función o funciones u operación u operaciones, a menos que se presente la intención contraria.
La figura 1 es un diagrama de bloques esquemático que muestra módulos de función de un sistema de codificación y decodificación de vídeo 100 que puede utilizar técnicas para codificar elementos de sintaxis representativos de subdivisión deducida de unidades de transformada para dar múltiples transformadas para un canal de croma. El sistema 100 incluye un dispositivo 110 de origen y un dispositivo de destino 130. Se utiliza un canal de comunicación 120 para comunicar información de vídeo codificada desde el dispositivo 110 de origen hasta el dispositivo de destino 130. En algunos casos, el dispositivo 110 de origen y el dispositivo de destino 130 pueden comprender teléfonos móviles respectivos, en cuyo caso el canal de comunicación 120 es un canal inalámbrico. En otros casos, el dispositivo 110 de origen y el dispositivo de destino 130 pueden comprender equipos de videoconferencia, en cuyo caso el canal de comunicación 120 es normalmente un canal cableado, tal como una conexión de internet. Además, el dispositivo 110 de origen y el dispositivo de destino 130 pueden comprender cualquiera de una amplia gama de dispositivos, incluyendo dispositivos que soportan radiodifusiones de televisión por el aire, aplicaciones de televisión por cable, aplicaciones de vídeo por internet e incluyendo aplicaciones en las que el vídeo codificado se capta en algún medio de almacenamiento o servidor de archivos.
Tal como se ilustra, el dispositivo 110 de origen incluye una fuente de vídeo 112, un codificador de vídeo 114 y un transmisor 116. La fuente de vídeo 112 comprende normalmente una fuente de datos de trama de vídeo captada, tal como un sensor de obtención de imágenes, una secuencia de vídeo captada previamente almacenada en un medio de grabación no transitorio o una señal de vídeo procedente de un sensor de obtención de imágenes remoto. Ejemplos de dispositivos 110 de origen que pueden incluir un sensor de obtención de imágenes como la fuente de vídeo 112 incluyen teléfonos inteligentes, grabadoras de vídeo y videocámaras de red. El codificador de vídeo 114 convierte los datos de trama captados a partir de la fuente de vídeo 112 en datos de vídeo codificados y se describirá adicionalmente haciendo referencia a la figura 3. Los datos de vídeo codificados se transmiten normalmente mediante el transmisor 116 sobre el canal de comunicación 120 como información de vídeo codificada. Es posible que los datos de vídeo codificados sean almacenados en algún dispositivo de almacenamiento, tal como una memoria “Flash” o una unidad de disco duro, hasta que se transmiten posteriormente sobre el canal de comunicación 120.
El dispositivo de destino 130 incluye un receptor 132, un decodificador de vídeo 134 y un dispositivo de visualización 136. El receptor 132 recibe información de vídeo codificada desde el canal de comunicación 120 y pasa datos de vídeo recibidos al decodificador de vídeo 134. El decodificador de vídeo 134 emite a continuación datos de trama decodificados al dispositivo de visualización 136. Los ejemplos del dispositivo de visualización 136 incluyen un tubo de rayos catódicos, una pantalla de cristal líquido, tal como en teléfonos inteligentes, ordenadores de tableta, monitores de ordenador o en televisiones independientes. Es posible asimismo implementar la funcionalidad de cada uno del dispositivo 110 de origen y el dispositivo de destino 130 en un dispositivo individual.
Independientemente de los dispositivos a modo de ejemplo mencionados anteriormente, cada uno del dispositivo 110 de origen y el dispositivo de destino 130 puede estar configurado dentro de un sistema informático de propósito general, normalmente mediante una combinación de componentes de hardware y software. La figura 2A ilustra un sistema informático 200 de este tipo, que incluye: un módulo informático 201; dispositivos de entrada tales como un teclado 202, un dispositivo de puntero de ratón 203, un escáner 226, una cámara 227, que puede estar configurada como la fuente de vídeo 112, y un micrófono 280; y dispositivos de salida incluyendo una impresora 215, un dispositivo de visualización 214, que puede estar configurado como el dispositivo de visualización 136, y altavoces 217. Un dispositivo transceptor modulador-desmodulador (módem) externo 216 puede ser utilizado por el módulo informático 201 para comunicar hacia y desde una red de comunicaciones 220 mediante una conexión 221. La red de comunicaciones 220, que puede representar el canal de comunicación 120, puede ser una red de área amplia (WAN), tal como internet, una red de telecomunicaciones celulares o una WAN privada. Cuando la conexión 221 es una línea telefónica, el módem 216 puede ser un módem de “marcación” tradicional. Alternativamente, cuando la conexión 221 es una conexión de alta capacidad (por ejemplo, cable), el módem 216 puede ser un módem de banda ancha. Se puede utilizar asimismo un módem inalámbrico para la conexión inalámbrica con la red de comunicaciones 220. El dispositivo transceptor 216 puede proporcionar la funcionalidad del transmisor 116 y el receptor 132 y el canal de comunicación 120 se puede implementar en la conexión 221.
El módulo informático 201 incluye normalmente, como mínimo, una unidad de procesador 205 y una unidad de memoria 206. Por ejemplo, la unidad de memoria 206 puede tener memoria de acceso aleatorio de semiconductor (RAM) y memoria de sólo lectura de semiconductor (ROM). El módulo informático 201 incluye asimismo varias interfaces de entrada/salida (E/S) incluyendo: una interfaz de audio-vídeo 207 que se acopla con el elemento de visualización de vídeo 214, los altavoces 217 y el micrófono 280; una interfaz de E/S 213 que se acopla con el teclado 202, el ratón 203, el escáner 226, la cámara 227 y opcionalmente una palanca de mando u otro dispositivo de interfaz humana (no ilustrado); y una interfaz 208 para el módem externo 216 y la impresora 215. En algunas implementaciones, el módem 216 puede estar incorporado dentro del módulo informático 201, por ejemplo dentro de la interfaz 208. El módulo informático 201 tiene asimismo una interfaz 211 de red local, que permite el acoplamiento del sistema informático 200 mediante una conexión 223 a una red de comunicaciones de área local 222, conocida como red de área local (LAN). Tal como se ilustra en la figura 2A, la red de comunicaciones local 222 se puede acoplar asimismo a la red amplia 220 mediante una conexión 224, lo cual incluirá normalmente un denominado dispositivo de “cortafuegos” o dispositivo de funcionalidad similar. La interfaz 211 de red local puede comprender una tarjeta de circuito de Ethernet™, un dispositivo inalámbrico Bluetooth™ o un dispositivo inalámbrico IEEE 802.11; sin embargo, se pueden poner en práctica muchos otros tipos de interfaces para la interfaz 211. La interfaz 211 de red local puede proporcionar asimismo la funcionalidad del transmisor 116 y el receptor 132 y el canal de comunicación 120 se puede implementar asimismo en la red de comunicaciones local 222.
Las interfaces de E/S 208 y 213 pueden proporcionar cualquiera o ambas de conectividad en serie o en paralelo, implementándose normalmente la primera, según los estándares de bus serie universal (USB) y teniendo los conectores de USB correspondientes (no ilustrados). Se proporcionan dispositivos de almacenamiento 209 e incluyen normalmente una unidad de disco duro (HDD) 210. Se pueden utilizar asimismo otros dispositivos de almacenamiento tales como una unidad de disco flexible y una unidad de cinta magnética (no ilustrada). Se proporciona normalmente una unidad de disco óptico 212 para actuar como fuente no volátil de datos. Se pueden utilizar dispositivos de memoria portátiles, tales como discos ópticos (por ejemplo CD-ROM, DVD, Blu-ray Disc™), USB-RAM, discos duros externos portátiles y discos flexibles, por ejemplo, como fuentes apropiadas de datos para el sistema informático 200. Normalmente, cualquiera de la HDD 210, la unidad óptica 212, las redes 220 y 222 se puede configurar asimismo para funcionar como la fuente de vídeo 112, o como un destino para datos de vídeo decodificados que se van a almacenar para su reproducción mediante el elemento de visualización 214.
Los componentes 205 a 213 del módulo informático 201 se comunican normalmente mediante un bus interconectado 204 y de una manera que tiene como resultado un modo de funcionamiento convencional del sistema informático 200 conocido por los expertos en la materia relevante. Por ejemplo, el procesador 205 está acoplado al bus 204 de sistema utilizando una conexión 218. Igualmente, la memoria 206 y la unidad de disco óptico 212 están acopladas al bus 204 de sistema mediante conexiones 219. Los ejemplos de ordenadores en los que se pueden poner en práctica las disposiciones descritas incluyen IBM-PC y compatibles, estaciones Sun SPARC, Apple Mac™ o sistemas informáticos similares.
Cuando sea apropiado o se desee, el codificador de vídeo 114 y el decodificador de vídeo 134, así como los procedimientos descritos a continuación, se pueden implementar utilizando el sistema informático 200 en el que el codificador de vídeo 114, el decodificador de vídeo 134 y los procesos de las figuras 10 a 13, que se van a describir, se pueden implementar como uno o varios programas de aplicación de software 233 ejecutables dentro del sistema informático 200. En particular, el codificador de vídeo 114, el decodificador de vídeo 134 y las etapas de los procedimientos descritos se realizan mediante instrucciones 231 (véase la figura 2B) en el software 233, que se llevan a cabo dentro del sistema informático 200. Las instrucciones de software 231 pueden estar formadas como uno o varios módulos de código, cada uno para realizar una o varias tareas concretas. El software puede estar dividido asimismo en dos partes independientes, en las que una primera parte y los módulos de código correspondientes realizan los procedimientos descritos y una segunda parte y los módulos de código correspondientes gestionan una interfaz de usuario entre la primera parte y el usuario.
El software puede estar almacenado en un medio legible por ordenador, incluyendo los dispositivos de almacenamiento descritos a continuación, por ejemplo. El software se carga en el sistema informático 200 desde el medio legible por ordenador y a continuación es ejecutado por el sistema informático 200. Un medio legible por ordenador que tiene tal software o programa informático grabado en el medio legible por ordenador es un producto de programa informático. La utilización del producto de programa informático en el sistema informático 200 realiza preferentemente un aparato ventajoso para implementar el codificador de vídeo 114, el decodificador de vídeo 134 y los procedimientos descritos.
El software 233 está almacenado normalmente en la HDD 210 o la memoria 206. El software se carga en el sistema informático 200 a partir de un medio legible por ordenador y es ejecutado por el sistema informático 200. Por tanto, por ejemplo, el software 233 se puede almacenar en un medio de almacenamiento de disco legible ópticamente (por ejemplo, CD-ROM) 225 que se lee por la unidad de disco óptico 212.
En algunos casos, los programas de aplicación 233 se pueden suministrar al usuario codificados en uno o varios CD-ROM 225 y leer mediante la unidad correspondiente 212 o alternativamente se pueden leer por el usuario a partir de las redes 220 o 222. Aún más, el software se puede cargar asimismo en el sistema informático 200 a partir de otros medios legibles por ordenador. Los medios de almacenamiento legibles por ordenador se refieren a cualquier medio de almacenamiento tangible no transitorio que proporciona instrucciones y/o datos grabados al sistema informático 200 para su ejecución y/o proceso. Los ejemplos de tales medios de almacenamiento incluyen discos flexibles, cinta magnética, CD-ROM, DVD, Blu-ray Disc, una unidad de disco duro, una ROM o circuito integrado, memoria USB, un disco magnetoóptico o una tarjeta legible por ordenador tal como una tarjeta PCMCIA y similares, tanto si tales dispositivos son internos o externos respecto del módulo informático 201 como si no. Los ejemplos de medios de transmisión legibles por ordenador transitorios o no tangibles que pueden participar asimismo en proporcionar el software, programas de aplicación, instrucciones y/o datos de vídeo o datos de vídeo codificados al módulo informático 401 incluyen canales de transmisión por radio o infrarrojos así como una conexión de red a otro ordenador o dispositivo conectado en red, e internet o intranet incluyendo transmisiones de correo electrónico e información grabada en sitios web y similares.
La segunda parte de los programas de aplicación 233 y los módulos de código correspondientes mencionados anteriormente se puede ejecutar para implementar una o varias interfaces gráficas de usuario (GUI) que se van a reproducir o representar de otro modo en el elemento de visualización 214. Mediante manipulación normalmente del teclado 202 y el ratón 203, un usuario del sistema informático 200 y la aplicación puede manipular la interfaz de una manera adaptable funcionalmente para proporcionar comandos de control y/o entrada a las aplicaciones asociadas con la(s) GUI. Se pueden implementar asimismo otras formas de interfaces de usuario adaptables funcionalmente, tales como una interfaz de audio que utiliza indicaciones de voz emitidas mediante los altavoces 217 y comandos de voz de usuario introducidos mediante el micrófono 280.
La figura 2B es un diagrama de bloques esquemático detallado del procesador 205 y una “memoria” 234. La memoria 234 representa una agregación lógica de todos los módulos de memoria (incluyendo la HDD 209 y la memoria de semiconductor 206) a los que puede acceder el módulo informático 201 en la figura 2A.
Cuando se enciende inicialmente el módulo informático 201, se ejecuta un programa de autocomprobación de encendido (POST) 250. El programa POST 250 está almacenado normalmente en una ROM 249 de la memoria de semiconductor 206 de la figura 2A. Un dispositivo de hardware tal como la ROM 249 que almacena software se denomina en ocasiones software inalterable. El programa POST 250 examina el hardware dentro del módulo informático 201 para garantizar el funcionamiento apropiado y comprueba normalmente el correcto funcionamiento del procesador 205, la memoria 234 (209, 206) y un módulo de software de sistemas de entrada-salida básicos (BIOS) 251, almacenado asimismo normalmente en la ROM 249. Una vez que el programa POST 250 se ha ejecutado satisfactoriamente, la BIOS 251 activa la unidad de disco duro 210 de la figura 2A. La activación de la unidad de disco duro 210 provoca que un programa de cargador de arranque 252 que es residente en la unidad de disco duro 210 sea ejecutado por el procesador 205. Esto carga un sistema operativo 253 en la memoria RAM 206, tras lo cual comienza a funcionar el sistema operativo 253. El sistema operativo 253 es una aplicación a nivel de sistema, que se puede ejecutar por el procesador 205, para cumplir diversas funciones de alto nivel, incluyendo gestión de procesador, gestión de memoria, gestión de dispositivos, gestión de almacenamiento, interfaz de aplicaciones de software e interfaz de usuario genérica.
El sistema operativo 253 gestiona la memoria 234 (209, 206) para garantizar que cada proceso o aplicación que se ejecuta en el módulo informático 201 tiene suficiente memoria en la que ejecutarse sin colisionar con memoria asignada a otro proceso. Además, los diferentes tipos de memoria disponibles en el sistema informático 200 de la figura 2A se deben utilizar de manera apropiada de modo que cada proceso se pueda ejecutar eficazmente. Por consiguiente, no se pretende que la memoria agregada 234 ilustre cómo se asignan segmentos concretos de memoria (a menos que se indique lo contrario), sino más bien que proporcione una visión general de la memoria accesible por el sistema informático 200 y cómo se utiliza la misma.
Tal como se muestra en la figura 2B, el procesador 205 incluye varios módulos funcionales incluyendo una unidad de control 239, una unidad de lógica aritmética (ALU) 240 y una memoria local o interna 248, en ocasiones denominada memoria caché. La memoria caché 248 incluye normalmente varios registros de almacenamiento 244­ 246 en una sección de registro. Uno o varios buses internos 241 interconectan funcionalmente estos módulos funcionales. El procesador 205 tiene asimismo normalmente una o varias interfaces 242 para comunicar con dispositivos externos mediante el bus 204 de sistema, utilizando una conexión 218. La memoria 234 se acopla al bus 204 utilizando una conexión 219.
El programa de aplicación 233 incluye una secuencia de instrucciones 231 que puede incluir instrucciones de bucles y ramificaciones condicionales. El programa 233 puede incluir asimismo datos 232 que se utilizan en la ejecución del programa 233. Las instrucciones 231 y los datos 232 se almacenan en ubicaciones de memoria 228, 229, 230 y 235, 236, 237, respectivamente. Dependiendo del tamaño relativo de las instrucciones 231 y las ubicaciones de memoria 228-230, una instrucción concreta se puede almacenar en una única ubicación de memoria tal como se representa mediante la instrucción mostrada en la ubicación de memoria 230. Alternativamente, una instrucción se puede segmentar en una serie de partes, cada una de las cuales se almacena en una ubicación de memoria independiente, tal como se representa mediante los segmentos de instrucción mostrados en las ubicaciones de memoria 228 y 229. En general, el procesador 205 recibe un conjunto de instrucciones que se ejecutan en el mismo. El procesador 205 espera una entrada posterior, a la que el procesador 205 reacciona ejecutando otro conjunto de instrucciones. Cada entrada se puede proporcionar a partir de una o varias de una serie de fuentes, incluyendo datos generados mediante uno o varios de los dispositivos de entrada 202, 203, datos recibidos de una fuente externa a través de una de las redes 220, 202, datos recuperados de uno de los dispositivos de almacenamiento 206, 209 o datos recuperados de un medio de almacenamiento 225 introducido en el lector correspondiente 212, todos ellos representados en la figura 2A. La ejecución de un conjunto de las instrucciones puede dar como resultado, en algunos casos, una salida de datos. La ejecución puede implicar asimismo almacenar datos o variables en la memoria 234.
El codificador de vídeo 114, el decodificador de vídeo 134 y los procedimientos descritos pueden utilizar variables de entrada 254, que se almacenan en la memoria 234 en ubicaciones de memoria correspondientes 255, 256, 257. El codificador de vídeo 114, el decodificador de vídeo 134 y los procedimientos descritos producen variables de salida 261, que se almacenan en la memoria 234 en ubicaciones de memoria correspondientes 262, 263, 264. Se pueden almacenar variables intermedias 258 en las ubicaciones de memoria 259, 260, 266 y 267.
Haciendo referencia al procesador 205 de la figura 2B, los registros 244, 245, 246, la unidad de lógica aritmética (ALU) 240 y la unidad de control 239 funcionan juntos para realizar secuencias de microoperaciones necesarias para realizar ciclos de “recuperación, decodificación y ejecución” para cada instrucción en el conjunto de instrucciones que constituye el programa 233. Cada ciclo de recuperación, decodificación y ejecución comprende:
(a) una operación de recuperación, que recupera o lee una instrucción 231 a partir de una ubicación de memoria 228, 229, 230;
(b) una operación de decodificación en la que la unidad de control 239 determina qué instrucción se ha recuperado; y
(c) una operación de ejecución en la que la unidad de control 239 y/o la ALU 240 ejecutan la instrucción.
Después de eso, se puede ejecutar un ciclo adicional de recuperación, decodificación y ejecución para la siguiente instrucción. De manera similar, se puede realizar un ciclo de almacenamiento mediante el que la unidad de control 239 almacena o escribe un valor en una ubicación de memoria 232.
Cada etapa o subproceso en los procesos de las figuras 10 a 11 que se van a describir está asociado con uno o varios segmentos del programa 233 y se realiza normalmente mediante las secciones de registro 244, 245, 246, la ALU 240 y la unidad de control 239 en el procesador 205 que funcionan juntos para realizar los ciclos de recuperación, decodificación y ejecución para cada instrucción en el conjunto de instrucciones para los segmentos indicados del programa 233.
La figura 3 es un diagrama de bloques esquemático que muestra módulos funcionales del codificador de vídeo 114. La figura 4 es un diagrama de bloques esquemático que muestra módulos funcionales del decodificador de vídeo 134. El codificador de vídeo 114 y el decodificador de vídeo 134 se pueden implementar utilizando un sistema informático de propósito general 200, tal como se muestra en las figuras 2A y 2B, en el que se pueden implementar los diversos módulos funcionales mediante hardware dedicado dentro del sistema informático 200, mediante software ejecutable dentro del sistema informático 200 tal como uno o varios módulos de código de software del programa de aplicación de software 233 residentes en la unidad de disco duro 205 y cuya ejecución se controla mediante el procesador 205, o alternativamente mediante una combinación de hardware dedicado y software ejecutable dentro del sistema informático 200. El codificador de vídeo 114, el decodificador de vídeo 134 y los procedimientos descritos se pueden implementar alternativamente en hardware dedicado, tal como uno o varios circuitos integrados que realizan las funciones o funciones secundarias de los procedimientos descritos. Tal hardware dedicado puede incluir procesadores gráficos, procesadores de señal digital, circuitos integrados de aplicación específica (ASIC), matrices de compuertas programables in situ (FPGA) o uno o varios microprocesadores y memorias asociadas. En particular el codificador de vídeo 114 comprende los módulos 320­ 344 y el decodificador de vídeo 134 comprende los módulos 420-434 que se pueden implementar, cada uno, como uno o varios módulos de código de software del programa de aplicación de software 233.
Aunque el codificador de vídeo 114 de la figura 3 es un ejemplo de una segmentación de codificación de vídeo de codificación de vídeo de alta eficiencia (HEVC), las etapas de proceso realizadas por los módulos 320-344 son comunes a otros códecs de vídeo tales como VC-1 o H.264/MPEG-4 AVC. El codificador de vídeo 114 recibe datos de trama captados, tales como los datos de trama captados 310, como una serie de tramas, incluyendo cada trama uno o varios canales de color. Cada trama comprende una cuadrícula de muestras por canal de color. La información de color se representa utilizando un “espacio de color”, según la recomendación ITU-R BT.709 (“YUV”), aunque son posibles asimismo otros espacios de color. Cuando se utiliza el espacio de color YUV, los canales de color incluyen un canal de luma (“Y”) y dos canales de croma (“U” y “V”). Además, se pueden incluir diferentes cantidades de información en la cuadrícula de muestras de cada canal de color, dependiendo del muestreo de la imagen o mediante aplicación de filtrado para volver a muestrear los datos de trama captados. Existen varios enfoques de muestreo, conocidos como “formatos de croma”, algunos de los cuales se describirán haciendo referencia a las figuras 5A y 5B.
El codificador de vídeo 114 divide cada trama de los datos de trama captados, tales como los datos de trama 310, en zonas denominadas en general “bloques de árbol de codificación” (CTB). Cada bloque de árbol de codificación (CTB) incluye una subdivisión de árbol cuádruple jerárquico de una parte de la trama para dar una colección de “unidades de codificación” (CU). El bloque de árbol de codificación (CTB) ocupa en general un área de 64x64 muestras de luma, aunque son posibles otros tamaños, tales como 16x16 o 32x32. En algunos casos se pueden utilizar tamaños incluso mayores, tales como 128x128. El bloque de árbol de codificación (CTB) se puede subdividir mediante un fraccionamiento en cuatro zonas de igual tamaño para crear un nuevo nivel de jerarquía. El fraccionamiento se puede aplicar de manera recursiva, teniendo como resultado una jerarquía de árbol cuádruple. Dado que las dimensiones de lado del bloque de árbol de codificación (CTB) siempre son potencias de dos y el fraccionamiento del árbol cuádruple siempre tiene como resultado una división por dos de la anchura y la altura, las dimensiones de lado de la zona siempre son asimismo potencias de dos. Cuando no se realiza ningún fraccionamiento adicional de una zona, se dice que existe una “unidad de codificación” (CU) dentro de la zona. Cuando no se realiza ningún fraccionamiento en el nivel superior del bloque de árbol de codificación, la zona que ocupa todo el bloque de árbol de codificación contiene una unidad de codificación (CU) que se denomina en general “unidad de codificación más grande” (LCU). Existe asimismo un tamaño mínimo para cada unidad de codificación, tal como el área ocupada por 8x8 muestras de luma, aunque son posibles asimismo otros tamaños mínimos. Las unidades de codificación de este tamaño se denominan en general “unidades de codificación más pequeñas” (SCU). Como resultado de esta jerarquía de árbol cuádruple, la totalidad del bloque de árbol de codificación (CTB) está ocupada por una o varias unidades de codificación (CU).
El codificador de vídeo 114 produce una o varias matrices de muestras, denominadas en general “unidades de predicción” (PU) para cada unidad de codificación (CU). Son posibles diversas disposiciones de unidades de predicción (PU) en cada unidad de codificación (CU), con un requisito de que las unidades de predicción (PU) no solapen y que la totalidad de la unidad de codificación (CU) esté ocupada por la una o varias unidades de predicción (PU). Este esquema garantiza que las unidades de predicción (PU) cubren toda el área de trama.
El codificador de vídeo 114 funciona emitiendo, desde un módulo 340 de multiplexor, una unidad de predicción (PU) 382. Un módulo de diferencia 344 emite la diferencia entre la unidad de predicción (PU) 382 y una matriz 2D correspondiente de muestras de datos a partir de una unidad de codificación (CU) del bloque de árbol de codificación (CTB) de los datos de trama 310, conociéndose la diferencia como una “matriz de muestras residuales” 360. La matriz de muestras residuales 360 procedente del módulo de diferencia 344 se recibe mediante un módulo de transformada 320, que convierte (o “codifica”) la matriz de muestras residuales 360 a partir de una representación espacial a una representación en el dominio de frecuencia aplicando una “transformada directa”. El módulo de transformada 320 crea coeficientes de transformada 362 para cada transformada en una unidad de transformada (TU) en una subdivisión jerárquica de la unidad de codificación (CU) para dar una o varias unidades de transformada (TU) denominadas en general “árbol de transformada”. Para el estándar de codificación de vídeo de alta eficiencia (HEVC) en desarrollo, la conversión en la representación en el dominio de frecuencia se implementa utilizando una transformada de coseno discreta modificada (DCT), en la que una DCT tradicional se modifica para implementarse utilizando desviaciones y adiciones. Son posibles diversos tamaños para la matriz de muestras residuales 360 y los coeficientes de transformada 362, según los tamaños de transformada soportados. En el estándar de codificación de vídeo de alta eficiencia (HEVC) en desarrollo, se realizan transformadas en matrices en 2D de muestras que tienen tamaños específicos, tales como 32x32, 16x16, 8x8 y 4x4. Por tanto, se puede decir que existe un conjunto predeterminado de tamaños de transformada disponibles para un codificador de vídeo 114. Además, tal como se anunció anteriormente, el conjunto de tamaños de transformada puede diferir entre el canal de luma y los canales de croma. Las transformadas bidimensionales se configuran en general para ser “separables”, permitiendo la implementación como un primer conjunto de transformadas 1D que funcionan sobre la matriz 2D de muestras en una dirección (por ejemplo, en filas), seguido por un segundo conjunto de transformadas 1D que funcionan sobre la matriz 2D de muestras, extraído del primer conjunto de transformadas 1D en la otra dirección (por ejemplo, en columnas). Las transformadas que tienen la misma anchura y altura se denominan en general “transformadas cuadradas”. Son posibles asimismo transformadas adicionales, que tienen diferentes anchuras y alturas, y se denominan en general “transformadas no cuadradas”. Las implementaciones optimizadas de las transformadas pueden combinar las transformadas unidimensionales en filas y columnas en módulos de hardware o software específicos, tales como un módulo de transformada de 4x4 o un módulo de transformada de 8x8. Las transformadas que tienen dimensiones mayores requieren implementar cantidades mayores de conjuntos de circuitos, a pesar de que se utilicen de manera poco frecuente. Por consiguiente, existe un tamaño de transformada máximo de 32x32 en el estándar de codificación de vídeo de alta eficiencia (HEVC) en desarrollo. La naturaleza integrada de implementación de transformada introduce asimismo una preferencia para reducir el número de tamaños de transformada no cuadrada soportados, ya que estos requerirán normalmente implementar hardware totalmente nuevo, en lugar de reutilizar lógica de transformada unidimensional existente presente a partir de transformadas cuadradas correspondientes. Se aplican transformadas a los canales tanto de luma como de croma. Existen diferencias entre la manipulación de canales de luma y de croma con respecto a las unidades de transformada (TU) y se comentarán a continuación haciendo referencia a las figuras 5A y 5B. Cada árbol de transformada ocupa una unidad de codificación (CU) y se define como una descomposición de árbol cuádruple de la unidad de codificación (CU) en una jerarquía que contiene una unidad de transformada (TU) en cada nodo hoja de la jerarquía de árbol de transformada (árbol cuádruple), pudiendo cada unidad de transformada (TU) utilizar transformadas de los tamaños de transformada soportados. De manera similar al bloque de árbol de codificación (CTB), es necesario que la totalidad de la unidad de codificación (CU) esté ocupada por una o varias unidades de transformada (TU). En cada nivel de la jerarquía de árbol cuádruple de árbol de transformada un “valor de indicador de bloque codificado” señaliza la posible presencia de una transformada en cada canal de color, en el presente nivel de jerarquía cuando no hay ningún fraccionamiento adicional presente, o señaliza que los niveles de jerarquía inferiores pueden contener, como mínimo, una transformada entre las unidades de transformada resultantes (TU). Cuando el valor de indicador de bloque codificado es cero, no se realiza ninguna transformada para el canal de color correspondiente de ninguna unidad de transformada (TU) del árbol de transformada, sea en el presente nivel jerárquico o en niveles jerárquicos inferiores. Cuando el valor de indicador de bloque codificado es uno, la zona contiene una transformada que debe tener, como mínimo, un coeficiente residual distinto de cero. De esta manera, para cada canal de color, cero o más transformadas pueden cubrir una parte del área de la unidad de codificación (CU) que varía desde nada hasta toda la unidad de codificación (CU). Existen valores de indicador de bloque codificado independientes para cada canal de color. No se requiere codificar cada valor de indicador de bloque codificado, ya que existen casos en los que sólo existe un valor de indicador de bloque codificado posible.
A continuación se introducen los coeficientes de transformada 362 en un módulo de ajuste a escala y cuantificación 322 y se ajustan a escala y se cuantifican, según un parámetro de cuantificación determinado 384 para producir la matriz de coeficientes residuales 364. El proceso de ajuste a escala y cuantificación tiene como resultado una pérdida de precisión, que depende del valor del parámetro de cuantificación determinado 384. Un valor superior del parámetro de cuantificación determinado 384 tiene como resultado que se pierde más información a partir de los coeficientes de transformada. Esto aumenta la compresión lograda por el codificador de vídeo 114 a costa de reducir la calidad visual de la salida del decodificador de vídeo 134. El parámetro de cuantificación determinado 384 se puede adaptar durante la codificación de cada trama de los datos de trama 310 o se puede fijar para una parte de los datos de trama 310, tal como una trama entera. Son posibles asimismo otras adaptaciones del parámetro de cuantificación determinado 384, tales como cuantificar diferentes coeficientes residuales con valores independientes. La matriz de coeficientes residuales 364 y el parámetro de cuantificación determinado 384 se toman como entrada para un módulo de ajuste a escala inverso 326 que invierte el ajuste a escala realizado por el módulo de ajuste a escala y cuantificación 322 para producir matrices de coeficientes de transformada reajustadas a escala 366, que son versiones reajustadas a escala de la matriz de coeficientes residuales 364.
La matriz de coeficientes residuales 364 y el parámetro de cuantificación determinado 384 se toman asimismo como entrada para un módulo 324 de codificador por entropía que codifica los coeficientes residuales en un flujo de bits codificado 312 (o “flujo de bits de vídeo”). La matriz de coeficientes residuales 364 de cada transformada en cada unidad de transformada (TU) se codifica en grupos conocidos en general como “subbloques”. Los subbloques deben tener preferentemente las mismas dimensiones independientemente del tamaño de la transformada, ya que esto permite reutilizar la lógica relacionada con el proceso de subbloques. Los coeficientes residuales dentro de un subbloque se denominan en general “grupo de coeficientes” y para cada grupo de coeficientes, se codifica en general un indicador de grupo de coeficientes para indicar si, como mínimo, un coeficiente residual dentro del grupo de coeficientes es distinto de cero. En algunos casos el indicador de grupo de coeficientes se puede deducir y, por tanto, no se codifica. Se codifica un indicador para cada coeficiente residual que pertenece a un grupo de coeficientes que tiene un valor de indicador de grupo de coeficientes de uno para indicar si el coeficiente residual es distinto de cero (“significativo”) o cero (“no significativo”). Debido a la pérdida de precisión resultante del módulo de ajuste a escala y cuantificación 322, las matrices de coeficientes de transformada reajustadas a escala 366 no son idénticas a los coeficientes de transformada originales 362. Las matrices de coeficientes de transformada reajustadas a escala 366 procedentes del módulo de ajuste a escala inverso 326 se entregan a continuación a un módulo 328 de transformada inversa. El módulo 328 de transformada inversa realiza una transformada inversa del dominio de frecuencia al dominio espacial para producir una representación en el dominio espacial 368 de las matrices de coeficientes de transformada reajustadas a escala 366 idéntica a una representación en el dominio espacial que se produce en el decodificador de vídeo 134.
Un módulo de estimación del movimiento 338 produce vectores de movimiento 374 comparando los datos de trama 310 con datos de trama anteriores a partir de uno o varios conjuntos de tramas almacenados en un módulo de memoria intermedia de trama 332, configurado en general dentro de la memoria 206. Los conjuntos de tramas se conocen como “listas de imágenes de referencia”. Los vectores de movimiento 374 se introducen a continuación en un módulo de compensación del movimiento 334 que produce una unidad de predicción de interpredicción (PU) 376 filtrando muestras almacenadas en el módulo de memoria intermedia de trama 332, teniendo en cuenta una desviación espacial derivada de los vectores de movimiento 374. Aunque no se ilustra en la figura 3, los vectores de movimiento 374 se pasan asimismo como elementos de sintaxis al módulo 324 de codificador por entropía para su codificación en el flujo de bits codificado 312. Un módulo de predicción intra-trama 336 produce una unidad de predicción de intrapredicción (PU) 378 utilizando muestras 370 obtenidas a partir de un módulo de suma 342, que suma la unidad de predicción (PU) 382 procedente del módulo 340 de multiplexor y la representación en el dominio espacial 368 procedente del módulo 328 de transformada inversa. El módulo de predicción intra-trama 336 produce asimismo un modo de intrapredicción 380 que se envía al codificador por entropía 324 para su codificación en el flujo de bits codificado 312.
Se pueden generar unidades de predicción (PU) utilizando un procedimiento intrapredicción o interpredicción. Los procedimientos intrapredicción utilizan muestras adyacentes a la unidad de predicción (PU) que se han decodificado anteriormente (normalmente por encima y a la izquierda de la unidad de predicción) con el fin de generar muestras de referencia dentro de la unidad de predicción (PU). Son posibles diversas direcciones de intrapredicción, denominadas “modo de intrapredicción”. Los procedimientos interpredicción utilizan un vector de movimiento para hacer referencia a un bloque a partir de una trama de referencia seleccionada. Dado que el bloque puede tener cualquier alineación hasta una precisión inferior a una muestra, por ejemplo de un octavo de muestra, se necesita filtrado para crear un bloque de muestras de referencia para la unidad de predicción (PU). La decisión sobre qué procedimiento utilizar se realiza, según un compromiso velocidad-distorsión, entre la velocidad de bits deseada del flujo de bits codificado 312 resultante y la cantidad de distorsión de calidad de imagen introducida por el procedimiento de intrapredicción o interpredicción. Si se utiliza intrapredicción, se selecciona un modo de intrapredicción entre el conjunto de modos posibles de intrapredicción, asimismo, según un compromiso entre velocidad-distorsión. El módulo 340 de multiplexor selecciona las muestras de referencia de intrapredicción 378 a partir del módulo de predicción intra-trama 336 o la unidad de predicción de interpredicción (PU) 376 a partir del bloque de compensación del movimiento 334, dependiendo de la decisión realizada por el algoritmo de velocidad distorsión. El módulo de suma 342 produce una suma 370 que se introduce en un módulo de filtro de desbloqueo 330. El módulo de filtro de desbloqueo 330 realiza el filtrado a lo largo de límites de bloques, produciendo muestras desbloqueadas 372 que se escriben en el módulo de memoria intermedia de trama 332 configurado dentro de la memoria 206. El módulo de memoria intermedia de trama 332 es una memoria intermedia con capacidad suficiente para contener datos a partir de una o varias tramas pasadas, para referencia futura como parte de una lista de imágenes de referencia.
Para el estándar de codificación de vídeo de alta eficiencia (HEVC) en desarrollo, el flujo de bits codificado 312 producido por el codificador por entropía 324 se delinea en unidades de capa de abstracción de red (NAL). En general, cada segmento de una trama está contenido en una unidad de NAL. El codificador por entropía 324 codifica la matriz de coeficientes residuales 364, el modo de intrapredicción 380, los vectores de movimiento y otros parámetros, denominados de manera colectiva “elementos de sintaxis”, en el flujo de bits codificado 312 realizando un algoritmo de codificación aritmética binaria adaptativa al contexto (CABAC). Los elementos de sintaxis se agrupan juntos en “estructuras de sintaxis”, estas agrupaciones pueden contener recursión para describir estructuras jerárquicas. Además de valores ordinales, tales como un modo de intrapredicción o valores de números enteros, tales como un vector de movimiento, los elementos de sintaxis incluyen asimismo indicadores, tal como para indicar un fraccionamiento de árbol cuádruple. El módulo de estimación del movimiento 338 y el módulo de compensación del movimiento 334 funcionan sobre vectores de movimiento 374, con una precisión de 1/8 de una muestra de luma, permitiendo un modelado preciso del movimiento entre tramas en los datos de trama 310.
Aunque el decodificador de vídeo 134 de la figura 4 se describe haciendo referencia a una segmentación de decodificación de vídeo de codificación de vídeo de alta eficiencia (HEVC), las etapas de proceso realizadas por los módulos 420-434 son comunes a otros códecs de vídeo que emplean codificación por entropía, tales como H.264/MPEG-4 AVC, MPEG-2 y VC-1. La información de vídeo codificada se puede leer asimismo de la memoria 206, la unidad de disco duro 210, un CD-ROM, un disco Blu-ray™ u otro medio de almacenamiento legible por ordenador. Alternativamente, la información de vídeo codificada se puede recibir de una fuente externa tal como un servidor conectado a la red de comunicaciones 220 o un receptor de radiofrecuencia.
Tal como se observa en la figura 4, los datos de vídeo recibidos, tales como el flujo de bits codificado 312, se introducen en el decodificador de vídeo 134. El flujo de bits codificado 312 se puede leer a partir de la memoria 206, la unidad de disco duro 210, un CD-ROM, un disco Blu-ray™ u otro medio de almacenamiento legible por ordenador. Alternativamente, el flujo de bits codificado 312 se puede recibir de una fuente externa tal como un servidor conectado a la red de comunicaciones 220 o a un receptor de radiofrecuencia. El flujo de bits codificado 312 contiene elementos de sintaxis codificados que representan los datos de trama captados que se van a decodificar.
El flujo de bits codificado 312 se introduce en un módulo de decodificador por entropía 420 que extrae los elementos de sintaxis a partir del flujo de bits codificado 312 y pasa los valores de los elementos de sintaxis a otros bloques en el decodificador de vídeo 134. El módulo de decodificador por entropía 420 aplica el algoritmo de codificación aritmética binaria adaptativa al contexto (CABAC) para decodificar elementos de sintaxis a partir del flujo de bits codificado 312. Los elementos de sintaxis decodificados se utilizan para reconstruir parámetros dentro del decodificador de vídeo 134. Los parámetros incluyen ninguno o más matrices de coeficientes residuales 450, vectores de movimiento 452 y un modo de predicción 454. La matriz de coeficientes residuales 450 se pasa a un módulo de ajuste a escala y transformada inverso 422, los vectores de movimiento 452 se pasan a un módulo de compensación del movimiento 434 y el modo de predicción 454 se pasa a un módulo de predicción intra-trama 426 y un multiplexor 428. El módulo de ajuste a escala y transformada inverso 422 realiza el ajuste a escala inverso sobre los datos de coeficientes residuales para crear coeficientes de transformada reconstruidos. El módulo de ajuste a escala y transformada inverso 422 aplica a continuación una “transformada inversa” para convertir (o “decodificar”) los coeficientes de transformada reconstruidos de una representación en el dominio de frecuencia a una representación en el dominio espacial, produciendo una matriz de muestras residuales 456. La transformada inversa dentro del módulo de ajuste a escala y transformada inverso 422 realiza la misma operación que la transformada inversa 328. Por tanto, el módulo de ajuste a escala y transformada inverso 422 se debe configurar para proporcionar un conjunto predeterminado de tamaños de transformada requeridos para decodificar un flujo de bits codificado 312 que cumple con el estándar de codificación de vídeo de alta eficiencia (HEVC) en desarrollo.
El módulo de compensación del movimiento 434 utiliza los vectores de movimiento 452 a partir del módulo de decodificador por entropía 420, combinados con datos de trama de referencia 460 procedentes un bloque de memoria intermedia de trama 432, configurado dentro de la memoria 206, para producir una unidad de predicción de interpredicción (PU) 462 para una unidad de predicción (PU), que es una predicción de datos de trama decodificados de salida. Cuando el modo de predicción 454 indica que la unidad de predicción actual se codificó utilizando intrapredicción, el módulo de predicción intra-trama 426 produce una unidad de predicción de intrapredicción (PU) 464 para la unidad de predicción (PU) utilizando muestras espacialmente contiguas a la unidad de predicción (PU) y una dirección de predicción suministrada asimismo por el modo de predicción 454. Las muestras espacialmente contiguas se obtienen a partir de una suma 458, entregada desde un módulo de suma 424. El módulo de multiplexor 428 selecciona la unidad de predicción de intrapredicción (PU) 464 o la unidad de predicción de interpredicción (PU) 462 para una unidad de predicción (PU) 466, dependiendo del modo de predicción actual 454. La unidad de predicción (PU) 466, entregada desde el módulo de multiplexor 428, se añade a la matriz de muestras residuales 456 a partir del módulo de ajuste a escala y transformada inverso 422 mediante el módulo de suma 424 para producir la suma 458, que a continuación se introduce en cada uno de un módulo de filtro de desbloqueo 430 y el módulo de predicción intra-trama 426. El módulo de filtro de desbloqueo 430 realiza el filtrado a lo largo de límites de bloques de datos, tales como límites de unidades de transformada (TU), para suavizar los artefactos visibles. La salida del módulo de filtro de desbloqueo 430 se escribe en el módulo de memoria intermedia de trama 432 configurado dentro de la memoria 206. El módulo de memoria intermedia de trama 432 proporciona suficiente almacenamiento para contener una o varias tramas decodificadas para su referencia futura. Las tramas decodificadas 412 se emiten asimismo a partir del módulo de memoria intermedia de trama 432 a un dispositivo de visualización, tal como el dispositivo de visualización 136.
Las figuras 5A y 5B muestran, cada una, cuadrículas de muestras de una parte de trama 500 y una parte de trama 510 codificadas utilizando un formato de croma 4:2:0 y 4:2:2 respectivamente. El formato de croma se especifica como un parámetro de configuración al codificador de vídeo 114 y el codificador de vídeo 114 codifica un elemento de sintaxis “chroma_format_idc” en el flujo de bits codificado 312 que especifica el formato de croma. El decodificador de vídeo 134 decodifica el elemento de sintaxis “chroma_format_idc” a partir del flujo de bits codificado 312 para determinar el formato de croma que se está utilizando. Por ejemplo, cuando se está utilizando un formato de croma 4:2:0, el valor de chroma_format_idc es uno, cuando se está utilizando un formato de croma 4:2:2, el valor de chroma_format_idc es dos y cuando se está utilizando un formato de croma 4:4:4, el valor de chroma_format_idc es tres. En las figuras 5A y 5B, se ilustran ubicaciones de muestras de luma, tales como una ubicación de muestra de luma 501, utilizando símbolos “X”, y se ilustran ubicaciones de muestras de croma, tales como una ubicación de muestra de croma 502, utilizando símbolos “O”. Muestreando la parte de trama 500 en los puntos indicados, se obtiene una cuadrícula de muestras para cada canal de color cuando se aplica un formato de croma 4:2:0. En cada ubicación de muestra de luma X, se muestrea el canal de luma (“Y”), y en cada ubicación de muestra de croma O, se muestrean ambos canales de croma (“U” y “V”). Tal como se muestra en la figura 5A, para cada ubicación de muestra de croma, existe una disposición 2x2 de ubicaciones de muestras de luma. Muestreando las muestras de luma en las ubicaciones de muestras de luma y las muestras de croma en las ubicaciones de muestras de croma indicadas en la parte de trama 510, se obtiene una cuadrícula de muestras para cada canal de color cuando se aplica un formato de croma 4:2:2. Se realiza la misma asignación de muestras a canales de color para la parte de trama 510 que para la parte de trama 500. En contraste con la parte de trama 500, existen el doble de ubicaciones de muestras de croma en la parte de trama 510. En la parte de trama 510 las ubicaciones de muestras de croma se están situadas asignan conjuntamente con una de cada dos ubicaciones de muestras de luma. Por consiguiente, en la figura 5B, para cada ubicación de muestra de croma, existe una disposición de 2x1 ubicaciones de muestras de luma.
Anteriormente se describieron diversas dimensiones permisibles de unidades de transformada en unidades de muestras de luma. Por tanto, la zona cubierta por una transformada aplicada para el canal de luma tendrá las mismas dimensiones que las dimensiones de la unidad de transformada. Dado que las unidades de transformada codifican asimismo canales de croma, la transformada aplicada para cada canal de croma tendrá dimensiones adaptadas, según el formato de croma concreto que se está utilizando. Por ejemplo, cuando se está utilizando un formato de croma 4:2:0, una unidad de transformada 16x16 (TU) utilizará una transformada de 16x16 para el canal de luma, y una transformada de 8x8 para cada canal de croma. Un caso especial es que cuando se está utilizando una transformada de 4x4 para el canal de luma no existe ninguna transformada de 2x2 correspondiente disponible (cuando se aplica el formato de croma 4:2:0) o transformada de 4x2 disponible (cuando se aplica el formato de croma 4:2:2) que se pueda utilizar para los canales de croma. En este caso especial, una transformada de 4x4 para cada canal de croma puede cubrir la zona ocupada por múltiples transformadas de luma.
La figura 6A es una representación esquemática de un árbol de transformada a modo de ejemplo de una unidad de codificación (CU) 602 (representada con un borde grueso), dentro de un bloque de árbol de codificación (CTB) 600 de la trama. Una única subdivisión de árbol cuádruple divide el bloque de árbol de codificación (CTB) 600 en cuatro unidades de codificación de 32x32 (CU), tales como la unidad de codificación (CU) 602. Existe un árbol de transformada a modo de ejemplo dentro de la unidad de codificación (CU) 602. El árbol de transformada a modo de ejemplo incluye varias subdivisiones de árbol cuádruple, teniendo como resultado diez unidades de transformada (TU) numeradas como tales en la figura 6A, por ejemplo la unidad de transformada n° 9 (TU) 604. Las unidades de transformada n° 1 - n° 10 cubren la totalidad de la unidad de codificación (CU) 602. Cada subdivisión de árbol cuádruple divide una zona espacialmente en cuatro cuadrantes, teniendo como resultado cuatro zonas más pequeñas. Cada unidad de transformada (TU) tiene un valor de profundidad de transformada, correspondiente a un nivel jerárquico de la unidad de transformada (TU) dentro del árbol de transformada. El nivel jerárquico indica el número de subdivisiones de árbol cuádruple realizadas antes de terminarse la subdivisión de árbol cuádruple, teniendo como resultado un caso de una unidad de transformada (TU) que ocupa la zona correspondiente. Por ejemplo, la unidad de transformada n° 9 (TU) 604, ocupa una cuarta parte del área de la unidad de codificación (CU) 602 y, por tanto, tiene una profundidad de transformada de uno. Cada unidad de transformada (TU) tiene un tamaño asociado (o “tamaño de transformada”), descrito en general como las dimensiones de la zona que contiene la unidad de transformada (TU) en la cuadrícula de muestras de luma. El tamaño depende del tamaño de la unidad de codificación (CU) y de la profundidad de transformada. Las unidades de transformada (TU) con una profundidad de transformada de cero tienen un tamaño igual al tamaño de la unidad de codificación correspondiente (CU). Cada incremento de la profundidad de transformada tiene como resultado una división a la mitad del tamaño de unidades de transformada (TU) presentes en el árbol de transformada a la profundidad de transformada dada. Dado que la trama incluye un canal de luma y canales de croma, la unidad de codificación (CU) 602 ocupa una zona tanto en la cuadrícula de muestras de luma como en la cuadrícula de muestras de croma y, por tanto, cada unidad de transformada (TU) incluye información que describe tanto las muestras de luma en la cuadrícula de muestras de luma como las muestras de croma en la cuadrícula de muestras de croma. La naturaleza de la información para cada unidad de transformada (TU) depende de la etapa de proceso del codificador de vídeo 114 o el decodificador de vídeo 134. En la entrada del módulo de transformada 320 y la salida del módulo de ajuste a escala y transformada inverso 422, las matrices de muestras residuales 360 y 456 contienen respectivamente información para cada unidad de transformada (TU) en el dominio espacial. Las matrices de muestras residuales 360 y 456 se pueden dividir adicionalmente en una “matriz de muestras residuales de croma” y una “matriz de muestras residuales de luma”, debido a diferencias en el proceso entre el canal de luma y los canales de croma. En la salida del módulo de ajuste a escala y cuantificación 322 y la entrada del módulo de ajuste a escala y transformada inverso 422, las matrices de coeficientes residuales 364 y 450 contienen respectivamente información para cada unidad de transformada (TU) en el dominio de frecuencia. Las matrices de coeficientes residuales 364 y 450 se pueden dividir adicionalmente en una “matriz de coeficientes residuales de croma” y una “matriz de coeficientes residuales de luma”, debido a diferencias en el proceso entre el canal de luma y los canales de croma.
La figura 6B ilustra un árbol de transformada a modo de ejemplo 630, correspondiente al árbol de transformada a modo de ejemplo de la figura 6A, para el canal de luma de una unidad de codificación de 32x32 (CU), que contiene un conjunto de unidades de transformada (TU) y que ocupa la unidad de codificación (CU) 602, que ocupa una matriz de muestras de luma de 32x32 en la cuadrícula de muestras de luma. La figura 7 ilustra una estructura 700 de datos que representa el árbol de transformada a modo de ejemplo 630. En la figura 6B, los recuadros numerados de 1 a 10 indican unidades de transformada presentes dentro de la zona 632 (ejemplificadas por varias unidades de transformada (TU) 640), y cada recuadro está contenido en una zona que no está subdividida adicionalmente (indicada por un recuadro con borde discontinuo).
En la figura 6B, los recuadros numerados 1 y 9 contienen transformadas de 16x16 para el canal de luma, los recuadros numerados 2, 3 y 8 contienen transformadas de 8x8 para el canal de luma y los recuadros numerados de 4 a 7 contienen transformadas de 4x4 para el canal de luma. La zona correspondiente (recuadro discontinuo) para cada uno de estos recuadros tiene un valor de indicador de bloque codificado de uno, para indicar la presencia de una transformada.
La presencia o ausencia de una transformada para cada canal de color se especifica mediante un valor de indicador de bloque codificado independiente que se utiliza en cada de codificación y decodificación del flujo de bits, pero que no se necesita transmitir en el flujo de bits, tal como se comentará a continuación. Por consiguiente, el número de matrices de coeficientes residuales 450 emitidas desde el decodificador por entropía 420 depende de los valores de indicador de bloque codificado. Cuando no hay ningún coeficiente significativo presente en ningún canal de color, el número de matrices de coeficientes residuales 450 emitidas desde el decodificador por entropía 420 es cero.
En la figura 7, los círculos representan valores de indicador de transformada de fraccionamiento, indicándose el valor de indicador de transformada de fraccionamiento dentro del círculo correspondiente. En la figura 7, los triángulos representan valores de indicador de bloque codificado, indicándose el valor de indicador de bloque codificado dentro del triángulo correspondiente. Los cuadrados representan unidades de transformada, numerándose cada transformada para concordar con la numeración de transformada presente en la figura 6B.
El nivel jerárquico más alto del árbol de transformada a modo de ejemplo 630 contiene una zona 632 que ocupa una unidad de codificación de 32x32 (CU). Un valor de indicador de transformada de fraccionamiento 702 indica que la zona 632 está subdividida en cuatro zonas de 16x16, tales como una zona 634, definiendo por tanto un nodo “no de hoja” del árbol de transformada a modo de ejemplo 630. Para cada zona de 16x16, un valor de indicador de transformada de fraccionamiento adicional, tal como un valor de indicador de transformada de fraccionamiento 704, indica que la zona de 16x16 respectiva se debe subdividir adicionalmente en cuatro zonas de 8x8. Por ejemplo, la zona 634 no está subdividida adicionalmente, tal como se indica mediante el valor de indicador de transformada de fraccionamiento 704 de cero, definiendo por tanto un nodo “de hoja” del árbol de transformada a modo de ejemplo 630. En cambio, una zona 638 está subdividida adicionalmente para dar cuatro zonas de 4x4 (tales como una zona 636), tal como se indica mediante un valor de indicador de transformada de fraccionamiento 712 de uno. La estructura de fraccionamiento recursivo presente en el árbol 630 de transformada es análoga al fraccionamiento de árbol cuádruple presente en el bloque de árbol de codificación (CTB). Para el canal de luma, en los nodos “de hoja” del árbol cuádruple, la presencia de una transformada en la unidad de transformada (TU) se señaliza mediante un valor de indicador de bloque codificado, por ejemplo un valor 708 de indicador de bloque codificado de uno indica la presencia de una transformada 710 en la zona 634.
Dado que se puede utilizar una transformada para representar datos residuales en cada zona, no se permite que las zonas sean más pequeñas que el tamaño de transformada más pequeño soportado, tal como 4x4 muestras de luma para el canal de luma. Adicionalmente, para zonas mayores que el tamaño de transformada más grande disponible, se deduce un valor de indicador de transformada de fraccionamiento de uno. Por ejemplo, para un árbol de transformada con un nivel superior de una unidad de codificación de 64x64, se produce una subdivisión automática (es decir: no señalizada en el flujo de bits codificado 312) en cuatro zonas de 32x32 cuando el tamaño de transformada más grande soportado es de 32x32 muestras de luma.
Una zona de 16x16 inferior derecha 642 contiene una unidad de transformada (TU) (numerada 10 (diez) y sombreada) sin transformada para el canal de luma y, por tanto, tiene un valor de indicador de bloque codificado correspondiente 716 de cero.
Las figuras 6C y 8 ilustran el árbol de transformada a modo de ejemplo 630, correspondiente al árbol de transformada a modo de ejemplo de la figura 6A, para un canal de croma, configurado para el formato de croma 4:2:2 y que contiene un conjunto de transformadas para un canal de croma correspondientes al árbol 630 de transformada para el canal de luma y representadas por una estructura 800 de datos. Dado que la jerarquía de árbol de transformada es común gracias a la estructura de la figura 6A entre el canal de luma y los canales de croma, los valores de indicador de transformada de fraccionamiento se comparten entre las estructuras 700 y 800 de datos. En contraste con la estructura 700 de datos, la estructura 800 de datos incluye un valor de indicador de bloque codificado con cada valor de indicador de fraccionamiento de transformada de uno (es decir en nodos no de hoja del árbol de transformada). Por ejemplo, un valor 802 de indicador de bloque codificado de uno está asociado con el indicador 702 de fraccionamiento de transformada. Si el valor de indicador de bloque codificado en un nodo no de hoja del árbol de transformada es cero, se deduce que los valores de indicador de bloque codificado en los nodos hijo son cero (y no se codifica ningún indicador de bloque codificado correspondiente en el flujo de bits codificado 312). Los valores de indicador de bloque codificado en zonas distintas de hojas permiten terminar la codificación de indicadores de bloque codificados a niveles inferiores del árbol de transformada para cada canal de croma si no hay presentes coeficientes residuales significativos en ninguna de las zonas hijas, aunque puedan estar presentes coeficientes residuales significativos en el canal de luma. Esto es una situación común para datos de trama captados típicos, ya que la mayor parte de la información está presente en el canal de luma.
Cuando el codificador de vídeo 114 y el decodificador de vídeo 134 están configurados para un formato de croma 4:4:4, la zona de croma de cada canal de croma de cualquier unidad de transformada (TU) dada de un tamaño que no es uno del conjunto predeterminado de tamaños de unidad de transformada (TU) tiene dimensiones idénticas a las zonas de luma de la unidad de transformada (TU) dada (es decir: cuando no tiene lugar un fraccionamiento deducido). Cuando el codificador de vídeo 114 y el decodificador de vídeo 134 están configurados para un formato de croma 4:4:4, la zona de croma de cada canal de croma de cualquier unidad de transformada (TU) dada de un tamaño que es uno del conjunto predeterminado de tamaños de unidad de transformada (TU) tiene dimensiones menores que las zonas de luma de la unidad de transformada (TU) dada (es decir: cuando tiene lugar un fraccionamiento deducido).
Cuando se está utilizando un formato de croma 4:2:2, esto tiene como resultado que la unidad de codificación (CU) 602 incluya una zona de 16x32 662 de la figura 6C de muestras de croma para cada canal de croma y, por tanto, ocupa una zona de 16x32 en la cuadrícula de muestras de croma. La figura 6C ilustra las zonas en una cuadrícula de muestras de croma, dibujada como una matriz de muestras de croma, estando cada muestra de croma separada por igual en horizontal y en vertical (en contraste con la figura 5B). Debido a la utilización del formato de croma 4:2:2, cada zona de croma de la figura 6C aparece horizontalmente comprimida con respecto a la zona de luma correspondiente de la figura 6B. El valor de indicador de transformada de fraccionamiento 702 de uno divide la zona de 16x32662, correspondiente a la unidad de codificación (CU) 602, en cuatro zonas de 8x16, tales como una zona de 8x16 664. La zona de 8x16 664 tiene una forma no cuadrada y también tiene un tamaño más grande que otras zonas no cuadradas ilustradas en la figura 6C, tal como una zona de 4x8670. Para cada zona de 8x16, un valor de indicador de transformada de fraccionamiento, tal como el valor de indicador de transformada de fraccionamiento 704, indica si la zona de 8x16 correspondiente se debe subdividir adicionalmente en cuatro zonas de 4x8 más pequeñas, de una manera análoga al fraccionamiento de árbol cuádruple presente en el árbol 630 de transformada para la matriz de muestras de luma. Una zona de 8x16 superior derecha 672 está subdividida adicionalmente en cuatro zonas de 4x8. Un valor de indicador de bloque codificado 804 de uno indica que cada una de las cuatro zonas de 4x8 puede contener coeficientes residuales significativos. Por tanto, se requiere un indicador de bloque codificado para cada zona de 4x8 para indicar la presencia de una transformada para la zona correspondiente. De estas cuatro zonas de 4x8, una zona de 4x8 inferior izquierda 674 (sombreada) contiene una unidad de transformada (TU) pero no contiene una transformada y, por tanto, tiene un valor de indicador de bloque codificado 814 de cero. Las zonas de 4x8 restantes, tales como la zona 670, tienen, cada una, una transformada y, por tanto, tienen valores de indicador de bloque codificado correspondientes de uno. La zona de 8x16 superior izquierda está subdividida en dos zonas de 8x8 de igual tamaño. En contraste a la subdivisión de árbol cuádruple, no está presente ningún indicador de transformada de fraccionamiento correspondiente en el flujo de bits codificado 312.
El fraccionamiento de una zona de un canal, tal como un canal de croma, de una unidad de transformada (TU) en múltiples zonas (cada una de las cuales puede tener una transformada), sin que esté presente ninguna señalización en el flujo de bits codificado 312, se denomina “fraccionamiento deducido”. El fraccionamiento deducido elimina la necesidad de introducir hardware que soporte una transformada no cuadrada para este caso (8x16). En lugar de eso, se utilizan transformadas, tales como una primera transformada de 8x8666. Dado que es posible que cada una de las zonas resultantes del fraccionamiento deducido contenga toda la información residual de cero, es necesario especificar la presencia de una transformada en cada zona resultante del fraccionamiento deducido. Por consiguiente, se requieren valores de indicador de bloque codificado independientes para cada zona resultante de un fraccionamiento deducido. En este caso, los valores de indicador de bloque codificado 806 y 808 corresponden a la primera transformada de 8x8 666 y a una segunda transformada de 8x8 668 respectivamente. Para unidades de transformada (TU) en las que no tiene lugar ningún fraccionamiento deducido, un valor de indicador de bloque codificado para cada canal de croma especifica la presencia o ausencia de una transformada para la zona ocupada por la unidad de transformada (TU) para el canal de croma. Cuando tiene lugar un fraccionamiento deducido, se requiere un valor de indicador de bloque codificado independiente (no ilustrado en la figura 8) para cada una de las zonas resultantes, sin embargo, implementaciones pueden conservar un valor de indicador de bloque codificado atribuible a la unidad de transformada (TU) entera. Se puede deducir que el valor de indicador de bloque codificado independiente puede es “uno” en todos los casos, o el valor de indicador de bloque codificado independiente se puede determinar realizando una operación lógica de “O” en el valor de indicador de bloque codificado de cada zona resultante del fraccionamiento. Si el valor de indicador de bloque codificado independiente se determina a partir del valor de indicador de bloque codificado de cada zona resultante del fraccionamiento, el valor de indicador de bloque codificado independiente se puede codificar en el flujo de bits codificado 312 mediante el codificador por entropía 324 y decodificar a partir del flujo de bits codificado 312 mediante el decodificador por entropía 420 como un indicador de bloque codificado adicional (no ilustrado en la figura 9). En tal caso, cuando el valor de indicador de bloque codificado independiente es cero, se puede deducir que el valor de indicador de bloque codificado de cada zona a partir del fraccionamiento es cero y cuando el valor de indicador de bloque codificado independiente es uno, los indicadores de bloque codificados para cada zona a partir del fraccionamiento se codifican en el flujo de bits codificado 312 mediante el codificador por entropía 324 y se decodifican a partir del flujo de bits codificado 312 mediante el decodificador por entropía 420.
La zona de 8x16 inferior izquierda 680 de la zona de 16x32662 ilustra un fraccionamiento deducido en el que está presente una transformada de 8x8 en la zona deducida de 8x8 superior 682 pero no hay ninguna transformada de 8x8 presente en la zona deducida de 8x8 inferior 684. Una matriz de 8x16 inferior derecha 676 (sombreada) contiene una unidad de transformada (TU) pero no contiene una transformada en ninguna zona de 8x8 cuadrada resultante del fraccionamiento deducido y, por tanto, tiene valores de indicador de bloque codificado 810, 812 de cero.
La presencia de dos canales de croma tiene como resultado una duplicación de la estructura representada en la figura 6C, utilizándose valores de indicador de bloque codificado independientes para especificar la presencia de transformadas para cada canal de croma. En esta implementación, se dedujo un fraccionamiento para tamaños de zona para croma distintos del tamaño 4x8, teniendo como resultado la utilización de una transformada rectangular de 4x8, tal como una transformada de 4x8 816 (contenida en la zona 670), y permitiendo la reutilización de transformadas cuadradas existentes en otros casos (por ejemplo 8x8, 16x16). Por tanto, se puede decir que existe un conjunto de tamaños de zona predeterminados (tales como 8x16 y 16x32), para los que se puede utilizar un fraccionamiento para dar dos zonas, y por tanto dos transformadas (de tamaños 8x8 y 16x16). Son posibles asimismo diferentes definiciones del conjunto predeterminado de tamaños de zona para los que se produce un fraccionamiento deducido y permitirán utilizar una combinación diferente de transformadas cuadradas y transformadas rectangular existentes. Es posible asimismo que determinadas implementaciones impliquen siempre un fraccionamiento, en cuyo caso no se introduce ninguna transformada rectangular para los canales de color de croma 4:2:2. En tal caso, el conjunto predeterminado de tamaños de zona para el que se produce un fraccionamiento deducido contiene todos los tamaños de zona de croma posibles (por ejemplo, 4x8, 8x16 y 16x32 para un formato de croma 4:2:2 o 4x4, 8x8, 16x16 y 32x32 para un formato de croma 4:4:4).
Cuando se está utilizando un formato de croma 4:2:0, no tiene lugar un fraccionamiento deducido para ninguna zona de croma en la unidad de transformada (TU), por tanto el número máximo de transformadas para cada canal de croma siempre es uno (el valor de indicador de bloque codificado para cada canal de croma controla si se produce la transformada de croma).
Aunque el codificador de vídeo 114 y el decodificador de vídeo 134 se describen independientemente de diferencias entre los canales de luma y de croma, las cuadrículas de muestras diferentes resultantes de los formatos de croma requieren la necesidad de diferencias en los módulos. Implementaciones prácticas pueden tener unos “trayectos de proceso” independientes para el canal de luma y para los canales de croma. Por tanto, una implementación de este tipo puede desacoplar el proceso de muestras de luma y muestras de croma. Dado que el flujo de bits codificado 312 es un único flujo de bits para los canales tanto de luma como de croma, el codificador por entropía 324 y el decodificador por entropía 420 no están desacopladas. Adicionalmente, una única memoria intermedia de trama, tal como la memoria intermedia de trama 332, 432, contiene muestras de luma y de croma y, por tanto, no está desacoplada. Sin embargo, los módulos 322-330 y 334-340 y los módulos 422-430 y 434 pueden tener el proceso de luma y de croma desacoplado, permitiendo que las implementaciones tengan una lógica independiente para luma y croma, creando por tanto un “trayecto de proceso de luma” y un “trayecto de proceso de croma”.
Ciertas implementaciones pueden implicar un fraccionamiento para la zona de 16x32 de un canal de croma de una unidad de transformada (TU) para dar dos zonas de 16x16, pero no implicar un fraccionamiento para los casos de 8x16 y 4x8. Tales implementaciones evitan la necesidad de introducir lógica de transformada de 32 puntos en el trayecto de proceso de croma, pudiendo en cambio basarse en lógica de transformada de 4, 8 o 16 puntos bien establecida en la técnica.
Las figuras 9A y 9B ilustran una estructura de sintaxis que se puede utilizar para codificar o representar de otro modo un nivel jerárquico del árbol de transformada. En nodos no de hoja de un árbol de transformada, una estructura de sintaxis 900 se expande de manera recursiva, según estructuras de datos, tales como las estructuras 700 y 800 de datos, para definir los elementos de sintaxis presentes en una parte del flujo de bits codificado 312 correspondiente al árbol de transformada. En nodos hoja de un árbol de transformada (en los que no tiene lugar ninguna subdivisión adicional en el árbol de transformada) una estructura de sintaxis 930 define elementos de sintaxis presentes en la parte del flujo de bits codificado 312. Normalmente, están presentes una estructura de datos para luma y dos estructuras de datos para croma, aunque son posibles estructuras de datos adicionales, tal como para codificar un canal alfa o un mapa de profundidad. Alternativamente, se pueden utilizar menos estructuras de datos, tal como en el caso en el que se comparte una única estructura de datos por los canales de croma y se pueden compartir valores de indicador de bloque codificado entre los canales de croma. Una estructura 902 de sintaxis de nodo no de hoja del árbol de transformada define la codificación de un nivel jerárquico de un árbol de transformada, tal como el árbol 630 de transformada. Un indicador de transformada de fraccionamiento 910 codifica un valor de indicador de transformada de fraccionamiento de uno, tal como el valor de indicador de transformada de fraccionamiento 702. Este valor indica que la estructura 902 de sintaxis de nodo no de hoja del árbol de transformada incluye un nivel jerárquico inferior que contiene casos adicionales de la estructura 902 de sintaxis de nodo no de hoja del árbol de transformada o estructura 932 de sintaxis de nodo hoja del árbol de transformada, o “nodos hijo”. Un indicador 912 de bloque codificado codifica el valor 802 de indicador de bloque codificado de uno para el canal de croma “U” y un indicador 914 de bloque codificado codifica un valor de indicador de bloque codificado adicional para el canal de croma “V”. Si la estructura 902 de sintaxis de nodo no de hoja del árbol de transformada define el nivel superior de la jerarquía de árbol de transformada, entonces los indicadores de bloque codificados 912, 914 están presentes. Si la estructura 902 de sintaxis de nodo no de hoja del árbol de transformada no define el nivel superior de la jerarquía de árbol de transformada, entonces los indicadores de bloque codificados 912, 914 sólo están presentes si los indicadores de bloque codificados correspondientes en el nivel padre de la jerarquía de árbol de transformada están presentes y tienen un valor de uno. Dado que existe un nivel jerárquico inferior en el árbol 630 de transformada (con respecto al nivel jerárquico superior), tiene lugar una subdivisión de árbol cuádruple. Esta subdivisión tiene como resultado que se incluyen cuatro estructuras de sintaxis de árbol de transformada 916, 918, 920, 922 en la estructura 902 de sintaxis de nodo no de hoja del árbol de transformada.
La estructura de sintaxis 930 define la codificación del nodo hoja 932 del nodo hoja del árbol de transformada (es decir, en el que no tiene lugar ninguna subdivisión adicional). Un indicador de transformada de fraccionamiento 940 codifica un valor de indicador de transformada de fraccionamiento de cero, tal como el valor de indicador de transformada de fraccionamiento 704.
Sólo se codifica un indicador de transformada de fraccionamiento si la zona correspondiente es mayor que un tamaño mínimo. Por ejemplo, la zona 636 tiene el tamaño más pequeño permisible para una zona de 4x4 muestras de luma (correspondiente al tamaño de transformada de luma más pequeño soportado) de modo que se deduce que un valor 714 de indicador de fraccionamiento de transformada es cero y no se codifica ningún indicador de transformada de fraccionamiento para la estructura de sintaxis de árbol de transformada correspondiente.
Para la zona 636, se transforman muestras residuales de croma utilizando una transformada de croma de 4x8, por tanto, no está presente ningún fraccionamiento de transformada deducido. Pueden estar presentes indicadores de bloque codificados, tales como un indicador 942 de bloque codificado y un indicador 946 de bloque codificado, para señalizar la presencia de una transformada para cada uno de los canales de croma. Un indicador 950 de bloque codificado señaliza la presencia de una transformada para el canal de luma. Los coeficientes residuales para los canales de luma y de croma (si están presentes) están presentes en una estructura de sintaxis de unidad de transformada (TU) 952. Si el valor del indicador 950 de bloque codificado es uno, un bloque residual de luma 954 está presente en el flujo de bits codificado 312. Si el valor del indicador de bloque codificado para cada canal de croma es uno, bloques residuales de croma 956 y 960 correspondientes están presentes en el flujo de bits codificado 312.
Para la zona 664, se transforman muestras residuales de croma utilizando dos transformadas de croma de 8x8, por tanto, está presente un fraccionamiento de transformada deducido. Los indicadores de bloque codificados 942 y 946, si están presentes, señalizan la presencia de transformadas de 8x8 para cada canal de croma de la primera transformada de 8x8 666. Un indicador 944 de bloque codificado y un indicador de bloque codificado 948, si están presentes, señalizan la presencia de transformadas de 8x8 para cada canal de croma de la segunda transformada de 8x8 668. Si el valor del indicador 944 de bloque codificado es uno, está presente un bloque residual de croma 958 en el flujo de bits codificado 312. Si el valor del indicador de bloque codificado 948 es uno, está presente un bloque residual de croma 962 en el flujo de bits codificado 312.
La estructura de sintaxis 930 tal como se ilustra en la figura 9B, muestra las transformadas primera y segunda de cada canal de croma codificadas de manera adyacente para el fraccionamiento de transformada deducido. Alternativamente, se pueden utilizar otras disposiciones, tales como codificar elementos de sintaxis para cada canal de croma de manera adyacente, o codificar elementos de sintaxis para cada canal de croma intercalados con otros elementos de sintaxis.
Las figuras 9C y 9D ilustran una estructura de sintaxis 9100 alternativa que se puede utilizar para codificar o representar de otro modo un nivel jerárquico del árbol de transformada. En nodos no de hoja de un árbol de transformada, la estructura de sintaxis 9100 alternativa se expande de manera recursiva, según estructuras de datos, tales como las estructuras 700 y 800 de datos, para definir los elementos de sintaxis presentes en una parte del flujo de bits codificado 312 correspondiente al árbol de transformada. Existe un caso de la estructura de sintaxis 9100 alternativa para cada nodo en el árbol de transformada, incluyendo los nodos hoja, que contienen, cada uno, una unidad de transformada (TU). Cuando se produce un “fraccionamiento deducido” para subdividir la unidad de transformada (TU) para cada canal de croma, una estructura de sintaxis 9130 define elementos de sintaxis presentes en la parte del flujo de bits codificado 312. Normalmente, están presentes una estructura de datos para luma y dos estructuras de datos para croma, aunque son posibles estructuras de datos adicionales, tales como para codificar un canal alfa o un mapa de profundidad. Alternativamente, se pueden utilizar menos estructuras de datos, tal como en el caso en el que se comparte una única estructura de datos por los canales de croma y se pueden compartir valores de indicador de bloque codificado entre los canales de croma. Una estructura de sintaxis 9102 de árbol de transformada define la codificación de un nivel jerárquico de un árbol de transformada, tal como el árbol 630 de transformada.
Para un caso de la estructura de sintaxis 9102 de árbol de transformada en un nodo no de hoja de un árbol de transformada, tal como el árbol 630 de transformada, un indicador de transformada de fraccionamiento 9110 codifica un valor de indicador de transformada de fraccionamiento de uno, tal como el valor de indicador de transformada de fraccionamiento 702. Este valor indica que el caso de la estructura de sintaxis 9102 de árbol de transformada incluye un nivel jerárquico inferior, que contiene casos adicionales de la estructura de sintaxis 9102 de árbol de transformada o “nodos hijo”. Un indicador 9112 de bloque codificado codifica un valor de indicador de bloque codificado, según la descripción del indicador 912 de bloque codificado. Un indicador 9114 de bloque codificado codifica un valor de indicador de bloque codificado, según la descripción del indicador de bloque codificado 914. Dado que existe un nivel jerárquico inferior en el árbol 630 de transformada (con respecto al nivel jerárquico superior), tiene lugar una subdivisión de árbol cuádruple. Esta subdivisión tiene como resultado que se incluyen cuatro estructuras de sintaxis 9116, 9118, 9120, 9122 de árbol de transformada en la estructura de sintaxis 9102 de nodo de árbol de transformada. Cada una de las estructuras de sintaxis 9116, 9118, 9120, 9122 de árbol de transformada es otro caso de la estructura de sintaxis 9102 de árbol de transformada. Un indicador 9124 de bloque codificado y una parte de unidad de transformada de luma 9126 estarán ausentes de la estructura de sintaxis 9102 de árbol de transformada.
Las implementaciones pueden disponer asimismo la estructura de sintaxis 9102 de árbol de transformada de tal manera que el indicador 9124 de bloque codificado y la parte de unidad de transformada de luma 9126 (si están presentes) están colocados antes en la estructura de sintaxis 9102 de árbol de transformada, tal como entre el indicador 9114 de bloque codificado y la estructura de sintaxis de árbol de transformada 9116.
Para un caso de la estructura de sintaxis 9102 de árbol de transformada en un nodo hoja de un árbol de transformada, tal como el árbol 630 de transformada, un indicador de transformada de fraccionamiento 9110 codifica un valor de indicador de transformada de fraccionamiento de cero, tal como el valor de indicador de transformada de fraccionamiento 704. El caso de la estructura de sintaxis 9102 de árbol de transformada corresponde, por tanto, a una unidad de transformada (TU) en el árbol de transformada 930. La unidad de transformada (TU) tiene un tamaño determinado, según la unidad de codificación (CU), que contiene la unidad de transformada (CU), tal como la unidad de codificación (CU) 602, y la profundidad de transformada. El indicador 9112 de bloque codificado codifica un valor de indicador de bloque codificado de uno para indicar que cualquiera de las zonas de croma resultantes a partir del fraccionamiento deducido para el canal de croma “U” puede tener un valor de indicador de bloque codificado de uno. Si el indicador 9112 de bloque codificado codifica un valor de cero, entonces el valor de indicador de bloque codificado para cada zona de croma resultante del fraccionamiento deducido para el canal de croma “U” tiene un valor de indicador de bloque codificado que se deduce que es cero. Aunque el indicador de bloque de código 9112 codifique un valor de uno, las implementaciones todavía pueden codificar un indicador de bloque codificado que tiene un valor de cero para cada zona de croma resultante del fraccionamiento deducido. Por tanto, las implementaciones pueden omitir el indicador 9112 de bloque codificado a partir del flujo de bits codificado 312, en lugar de deducirse siempre un valor de indicador de bloque codificado de uno para el indicador de bloque codificado omitido 9112. El indicador 9114 de bloque codificado codifica un valor de indicador de bloque codificado adicional para el canal de croma “V” de una manera similar al indicador 9112 de bloque codificado. Para tamaños de unidad de transformada (TU) que concuerdan con aquellos para los que se produce un fraccionamiento deducido en cuatro zonas de croma (el número máximo de matrices de coeficientes residuales de croma es cuatro), las cuatro estructuras de sintaxis 9116, 9118, 9120, 9122 de árbol de transformada se incluyen en la estructura de sintaxis 9102 de nodo de árbol de transformada. Para tamaños de unidad de transformada (TU) que concuerdan con aquellos para los que se produce un fraccionamiento deducido en dos zonas de croma (el número máximo de matrices de coeficientes residuales de croma es dos), se incluyen dos estructuras de sintaxis de árbol de transformada, tales como las estructuras de sintaxis 9116, 9118 de árbol de transformada, en la estructura de sintaxis 9102 de nodo de árbol de transformada. Cada una de las estructuras de sintaxis 9116, 9118, 9120, 9122 de árbol de transformada es un caso de un árbol de transformada para la estructura de sintaxis de croma 9132. El indicador 9124 de bloque codificado codifica un valor de indicador de bloque codificado, tal como el valor 708 de indicador de bloque codificado, que especifica la presencia o ausencia de una transformada para el canal de luma de la unidad de transformada (TU). La parte de luma de la unidad 9126 de transformada codifica una matriz de coeficientes residuales de luma como elementos de sintaxis residuales de luma 9128.
El árbol de transformada para la estructura de sintaxis de croma 9132, que sólo existe para cada zona de croma cuando tiene lugar un fraccionamiento deducido, incluye un conjunto reducido de la sintaxis de la estructura de sintaxis 930 de árbol de transformada. Un indicador 9142 de bloque codificado codifica un valor de indicador de bloque codificado para el canal de croma “U” de la zona de croma. Un indicador 9144 de bloque codificado codifica un valor de indicador de bloque codificado para el canal de croma “V” de la zona de croma. Una parte de croma de la unidad 9146 de transformada (TU), codifica un subconjunto de la estructura de sintaxis de unidad de transformada (TU) 952. La parte de croma de la unidad 9146 de transformada (TU) codifica una matriz de coeficientes residuales de croma como elementos de sintaxis residuales de croma 9150 para el canal de croma “U” si el valor del indicador 9142 de bloque codificado es uno. La parte de croma de la unidad 9146 de transformada (TU) codifica una matriz de coeficientes residuales de croma como elementos de sintaxis residuales de croma 9152 para el canal de croma “V” si el valor del indicador 9144 de bloque codificado es uno.
La estructura de sintaxis 9130 tal como se ilustra en la figura 9D muestra los indicadores de bloque codificados primero y segundo codificados de manera adyacente seguidos por las matrices de coeficientes residuales de croma primera y segunda de cada canal de croma para el fraccionamiento de transformada deducido. Alternativamente, se pueden utilizar otras disposiciones, tales como codificar el indicador de bloque codificado y la matriz de coeficientes residuales de croma de manera adyacente para cada canal de croma.
Aunque el fraccionamiento de transformada deducid se ilustra con la zona de 8x16664 fraccionada en dos zonas de 8x8, las implementaciones alternativas pueden realizar el fraccionamiento para otras zonas. Por ejemplo, algunas implementaciones pueden deducir un fraccionamiento de una zona de 16x32 para dar dos zonas de 16x16. Tales implementaciones evitan ventajosamente la necesidad de una transformada 1D de 32 puntos en el trayecto de proceso de croma. Dado que no se requiere la transformada 1D de 32 puntos para el trayecto de proceso de croma cuando se aplica el formato de croma 4:2:0, se elimina totalmente el requisito de la transformada 1D de 32 puntos del trayecto de proceso de croma. Por tanto, las implementaciones que utilizan conjuntos de circuitos de proceso independientes para desacoplar los canales de luma y de croma pueden lograr un coste de implementación inferior en el conjunto de circuitos de proceso de croma.
Existe un formato de croma 4:4:4 en el que existe una ubicación de muestra de croma para cada ubicación de muestra de luma. Por consiguiente, con este formato, las transformadas para el canal de croma y el canal de luma pueden tener los mismos tamaños. Con el tamaño de transformada más grande de 32x32 en el trayecto de proceso de luma, esto requeriría introducir una transformada de 32x32 en el trayecto de proceso de croma para una implementación desacoplada. Las implementaciones específicas pueden deducir un fraccionamiento para cada canal de croma para fraccionar una zona de 32x32 en cuatro zonas de 16x16, permitiendo la reutilización de la transformada de 16x16 existente en el trayecto de proceso de croma. Dado que sólo se utilizaría una transformada de 32x32 en el trayecto de proceso de croma para el formato de croma 4:4:4, deducir un fraccionamiento para cada canal de croma para fraccionar una zona de 32x32 para dar cuatro zonas de 16x16 permitiría eliminar la transformada de 32x32 del trayecto de proceso de croma, reduciendo el conjunto de circuitos de proceso requerido. Tales implementaciones requerirían cuatro valores de indicador de bloque codificado para cada canal de croma, y, por tanto, hasta cuatro indicadores de bloque codificados, codificados en la estructura de sintaxis 930 para cada canal de croma en el flujo de bits codificado 312.
Las implementaciones que soportan un formato de croma 4:2:2 pueden deducir asimismo un fraccionamiento para cada canal de croma para fraccionar una zona de 32x16 en cuatro zonas de 8x16. Tales implementaciones requieren cuatro valores de indicador de bloque codificado para cada canal de croma, y, por tanto, cuatro indicadores de bloque codificados, codificados en la estructura de sintaxis 930 para cada canal de croma en el flujo de bits codificado 312, por tanto se puede introducir un indicador de bloque codificado de 'CU3', 'CU4', 'CV3' y 'CV4' (no ilustrados en la figura 9B) en la estructura de sintaxis de unidad de transformada (TU) 952. Tales implementaciones evitan introducir lógica de transformada de 32 puntos en el trayecto de proceso de croma y, cuando no están divididas las zonas de 8x16, pueden reutilizar lógica de transformada de 8x16 para unidades de transformada (TU) de tamaño 16x16 (en el canal de luma) que requieren una transformada de tamaño 8x16 para los canales de croma.
La figura 10 es un diagrama de flujo esquemático que muestra un procedimiento 1000 para codificar una unidad de transformada (TU) codificando la estructura 902 de sintaxis de nodo no de hoja del árbol de transformada y la estructura 932 de sintaxis de nodo hoja del árbol de transformada. El procedimiento 1000 se describe haciendo referencia a un canal de croma de la unidad de transformada (TU), sin embargo, el procedimiento 1000 se puede aplicar a cualquier canal de croma de la unidad de transformada (TU). Dado que la estructura 902 de sintaxis de nodo no de hoja del árbol de transformada y la estructura 932 de sintaxis de nodo hoja del árbol de transformada describen un nodo en el árbol de transformada, el procedimiento 1000 codifica un nodo del árbol de transformada en el flujo de bits codificado 312. El procedimiento 1000 se puede implementar en hardware o mediante software ejecutable en el procesador 205, por ejemplo. El procedimiento 1000 se invoca inicialmente para el nivel superior del árbol de transformada y se puede invocar a sí mismo (de manera recursiva) para codificar nodos hijo del árbol de transformada. Una etapa 1002 de determinación del tamaño de unidad de transformada determina el tamaño de una unidad de transformada (TU) en un árbol de transformada, según el tamaño de unidad de codificación (CU) que contiene el árbol de transformada y un valor de profundidad de transformada de la unidad de transformada (TU). Cuando se invoca el procedimiento 1000 en el nivel superior del árbol de transformada, el valor de profundidad de transformada se establece a cero, de lo contrario el valor de profundidad de transformada se proporciona por el caso padre del procedimiento 1000. Se codifica un valor de indicador de transformada de fraccionamiento, tal como el valor de indicador de transformada de fraccionamiento 702, en el flujo de bits codificado 312 como indicador de transformada de fraccionamiento 910 si el valor de profundidad de transformada es menor que la profundidad de transformada máxima permitida.
Cuando el valor de indicador de transformada de fraccionamiento es uno, sólo se codifican indicadores de bloque codificados de croma 912 y 914 para cada canal de croma si el nodo padre de la jerarquía de árbol de transformada tiene un valor de indicador de bloque codificado correspondiente de uno. A continuación, el procedimiento 1000 invoca un nuevo caso del procedimiento 1000 para cada nodo hijo (representado en la parte del flujo de bits codificado 312 mediante las estructuras de sintaxis 916, 918, 920 y 922 de árbol de transformada) del árbol de transformada. Cada caso del procedimiento 1000, invocado para los nodos hijo, está dotado de un valor de profundidad de transformada igual al valor de profundidad de transformada del caso del presente procedimiento 1000 incrementado en uno.
Cuando el valor de indicador de transformada de fraccionamiento es cero, una etapa 1004 de identificación del número máximo de transformadas directas determina un número máximo (n) de transformadas para cada canal de croma de la zona que se está codificando. Cuando no tiene lugar ningún fraccionamiento deducido, este número n será de uno. Cuando se está utilizando un formato de croma 4:2:2 y se encuentra una zona rectangular de un canal de croma, tal como la zona de 8x16664, y el tamaño de zona es uno de un conjunto predeterminado de tamaños de zona (tales como 16x32 y 8x16), tiene lugar un fraccionamiento deducido y el número máximo de transformadas será de dos (de lo contrario, el número de transformadas será de uno). De lo contrario (el tamaño de zona no es uno de un conjunto predeterminado de tamaños de zona) el número máximo de transformadas será de una. Por ejemplo, si 4x8 no es uno del conjunto predeterminado de tamaños de zona, entonces el número máximo de transformadas será de una. Cuando se está utilizando un formato de croma 4:4:4 y el tamaño de zona encontrado es uno de un conjunto predeterminado de tamaños de zona (tales como una zona de 32x32), tiene lugar un fraccionamiento deducido y el número máximo de transformadas será de cuatro. De lo contrario (el tamaño de zona no es uno de un conjunto predeterminado de tamaños de zona) el número máximo será de uno. Por ejemplo, si 8x8 no es uno del conjunto predeterminado de tamaños de zona, entonces el número máximo de transformadas será de una. Aunque el conjunto predeterminado de tamaños de zona incluye 8x16, son posibles otros conjuntos predeterminados de tamaños de zona, tales como solo 16x32 cuando se está utilizando un formato de croma 4:2:2 o 32x32 cuando se está utilizando un formato de croma 4:4:4.
Para cada canal de croma, si el nodo padre tenía un valor de indicador de bloque codificado de uno, entonces para cada n, se codifica un indicador de bloque codificado en el flujo de bits codificado 312. Por ejemplo, cuando el número de transformadas es igual a dos, los indicadores de bloque codificados 942 y 944 indican la presencia de una transformada para cada una de las dos zonas deducidas por el fraccionamiento. Una etapa de selección de transformada directa 1006 selecciona una transformada directa a partir de un conjunto predeterminado de transformadas directas, para cada una del número máximo de transformadas, basándose en un tamaño de unidad de transformada (TU), que a su vez depende de la profundidad de transformada, y, por tanto, está relacionado con un nivel jerárquico de la unidad de transformada en la unidad de codificación más grande. Cuando la profundidad de transformada es igual a cero, el tamaño de unidad de transformada (TU) es igual al tamaño de unidad de codificación (CU). Para cada incremento de la profundidad de transformada, el tamaño de unidad de transformada (TU) se reduce a la mitad. Para un tamaño de unidad de codificación (CU) de 32x32, una profundidad de transformada de cero y utilizando un formato de croma 4:2:2, el tamaño de unidad de transformada (TU) será, por tanto, de 32x32 y el tamaño de transformada para croma será, por tanto, de 16x32. Por ejemplo, cuando el número máximo de transformadas es de dos y el tamaño de zona para croma es de 16x32, entonces se selecciona una transformada directa de 16x16 para cada una de las zonas de 16x16 para croma resultantes a partir del fraccionamiento deducido.
Una etapa 1008 de aplicación de transformada directa realiza la transformada directa para cada una del número máximo de transformadas en la zona correspondiente que tiene un valor de indicador de bloque codificado de uno. La etapa 1008 de codificación de matrices de muestras residuales de croma se realiza en general mediante el módulo de transformada 320. Esto tiene como resultado una conversión de cada matriz de muestras residuales de croma (representación en el dominio espacial) para dar una matriz de coeficientes residuales de croma (representación en el dominio de frecuencia).
Una etapa 1010 de codificación de matrices de coeficientes residuales de croma codifica la matriz de coeficientes residuales de croma para cada una del número máximo de zonas de transformada de cada canal de croma que tiene un valor de indicador de bloque codificado de uno en el flujo de bits codificado 312. El número de matrices de coeficientes residuales de croma codificadas para una unidad de transformada dada para un canal de croma dado depende del valor de indicador de bloque codificado de cada transformada y, por tanto, variará desde cero hasta (como máximo) el número máximo de transformadas. Por ejemplo, cuando el número de transformadas es de dos y ambos canales de croma tienen valores de indicador de bloque codificado de uno para cada uno de los valores de recuento, entonces los bloques residuales de croma 956, 958, 960 y 962 se codifican en el flujo de bits codificado 312. Si el valor de indicador de bloque codificado para cada transformada para un canal de croma dado es cero, entonces no se codifica ningún bloque residual de croma en el flujo de bits codificado 312 para ese canal de croma. La etapa 1010 de codificación de matrices de coeficientes residuales de croma se realiza en general mediante el codificador por entropía 324.
La figura 11 es un diagrama de flujo esquemático que muestra un procedimiento 1100 para decodificar una unidad de transformada (TU) mediante decodificación de la estructura 902 de sintaxis de nodo no de hoja del árbol de transformada y la estructura 932 de sintaxis de nodo hoja del árbol de transformada. El procedimiento 1100 se describe haciendo referencia a un canal de croma de la unidad de transformada (TU), sin embargo, el procedimiento 1100 se puede aplicar a cualquier canal de croma de la unidad de transformada (TU). Dado que la estructura 902 de sintaxis de nodo no de hoja del árbol de transformada y la estructura 932 de sintaxis de nodo hoja del árbol de transformada describen un nodo en el árbol de transformada, el procedimiento 1100 decodifica un nodo del árbol de transformada a partir del flujo de bits codificado 312. El procedimiento 1100 se puede realizar en hardware apropiado o, alternativamente, en software, por ejemplo, ejecutable por el procesador 205. El procedimiento 1100 se invoca inicialmente para el nivel superior del árbol de transformada y se puede invocar a sí mismo (de manera recursiva) para decodificar nodos hijo del árbol de transformada. Una etapa 1102 de determinación de tamaño de unidad de transformada (TU) determina un tamaño de unidad de transformada (TU) de una manera idéntica a la etapa 1002 de determinación de tamaño de unidad de transformada. La etapa 1102 de determinación de tamaño de unidad de transformada determina el tamaño de una unidad de transformada (TU) en un árbol de transformada, según el tamaño de unidad de codificación (CU) que contiene el árbol de transformada y un valor de profundidad de transformada de la unidad de transformada (TU). Cuando se invoca el procedimiento 1100 en el nivel superior del árbol de transformada, el valor de profundidad de transformada se establece a cero, de lo contrario, el valor de profundidad de transformada se proporciona por el caso padre del procedimiento 1100. Un valor de indicador de transformada de fraccionamiento, tal como el valor de indicador de transformada de fraccionamiento 702, se decodifica a partir del flujo de bits codificado 312 como indicador de transformada de fraccionamiento 910 si el valor de profundidad de transformada es menor que la profundidad de transformada máxima permitida.
Cuando el valor de indicador de transformada de fraccionamiento es uno, los indicadores de bloque codificados de croma 912 y 914 sólo se decodifican para cada canal de croma si el nodo padre de la jerarquía de árbol de transformada tiene un valor de indicador de bloque codificado correspondiente de uno. A continuación, el procedimiento 1100 invoca un nuevo caso del procedimiento 1100 para cada nodo hijo (representado en la parte del flujo de bits codificado 312 mediante estructuras de sintaxis 916, 918, 920 y 922 de árbol de transformada) del árbol de transformada. Cada caso del procedimiento 1100, invocado para los nodos hijo, está dotado de un valor de profundidad de transformada igual al valor de profundidad de transformada del presente caso de procedimiento 1100 incrementado en uno.
Cuando el valor de indicador de transformada de fraccionamiento es cero, una etapa 1104 de identificación del número máximo de transformadas inversas determina un número (máximo) (n) de transformadas para cada una de la, como mínimo, una matriz de coeficientes residuales de croma presente en cada canal de croma de la zona que se está decodificando, de una manera idéntica a la etapa 1004 de identificación del número máximo (n) de transformadas directas. Cuando no tiene lugar ningún fraccionamiento deducido, este número n será uno. Cuando se está utilizando un formato de croma 4:2:2 y se encuentra una zona rectangular de un canal de croma, tal como la zona de 8x16 664, y el tamaño de zona es uno de un conjunto predeterminado de tamaños de zona (tales como 16x32 y 8x16), tiene lugar un fraccionamiento deducido y el número máximo de transformadas será de dos (de lo contrario el número de transformadas será de una). De lo contrario (el tamaño de zona no es uno de un conjunto predeterminado de tamaños de zona) el número máximo de transformadas será de una. Por ejemplo, si 4x8 no es uno del conjunto predeterminado de tamaños de zona, entonces el número máximo de transformadas será de una. Cuando se está utilizando un formato de croma 4:4:4 y el tamaño de zona encontrado es uno de un conjunto predeterminado de tamaños de zona (tal como una zona de 32x32), tiene lugar un fraccionamiento deducido y el número máximo de transformadas será de cuatro. De lo contrario (el tamaño de zona no es uno de un conjunto predeterminado de tamaños de zona) el número máximo será de uno. Por ejemplo, si 8x8 no es uno del conjunto predeterminado de tamaños de zona, entonces el número máximo de transformadas será de una. Aunque el conjunto predeterminado de tamaños de zona incluye 8x16, son posibles otros conjuntos predeterminados de tamaños de zona, tales como tan sólo 16x32 cuando se está utilizando un formato de croma 4:2:2 o 32x32 cuando se está utilizando un formato de croma 4:4:4. Para cada canal de croma, si el nodo padre tenía un valor de indicador de bloque codificado de uno, entonces, para cada una de las (n) transformadas, se decodifica un indicador de bloque codificado en el flujo de bits codificado 312. Por ejemplo, cuando el número máximo de transformadas es igual a dos, los indicadores de bloque codificados 942 y 944 indican la presencia de una transformada para cada una de las dos zonas deducidas por el fraccionamiento.
A continuación, una etapa de decodificación de matrices de coeficientes residuales de croma 1106 decodifica la matriz de coeficientes residuales para cada una del número máximo de zonas de transformada de cada canal de croma a partir del flujo de bits codificado 312 que tienen un valor de indicador de bloque codificado de uno. El número de matrices de coeficientes residuales decodificadas para una unidad de transformada dada para un canal de croma dado depende del valor de indicador de bloque codificado de cada transformada y, por tanto, variará desde cero hasta (como máximo) el “número (n) de transformadas”. Por ejemplo, cuando el número de transformadas es de dos y ambos canales de croma tienen indicadores de bloque codificados de uno para cada uno de los valores de recuento, entonces los bloques residuales de croma 956, 958, 960 y 962 se decodifican a partir del flujo de bits codificado 312. La etapa de decodificación de matrices de coeficientes residuales de croma 1106 se realiza en general mediante el decodificador por entropía 420 para cada matriz de coeficientes residuales de croma que tiene un valor de indicador de bloque codificado de uno.
A continuación, una etapa 1108 de selección de transformada inversa selecciona una transformada inversa a partir de un conjunto predeterminado de transformadas inversas, para cada una del número máximo de transformadas que tienen un valor de indicador de bloque codificado de uno para cada canal de croma. Por ejemplo, cuando el número máximo de transformadas es de dos y el tamaño de zona es de 16x32 y el valor de indicador de bloque codificado para cada una de las dos transformadas es de uno, entonces se selecciona una transformada inversa de 16x16 para cada una de las zonas de 16x16 resultantes a partir del fraccionamiento deducido.
A continuación, una etapa 1110 de aplicación de transformada inversa realiza la transformada inversa para cada una del número máximo de zonas de transformada en la zona correspondiente que tienen un valor de indicador de bloque codificado de uno. Esto tiene como resultado una conversión de cada matriz de coeficientes residuales de croma (representación en el dominio de frecuencia) para dar una matriz de muestras residuales de croma (representación en el dominio espacial) representativa de la trama de vídeo decodificada. La etapa 1110 de aplicación de transformada inversa se realiza en general mediante el módulo de ajuste a escala y transformada inverso 422.
La figura 12A muestra un patrón de exploración en diagonal 1201, la figura 12B muestra un patrón de exploración horizontal 1202, y la figura 12C muestra un patrón de exploración vertical 1203, cada uno para una unidad de transformada de 4x8 1200. Estas implementaciones que realizan la exploración de la unidad de transformada de 4x8 1200 utilizando los patrones de exploración ilustrados tienen la propiedad de que los coeficientes residuales se agrupan en bloques de 4x4, conocidos como “subbloques”. Por tanto, se puede utilizar un indicador de “grupo de coeficientes” presente en el flujo de bits codificado 312 para indicar, para cada subbloque, la presencia de, como mínimo, un coeficiente residual significativo (distinto de cero). Aplicar un tamaño de subbloque de 4x4 para la transformada de 4x8 logra consistencia con el patrón de exploración presente en otros tamaños de transformada, en los que los coeficientes se agrupan siempre en subbloques.
Las implementaciones concretas pueden aplicar un indicador de grupo de coeficientes para señalizar la presencia de, como mínimo, un coeficiente residual distinto de cero en cada subbloque. Ventajosamente, estos patrones de exploración permiten la reutilización de software de control o conjunto de circuitos digitales que procesa coeficientes residuales, reutilizando el proceso de subbloques para todos los tamaños de transformada. El patrón de exploración concreto utilizado se puede seleccionar según criterios tales como la dirección de intrapredicción de la unidad de predicción (PU) ubicada conjuntamente. Cuando una transformada codifica muestras de croma en una cuadrícula de muestras de formato de croma 4:2:2, la relación entre la dirección de intrapredicción y el patrón de exploración se altera porque cada muestra de croma se mapea a una matriz de muestras de luma no cuadrada (2x1), afectando a la “dirección” o al ángulo del modo de intrapredicción. La exploración se muestra en una dirección “hacia atrás”, terminando en el coeficiente DC, ubicado en la esquina superior izquierda de la unidad de transformada (TU). Además, no se requiere que la exploración comience en la esquina inferior derecha de la unidad de transformada (TU). Debido a la predominancia de coeficientes residuales distintos de cero en la zona superior izquierda de la unidad de transformada (TU), la exploración puede comenzar a partir de una “posición de coeficiente menos significativo” y avanzar en una dirección hacia atrás hasta que se alcanza el coeficiente superior izquierdo.
Otras implementaciones pueden aplicar una única exploración a una zona dada para codificar coeficientes residuales y a continuación aplicar más de una transformada a estos coeficientes residuales. En este caso, sólo un utiliza un indicador de bloque codificado para la zona y, por tanto, para todas las transformadas cubiertas por el patrón de exploración. El indicador de bloque codificado se establece a uno si, como mínimo, existe un coeficiente residual significativo en cualquiera de las exploraciones. Por ejemplo, los patrones de exploración de 4x8 de las figuras 12A-12C se pueden aplicar para codificar coeficientes residuales de dos transformadas de 4x4. Las dos matrices de coeficientes residuales de 4x4 se pueden concatenar para formar una matriz de 4x8 adecuada para el patrón de exploración. Dado que se realiza una única exploración sobre la matriz, se codifica una única posición de “coeficiente menos significativo” en el flujo de bits para el patrón de exploración y un único valor de indicador de bloque codificado es suficiente para la matriz. La propiedad de compactación de energía de la transformada de coseno discreta modificada (DCT) proporciona ventaja a otros esquemas, tales como el entrelazado de los coeficientes de cada transformada cuadrada a lo largo del trayecto del patrón de exploración para dar la matriz de coeficientes rectangular. Esto proporciona la ventaja de que la densidad de valores de coeficientes residuales en cada matriz de coeficientes residuales de 4x4 se iguala aproximadamente en la matriz de 4x8 combinada, permitiendo crear una eficiencia de compresión superior por el codificador por entropía 324, para su posterior decodificación por el decodificador por entropía 420.
Determinadas implementaciones que codifican canales de color de croma pueden utilizar una primera transformada para codificar muestras residuales en ubicaciones de muestras de croma correspondientes a una cuadrícula de muestras de croma de 4:2:0 y una segunda transformada para codificar muestras residuales en las ubicaciones adicionales de muestras de croma introducidas en la cuadrícula de muestras de croma de 4:2:2, con respecto a la cuadrícula de muestras de croma de 4:2:0. Tales implementaciones pueden utilizar ventajosamente una transformada simplificada para la segunda transformada, tal como una transformada de Hadamard añadiéndose (o combinándose de otro modo) la salida de la segunda transformada a las muestras residuales para la primera transformada para producir las muestras residuales para la segunda transformada. Ventajosamente, se puede utilizar una etapa de proceso previo que implementa una transformada tal como una transformada de Haar para muestrear la cuadrícula de muestras de croma para un formato de croma 4:2:2 en la cuadrícula de muestras de croma para un formato de croma 4:2:0. Tales configuraciones deben transmitir coeficientes residuales adicionales a partir de la etapa de proceso previo como información secundaria, tal como un residuo aplicado a cada unidad de codificación más grande (LCU) en el caso de que la transformada de proceso previo se aplique a nivel de la unidad de codificación más grande (LCU).
Las implementaciones que tienen múltiples transformadas para una zona dada pueden utilizar una única exploración combinada que cubre la zona completa o una exploración independiente para cada transformada. Si la exploración para las múltiples transformadas se combina en una única exploración, entonces sólo se requiere un indicador de bloque codificado para cada zona que está explorándose. Estas implementaciones que utilizan una única exploración combinada pueden lograr una compresión superior de los coeficientes residuales entrelazando los coeficientes residuales de cada transformada, tal como entrelazando coeficiente a coeficiente, con el fin de ubicar conjuntamente coeficientes residuales de cada transformada que tienen propiedades espectrales similares.
El apéndice A ilustra “texto” posible para el estándar de codificación de vídeo de alta eficiencia (HEVC) en desarrollo que es relevante para la estructura de sintaxis 900 y la estructura de sintaxis 930. Cada caso de una función de transform_tree() en el apéndice A se representa como una parte de la estructura de sintaxis marcada “TT” en las figuras 9A y 9C y cada caso de una función de transform_unit() en el apéndice A se representa como una parte de la estructura de sintaxis marcada “TU” en las figuras 9A y 9B. El texto proporcionado en el apéndice A es un ejemplo de texto que concuerda con las estructuras de sintaxis 900, y son posibles 930 y otros ejemplos. El texto que concuerda con las estructuras de sintaxis 900 y 930 implica que el codificador de vídeo 114 realiza el procedimiento 1000 para codificar un flujo de bits y el decodificador de vídeo 134 realiza el procedimiento 1100 para decodificar el flujo de bits.
El apéndice B ilustra texto posible para el estándar de codificación de vídeo de alta eficiencia (HEVC) en desarrollo, que es relevante para la estructura de sintaxis 9100 y la estructura de sintaxis 9130. Cada caso de una función de transform_tree()en el apéndice B se representa como una parte de la estructura de sintaxis marcada “TT” en las figuras 9C y 9D y cada caso de una función de transform_unit()en el apéndice A se representa como una parte de la estructura de sintaxis marcada “TU” en las figuras 9C y 9D. El texto proporcionado en el apéndice B es un ejemplo de texto que concuerda con las estructuras de sintaxis 9100 y 9130, y son posibles otros ejemplos. El texto que concuerda con las estructuras de sintaxis 9100 y 9130 implica asimismo que el codificador de vídeo 114 realiza el procedimiento 1000 para codificar un flujo de bits y el decodificador de vídeo 134 realiza el procedimiento 1100 para decodificar el flujo de bits.
El texto en el apéndice A y el apéndice B tiene como resultado una implementación mediante la cual la zona de croma de 32x32 encontrada en una unidad de transformada (TU) de tamaño 32x32 configurada para el formato de croma 4:4:4 tiene como resultado que se aplican (un número máximo de) cuatro transformadas de croma de 16x16, y la zona de croma 16x32 encontrada en una unidad de transformada (TU) de tamaño 32x32 configurada para el formato de croma 4:2:2 tiene como resultado que se aplican (un número máximo de) dos transformadas de croma de 16x16. La implementación resultante del texto en el apéndice A y el apéndice B, cuando se aplica a unidades de transformada (TU) de tamaño menor y configuradas para el formato de croma 4:2:2, se aplica (un máximo de) una transformada de croma. Por ejemplo, se aplica una transformada de 8x16 a una zona de croma de 8x16 y se aplica una transformada de 4x8 a una zona de croma de 4x8.
APLICABILIDAD INDUSTRIAL
Las disposiciones descritas son aplicables a las industrias informática y de procesamiento de datos y, en particular, al procesamiento de señales digitales para la codificación y decodificación de señales tales como señales de vídeo. Lo anterior sólo describe algunas realizaciones de la presente invención, y se pueden realizar modificaciones y/o cambios a las mismas sin salirse del alcance de la presente invención, siendo las realizaciones ilustrativas y no restrictivas.
APÉNDICE A
TRANSFORM_TREE() Y TRANSFORM_UNIT() IMPLEMENTAN EL FRACCIONAMIENTO DE CROMA DEDUCIDO UTILIZANDO UNA CONSTRUCCIÓN DE BUCLE
7.3.11 Sintaxis de árbol de transformada
Figure imgf000022_0001
________________________________________________________________________________
7.3.12 Sintaxis de unidad de transformada
Figure imgf000022_0002
Figure imgf000023_0001
7.4.8.1 Semántica de unidad de codificación general
Las variables TrafoCrCbHorCnt y TrafoCrCbVertCnt se obtienen de la siguiente manera:
- Si log2TrafoSize es igual a 5 y split_transform_flag es igual a 0, TransformIdxMax se obtiene de la siguiente manera: - Si chroma_format_idc es igual a 1, TrafoCrCbHorCnt y TrafoCrCbVertCnt son iguales a 1.
- Si chroma_format_idc es igual a 2, TrafoCrCbHorCnt es igual a 1 y TrafoCrCbVertCnt es igual a 2.
- De lo contrario, si chroma_format_idc es igual a 3, TrafoCrCbHorCnt y TrafoCrCbVertCnt son iguales a 2.
- De lo contrario, TrafoCrCbHorCnt y TrafoCrCbVertCnt son iguales a 1.
La variable TrafoCrCbCnt se obtiene como TrafoCrCbHorCnt * TrafoCrCbVertCnt.
Las variables log2CrCbTrafoHorSize y log2CrCbTrafoVertSize se obtienen de la siguiente manera:
- Si chroma_format_idc es igual a 1, log2CrCbTrafoHorSize y log2CrCbTrafoVertSize son iguales a log2TrafoSize - 1. - De lo contrario, si chroma_format_idc es igual a 2, log2CrCbTrafoHorSize es igual a log2TrafoSize y log2CrCbTrafoVertSize es igual a min(log2TrafoSize - 1,4).
- De lo contrario, si chroma_format_idc es igual a 3, log2CrCbTrafoHorSize y log2CrCbTrafoVertSize son iguales a min(log2TrafoSize, 4).
FIN DEL APÉNDICE A APÉNDICE B INVOCAR TRANSFORM_TREE() UNA VEZ POR PAR DE CANALES DE CROMA PARA CADA TRANSFORMADA DE CROMA RESULTANTE DEL FRACCIONAMIENTO DEDUCIDO.
7.3.11 Sintaxis de árbol de transformada
Figure imgf000023_0002
___________ _____________________________________________________________________
Figure imgf000024_0001
________________________________________________________________________________ 7.3.12 Sintaxis de unidad de transformada
Figure imgf000024_0002
_________________________________________________________________________
7.4.8.1 Semántica de unidad de codificación general
Las variables TrafoCrCbHorCnt y TrafoCrCbVertCnt se obtienen de la siguiente manera:
- Si log2TrafoSize es igual a 5 y split_transform_flag es igual a 0, TransformIdxMax se obtiene de la siguiente manera:
- Si chroma_format_idc es igual a 1, TrafoCrCbHorCnt y TrafoCrCbVertCnt son iguales a 1.
- Si chroma_format_idc es igual a 2, TrafoCrCbHorCnt es igual a 1 y TrafoCrCbVertCnt es igual a 2.
- De lo contrario, si chroma_format_idc es igual a 3, TrafoCrCbHorCnt y TrafoCrCbVertCnt son iguales a 2.
- De lo contrario, TrafoCrCbHorCnt y TrafoCrCbVertCnt son iguales a 1.
La variable TrafoCrCbCnt se obtiene como TrafoCrCbHorCnt * TrafoCrCbVertCnt.
Fin del apéndice B

Claims (24)

REIVINDICACIONES
1. Procedimiento (1100) de decodificación a partir de un flujo de bits de vídeo (312) de una unidad (952) de transformada de una trama de vídeo (510) que está en un formato 4:2:2 y que contiene muestras residuales de croma (456), conteniendo la unidad (952) de transformada dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de dos canales de croma, comprendiendo el procedimiento:
determinar un tamaño (1102) de transformada de la unidad (952) de transformada para los dos canales de croma, determinándose el tamaño de transformada según un valor de profundidad de transformada de la unidad (952) de transformada y un tamaño de una unidad de codificación que contiene un árbol (630) de transformada que incluye la unidad (952) de transformada y un nodo padre que tiene un indicador de bloque codificado que indica la presencia de, como mínimo, un coeficiente distinto de cero para una zona que incluye la unidad de transformada, en el que el valor de profundidad corresponde a un nivel jerárquico de la unidad (952) de transformada dentro del árbol (630) de transformada que depende de un indicador de transformada de fraccionamiento que se codifica en el flujo de bits de vídeo (312) si el valor de profundidad de transformada de la unidad (952) de transformada es menor que una profundidad de transformada máxima permitida;
decodificar (1104) dos valores (942, 944) de indicador de bloque codificado para un primero de los dos canales de croma de la unidad (952) de transformada y dos valores (946, 948) de indicador de bloque codificado para el segundo de los dos canales de croma de la unidad (952) de transformada a partir del flujo de bits de vídeo (312), en el que la unidad (952) de transformada tiene dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los canales de croma, y cada valor de indicador de bloque codificado de los dos valores (942, 944, 946, 948) de indicador de bloque codificado corresponde a una matriz de coeficientes residuales de croma de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962);
decodificar (1106) a partir del flujo de bits de vídeo (312) cada una de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los canales de croma, según un valor de indicador de bloque codificado correspondiente de los dos valores (942, 944, 946, 948) de indicador de bloque codificado; seleccionar (1108) una transformada inversa cuadrada para las matrices de coeficientes residuales de croma decodificadas (956, 958, 960, 962), seleccionándose la transformada inversa cuadrada a partir de un conjunto predeterminado de transformadas inversas cuadradas, según el tamaño de transformada determinado; y aplicar (1110) la transformada inversa cuadrada seleccionada a cada una de las matrices de coeficientes residuales de croma decodificadas (956, 958, 960, 962) para producir las muestras residuales de croma (456) para el canal de croma de la unidad (952) de transformada.
2. Procedimiento (1000) de codificación en un flujo de bits de vídeo (312) de una unidad (952) de transformada de una trama de vídeo (510) que está en un formato 4:2:2 y que contiene muestras residuales de croma (456), conteniendo la unidad (952) de transformada dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de dos canales de croma, comprendiendo el procedimiento:
codificar un indicador de transformada de fraccionamiento en el flujo de bits de vídeo (312) si un valor de profundidad de transformada de la unidad (952) de transformada es menor que una profundidad de transformada máxima permitida;
determinar un tamaño de transformada (1002) de la unidad (952) de transformada para los dos canales de croma, determinándose el tamaño de transformada según el valor de profundidad de transformada de la unidad (952) de transformada y un tamaño de una unidad de codificación que contiene un árbol (630) de transformada que incluye la unidad (952) de transformada, en el que el valor de profundidad corresponde a un nivel jerárquico de la unidad (952) de transformada dentro del árbol (630) de transformada que depende del indicador de transformada de fraccionamiento;
codificar un indicador de bloque codificado para un nodo padre del árbol (630) de transformada en el flujo de bits de vídeo (312), indicando el indicador de bloque codificado la presencia de, como mínimo, un coeficiente distinto de cero para una zona que incluye la unidad de transformada;
codificar (1002) dos valores (942, 944) de indicador de bloque codificado para un primero de los dos canales de croma de la unidad (952) de transformada y dos valores (946, 948) de indicador de bloque codificado para el segundo de los dos canales de croma de la unidad (952) de transformada en el flujo de bits de vídeo (312), en el que la unidad (952) de transformada tiene dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los canales de croma y cada valor de indicador de bloque codificado de los dos valores (942, 944, 946, 948) de indicador de bloque codificado corresponde a una matriz de coeficientes residuales de croma de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962);
seleccionar (1006) una transformada directa cuadrada para las matrices de coeficientes residuales de croma (956, 958, 960, 962), seleccionándose la transformada directa cuadrada entre un conjunto predeterminado de transformadas directas cuadradas, según el tamaño de transformada determinado;
aplicar (1008) la transformada directa cuadrada seleccionada a cada una de las matrices de coeficientes residuales de croma (956, 958, 960, 962) para producir las muestras residuales de croma (456) para el canal de croma de la unidad (952) de transformada; y
codificar (1010) en el flujo de bits de vídeo (312) cada una de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962), según un valor de indicador de bloque codificado correspondiente de los dos valores (942, 944, 946, 948) de indicador de bloque de codificación.
3. Procedimiento (1100), según la reivindicación 1, en el que un valor de indicador de bloque codificado de cero indica que todos los coeficientes residuales de la matriz de coeficientes residuales correspondiente (956, 958, 960, 962) son cero y un valor de indicador de bloque codificado de uno indica que, como mínimo, un coeficiente residual de la matriz de coeficientes residuales correspondiente (956, 958, 960, 962) es distinto de cero.
4. Procedimiento (1100), según la reivindicación 1, en el que el tamaño de transformada es uno de 16x16, 8x8 o 4x4.
5. Procedimiento (1100), según la reivindicación 1, en el que los valores de indicador de bloque codificado correspondientes de los dos valores (942, 944, 946, 948) de indicador de bloque codificado señalizan la presencia de una transformada para un canal de croma individual.
6. Procedimiento (1100), según la reivindicación 1, en el que la unidad (952) de transformada tiene un fraccionamiento deducido si la unidad (952) de transformada se codifica en una zona de croma que tiene un tamaño de uno de 4x8, 8x16 y 16x32.
7. Procedimiento (1000), según la reivindicación 2, en el que un valor de indicador de bloque codificado de cero indica que todos los coeficientes residuales de la matriz de coeficientes residuales correspondiente (956, 958, 960, 962) son cero y un valor de indicador de bloque codificado de uno indica que, como mínimo, un coeficiente residual de la matriz de coeficientes residuales correspondiente (956, 958, 960, 962) es distinto de cero.
8. Procedimiento (1000), según la reivindicación 2, en el que el tamaño de transformada es uno de 16x16, 8x8 o 4x4.
9. Procedimiento (1100), según la reivindicación 1, en el que una unidad (952) de transformada para un canal de luma tiene un indicador de bloque codificado individual.
10. Decodificador de vídeo (134) para decodificar a partir de un flujo de bits de vídeo (312) una unidad (952) de transformada de una trama de vídeo (510) que está en un formato 4:2:2 y que contiene muestras residuales de croma (456), conteniendo la unidad (952) de transformada dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de dos canales de croma, comprendiendo el decodificador (134):
un determinador para determinar un tamaño (1102) de transformada de la unidad (952) de transformada para los dos canales de croma, determinándose el tamaño de transformada según un valor de profundidad de transformada de la unidad (952) de transformada y un tamaño de una unidad de codificación que contiene un árbol (630) de transformada que incluye la unidad (952) de transformada y un nodo padre que tiene un indicador de bloque codificado que indica la presencia de, como mínimo, un coeficiente distinto de cero para una zona que incluye la unidad de transformada, en el que el valor de profundidad corresponde a un nivel jerárquico de la unidad (952) de transformada dentro del árbol (630) de transformada que depende de un indicador de transformada de fraccionamiento que se codifica en el flujo de bits de vídeo (312) si el valor de profundidad de transformada de la unidad (952) de transformada es menor que una profundidad de transformada máxima permitida;
un primer decodificador para decodificar (1104) dos valores (942, 944) de indicador de bloque codificado para un primero de los dos canales de croma de la unidad (952) de transformada y dos valores (946, 948) de indicador de bloque codificado para el segundo de los dos canales de croma de la unidad (952) de transformada a partir del flujo de bits de vídeo (312), en el que la unidad (952) de transformada tiene dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los canales de croma, y cada valor de indicador de bloque codificado de los dos valores (942, 944, 946, 948) de indicador de bloque codificado corresponde a una matriz de coeficientes residuales de croma de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962);
un segundo decodificador para decodificar (1106) a partir del flujo de bits de vídeo (312) cada una de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los canales de croma, según un valor de indicador de bloque codificado correspondiente de los dos valores (942, 944, 946, 948) de indicador de bloque codificado;
un selector para seleccionar (1108) una transformada inversa cuadrada para las matrices de coeficientes residuales de croma decodificadas (956, 958, 960, 962), seleccionándose la transformada inversa cuadrada entre un conjunto predeterminado de transformadas inversas cuadradas, según el tamaño de transformada determinado; y un aplicador para aplicar (1110) la transformada inversa cuadrada seleccionada a cada una de las matrices de coeficientes residuales de croma decodificadas (956, 958, 960, 962) para producir las muestras residuales de croma (456) para el canal de croma de la unidad (952) de transformada.
11. Decodificador (134), según la reivindicación 10, en el que un valor de indicador de bloque codificado de cero indica que todos los coeficientes residuales de la matriz de coeficientes residuales correspondiente (956, 958, 960, 962) son cero y un valor de indicador de bloque codificado de uno indica que, como mínimo, un coeficiente residual de la matriz de coeficientes residuales correspondiente (956, 958, 960, 962) es distinto de cero.
12. Decodificador (134), según la reivindicación 10, en el que el tamaño de transformada es uno de 16x16, 8x8 o 4x4.
13. Decodificador (134), según la reivindicación 10, en el que los valores de indicador de bloque codificado correspondientes de los dos valores (942, 944, 946, 948) de indicador de bloque codificado señalizan la presencia de una transformada para un canal de croma individual.
14. Decodificador (134), según la reivindicación 10, en el que la unidad (952) de transformada tiene un fraccionamiento deducido si la unidad (952) de transformada se codifica en una zona de croma que tiene un tamaño de uno de 4x8, 8x16 y 16x32.
15. Programa informático (233) que se puede ejecutar por un procesador (205) para decodificar a partir de un flujo de bits de vídeo (312) una unidad (952) de transformada de una trama de vídeo (510) que está en un formato 4:2:2 y que contiene muestras residuales de croma (456), conteniendo la unidad (952) de transformada dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de dos canales de croma, comprendiendo el programa:
código para determinar un tamaño (1102) de transformada de la unidad (952) de transformada para los dos canales de croma, determinándose el tamaño de transformada según un valor de profundidad de transformada de la unidad (952) de transformada y un tamaño de una unidad de codificación que contiene un árbol (630) de transformada que incluye la unidad (952) de transformada y un nodo padre que tiene un indicador de bloque codificado que indica la presencia de, como mínimo, un coeficiente distinto de cero para una zona que incluye la unidad de transformada, en el que el valor de profundidad corresponde a un nivel jerárquico de la unidad (952) de transformada dentro del árbol (630) de transformada que depende de un indicador de transformada de fraccionamiento que se codifica en el flujo de bits de vídeo (312) si el valor de profundidad de transformada de la unidad (952) de transformada es menor que una profundidad de transformada máxima permitida;
código para decodificar (1104) dos valores (942, 944) de indicador de bloque codificado para un primero de los dos canales de croma de la unidad (952) de transformada y dos valores (946, 948) de indicador de bloque codificado para el segundo de los dos canales de croma de la unidad (952) de transformada a partir del flujo de bits de vídeo (312), en el que la unidad (952) de transformada tiene dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los canales de croma, y cada valor de indicador de bloque codificado de los dos valores (942, 944, 946, 948) de indicador de bloque codificado corresponde a una matriz de coeficientes residuales de croma de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962);
código para decodificar (1106) a partir del flujo de bits de vídeo (312) cada una de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los canales de croma, según un valor de indicador de bloque codificado correspondiente de los dos valores (942, 944, 946, 948) de indicador de bloque codificado; código para seleccionar (1108) una transformada inversa cuadrada para las matrices de coeficientes residuales de croma decodificadas (956, 958, 960, 962), seleccionándose la transformada inversa cuadrada entre un conjunto predeterminado de transformadas inversas cuadradas, según el tamaño de transformada determinado; y código para aplicar (1110) la transformada inversa cuadrada seleccionada a cada una de las matrices de coeficientes residuales de croma decodificadas (956, 958, 960, 962) para producir las muestras residuales de croma (456) para el canal de croma de la unidad (952) de transformada.
16. Programa informático (233), según la reivindicación 15, en el que un valor de indicador de bloque codificado de cero indica que todos los coeficientes residuales de la matriz de coeficientes residuales correspondiente (956, 958, 960, 962) son cero y un valor de indicador de bloque codificado de uno indica que, como mínimo, un coeficiente residual de la matriz de coeficientes residuales correspondiente (956, 958, 960, 962) es distinto de cero.
17. Programa informático (233), según la reivindicación 15, en el que el tamaño de transformada es uno de 16x16, 8x8 o 4x4.
18. Programa informático (233), según la reivindicación 15, en el que los valores de indicador de bloque codificado correspondientes de los dos valores (942, 944, 946, 948) de indicador de bloque codificado señalizan la presencia de una transformada para un canal de croma individual.
19. Programa informático (233), según la reivindicación 15, en el que la unidad (952) de transformada tiene un fraccionamiento deducido si la unidad (952) de transformada se codifica en una zona de croma que tiene un tamaño de uno de 4x8, 8x16 y 16x32.
20. Codificador de vídeo (114) para codificar en un flujo de bits de vídeo (312) una unidad (952) de transformada de una trama de vídeo (510) que está en un formato 4:2:2 y que contiene muestras residuales de croma (456), conteniendo la unidad (952) de transformada dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los dos canales de croma, comprendiendo el codificador (114):
un primer codificador para codificar (1010) en el flujo de bits de vídeo (312) un indicador de transformada de fraccionamiento si un valor de profundidad de transformada de la unidad (952) de transformada es menor que una profundidad de transformada máxima permitida;
un determinador para determinar un tamaño de transformada de la unidad (952) de transformada para los dos canales de croma, determinándose el tamaño de transformada según el valor de profundidad de transformada de la unidad (952) de transformada y un tamaño de una unidad de codificación que contiene un árbol (630) de transformada que incluye la unidad (952) de transformada, en el que el valor de profundidad corresponde a un nivel jerárquico de la unidad (952) de transformada dentro del árbol (630) de transformada que depende del indicador de transformada de fraccionamiento;
un segundo codificador para codificar (1010) en el flujo de bits de vídeo (312) un indicador de bloque codificado para un nodo padre del árbol (630) de transformada, indicando el indicador de bloque codificado la presencia de, como mínimo, un coeficiente distinto de cero para una zona que incluye la unidad de transformada, y para codificar dos valores (942, 944) de indicador de bloque codificado para un primero de los dos canales de croma de la unidad (952) de transformada y dos valores (946, 948) de indicador de bloque codificado para el segundo de los dos canales de croma de la unidad (952) de transformada, en el que la unidad (952) de transformada tiene dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los canales de croma y cada valor de indicador de bloque codificado de los dos valores (942, 944, 946, 948) de indicador de bloque codificado corresponde a una matriz de coeficientes residuales de croma de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962);
un selector para seleccionar (1006) una transformada directa cuadrada para las matrices de coeficientes residuales de croma (956, 958, 960, 962), seleccionándose la transformada directa cuadrada entre un conjunto predeterminado de transformadas directas cuadradas, según el tamaño de transformada recibido;
un aplicador para aplicar (1008) la transformada directa cuadrada seleccionada a cada una de las matrices de coeficientes residuales de croma (956, 958, 960, 962) para producir las muestras residuales de croma (456) para el canal de croma de la unidad (952) de transformada; y
un tercer codificador para codificar (1010) en el flujo de bits de vídeo (312) cada una de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962), según un valor de indicador de bloque codificado correspondiente de los dos valores (942, 944, 946, 948) de indicador de bloque de codificación.
21. Programa informático (233) que se puede ejecutar por un procesador (205) para codificar en un flujo de bits de vídeo (312) una unidad (952) de transformada de una trama de vídeo (510) que está en un formato 4:2:2 y que contiene muestras residuales de croma (456), conteniendo la unidad (952) de transformada dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de dos canales de croma, comprendiendo el programa:
código para codificar (1010) en el flujo de bits de vídeo (312) un indicador de transformada de fraccionamiento si un valor de profundidad de transformada de la unidad (952) de transformada es menor que una profundidad de transformada máxima permitida;
código para determinar un tamaño de transformada de la unidad (952) de transformada para los dos canales de croma, determinándose el tamaño de transformada según el valor de profundidad de transformada de la unidad (952) de transformada y un tamaño de una unidad de codificación que contiene un árbol (630) de transformada que incluye la unidad (952) de transformada, en el que el valor de profundidad corresponde a un nivel jerárquico de la unidad (952) de transformada dentro del árbol (630) de transformada que depende del indicador de transformada de fraccionamiento;
código para codificar (1010) en el flujo de bits de vídeo (312) un indicador de bloque codificado para un nodo padre del árbol (630) de transformada, indicando el indicador de bloque codificado la presencia de, como mínimo, un coeficiente distinto de cero para una zona que incluye la unidad de transformada, y para codificar dos valores (942, 944) de indicador de bloque codificado para un primero de los dos canales de croma de la unidad (952) de transformada y dos valores (946, 948) de indicador de bloque codificado para el segundo de los dos canales de croma de la unidad (952) de transformada, en el que la unidad (952) de transformada tiene dos matrices de coeficientes residuales de croma (956, 958, 960, 962) para cada uno de los canales de croma y cada valor de indicador de bloque codificado de los dos valores (942, 944, 946, 948) de indicador de bloque codificado corresponde a una matriz de coeficientes residuales de croma de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962);
código para seleccionar (1006) una transformada directa cuadrada para las matrices de coeficientes residuales de croma (956, 958, 960, 962), seleccionándose la transformada directa cuadrada entre un conjunto predeterminado de transformadas directas cuadradas, según el tamaño de transformada recibido;
código para aplicar (1008) la transformada directa cuadrada seleccionada a cada una de las matrices de coeficientes residuales de croma (956, 958, 960, 962) para producir las muestras residuales de croma (456) para el canal de croma de la unidad (952) de transformada; y
código para codificar (1010) en el flujo de bits de vídeo (312) cada una de las dos matrices de coeficientes residuales de croma (956, 958, 960, 962), según un valor de indicador de bloque codificado correspondiente de los dos valores (942, 944, 946, 948) de indicador de bloque de codificación.
22. Programa informático (233), según la reivindicación 21, en el que un valor de indicador de bloque codificado de cero indica que todos los coeficientes residuales de la matriz de coeficientes residuales correspondiente (956, 958, 960, 962) son cero y un valor de indicador de bloque codificado de uno indica que, como mínimo, un coeficiente residual de la matriz de coeficientes residuales correspondiente (956, 958, 960, 962) es distinto de cero.
23. Programa informático, según la reivindicación 21, en el que los valores de indicador de bloque codificado correspondientes de los dos valores (942, 944, 946, 948) de indicador de bloque codificado señalizan la presencia de una transformada para el canal de croma individual.
24. Programa informático, según la reivindicación 21, en el que la unidad (952) de transformada tiene un fraccionamiento deducido si la unidad (952) de transformada se codifica en una zona de croma que tiene un tamaño de uno de 4x8, 8x16 y 16x32.
ES13841668T 2012-09-28 2013-09-27 Procedimiento, aparato y sistema para codificar y decodificar las unidades de transformada de una unidad de codificación Active ES2788757T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2012232992A AU2012232992A1 (en) 2012-09-28 2012-09-28 Method, apparatus and system for encoding and decoding the transform units of a coding unit
PCT/AU2013/001116 WO2014047693A1 (en) 2012-09-28 2013-09-27 Method, apparatus and system for encoding and decoding the transform units of a coding unit

Publications (1)

Publication Number Publication Date
ES2788757T3 true ES2788757T3 (es) 2020-10-22

Family

ID=50386719

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13841668T Active ES2788757T3 (es) 2012-09-28 2013-09-27 Procedimiento, aparato y sistema para codificar y decodificar las unidades de transformada de una unidad de codificación

Country Status (11)

Country Link
US (4) US9854241B2 (es)
EP (2) EP2901673B1 (es)
JP (3) JP6282278B2 (es)
KR (5) KR101969620B1 (es)
CN (5) CN108769676B (es)
AU (4) AU2012232992A1 (es)
BR (2) BR112015006767B1 (es)
ES (1) ES2788757T3 (es)
PL (1) PL2901673T3 (es)
RU (3) RU2673704C1 (es)
WO (1) WO2014047693A1 (es)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9609354B2 (en) * 2010-12-14 2017-03-28 M&K Holdings Inc. Apparatus for decoding a moving picture
CN107105280B (zh) * 2010-12-14 2020-01-03 M&K控股株式会社 用于编码运动画面的设备
US9473789B2 (en) * 2010-12-14 2016-10-18 M&K Holdings Inc. Apparatus for decoding a moving picture
US9729884B2 (en) * 2012-01-18 2017-08-08 Lg Electronics Inc. Method and device for entropy coding/decoding
US9860527B2 (en) 2012-01-19 2018-01-02 Huawei Technologies Co., Ltd. High throughput residual coding for a transform skipped block for CABAC in HEVC
US9654139B2 (en) 2012-01-19 2017-05-16 Huawei Technologies Co., Ltd. High throughput binarization (HTB) method for CABAC in HEVC
US10616581B2 (en) 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
US9743116B2 (en) 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
US20130188736A1 (en) 2012-01-19 2013-07-25 Sharp Laboratories Of America, Inc. High throughput significance map processing for cabac in hevc
ES2961654T3 (es) 2012-06-29 2024-03-13 Electronics & Telecommunications Res Inst Método y dispositivo para codificar/decodificar imágenes
WO2014071439A1 (en) * 2012-11-08 2014-05-15 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US9332257B2 (en) * 2012-10-01 2016-05-03 Qualcomm Incorporated Coded black flag coding for 4:2:2 sample format in video coding
GB2512658B (en) * 2013-04-05 2020-04-01 British Broadcasting Corp Transmitting and receiving a composite image
GB2512825A (en) * 2013-04-05 2014-10-15 British Broadcasting Corp Transmitting and receiving a composite image
US9686561B2 (en) * 2013-06-17 2017-06-20 Qualcomm Incorporated Inter-component filtering
WO2015056566A1 (ja) * 2013-10-15 2015-04-23 ソニー株式会社 画像処理装置および方法
JP6066945B2 (ja) * 2014-02-21 2017-01-25 キヤノン株式会社 画像復号装置、画像復号方法及びプログラム
WO2015139010A1 (en) * 2014-03-14 2015-09-17 Vid Scale, Inc. Systems and methods for rgb video coding enhancement
WO2016054774A1 (en) * 2014-10-08 2016-04-14 Mediatek Singapore Pte. Ltd. A method for the co-existence of color-space transform and cross-component prediction
CN107710759B (zh) * 2015-06-23 2020-11-03 联发科技(新加坡)私人有限公司 转换系数编解码的方法及装置
US11076153B2 (en) * 2015-07-31 2021-07-27 Stc.Unm System and methods for joint and adaptive control of rate, quality, and computational complexity for video coding and video delivery
US10681379B2 (en) * 2015-09-29 2020-06-09 Qualcomm Incorporated Non-separable secondary transform for video coding with reorganizing
KR102644185B1 (ko) 2015-09-30 2024-03-06 엘지전자 주식회사 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치
US10277896B2 (en) 2016-01-22 2019-04-30 Apple Inc. Intra-frame prediction systems and methods
US11265578B2 (en) * 2016-02-04 2022-03-01 Samsung Electronics Co., Ltd. Video decoding method and apparatus by chroma-multi-transform, and video encoding method and apparatus by chroma-multi-transform
EP3430808A4 (en) * 2016-03-16 2020-01-15 Mediatek Inc. METHOD AND DEVICE FOR PROCESSING VIDEO DATA WITH RESTRICTED BLOCK SIZE IN VIDEO CODING
KR102492809B1 (ko) * 2016-03-28 2023-01-27 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN116647677A (zh) * 2016-10-28 2023-08-25 韩国电子通信研究院 视频编码/解码方法和设备以及存储比特流的记录介质
KR102559062B1 (ko) * 2016-11-25 2023-07-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
US10609367B2 (en) 2016-12-21 2020-03-31 Qualcomm Incorporated Low-complexity sign prediction for video coding
RU2759052C2 (ru) * 2016-12-28 2021-11-09 Сони Корпорейшн Устройство и способ обработки изображений
WO2018174457A1 (ko) * 2017-03-22 2018-09-27 엘지전자(주) 영상 처리 방법 및 이를 위한 장치
US10779007B2 (en) * 2017-03-23 2020-09-15 Mediatek Inc. Transform coding of video data
JP6680260B2 (ja) * 2017-04-28 2020-04-15 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号化装置、画像復号化方法及び画像復号化プログラム
EP3451663A1 (en) * 2017-08-31 2019-03-06 Thomson Licensing Pools of transforms for local selection of a set of transforms in video coding
US20190116374A1 (en) * 2017-10-17 2019-04-18 Qualcomm Incorporated Coding motion information of video data using coding structure-based candidate list construction
US10368071B2 (en) * 2017-11-03 2019-07-30 Arm Limited Encoding data arrays
CN115037930A (zh) 2018-01-05 2022-09-09 Sk电信有限公司 对视频进行编码或解码的方法和非暂时性计算机可读介质
KR102524628B1 (ko) 2018-01-05 2023-04-21 에스케이텔레콤 주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
US10812797B2 (en) * 2018-02-05 2020-10-20 Tencent America LLC Method, apparatus and medium for decoding or encoding using a low-complexity transform
CN112166614B (zh) * 2018-03-27 2023-07-14 株式会社Kt 用于处理视频信号的方法和设备
WO2019204212A1 (en) * 2018-04-18 2019-10-24 Futurewei Technologies, Inc. Block partitioning in video coding
US10798382B2 (en) * 2018-04-26 2020-10-06 Tencent America LLC Sub-block transform
US10630990B1 (en) 2018-05-01 2020-04-21 Amazon Technologies, Inc. Encoder output responsive to quality metric information
US10630748B1 (en) * 2018-05-01 2020-04-21 Amazon Technologies, Inc. Video-based encoder alignment
US10958987B1 (en) 2018-05-01 2021-03-23 Amazon Technologies, Inc. Matching based on video data
CN111316641B (zh) * 2018-05-03 2022-08-09 Lg电子株式会社 根据块尺寸使用变换来解码图像的方法和设备
US10949087B2 (en) 2018-05-15 2021-03-16 Samsung Electronics Co., Ltd. Method for rapid reference object storage format for chroma subsampled images
US11449256B2 (en) 2018-05-15 2022-09-20 Samsung Electronics Co., Ltd. Method for accelerating image storing and retrieving differential latency storage devices based on access rates
EP3794820A1 (en) 2018-05-17 2021-03-24 Telefonaktiebolaget LM Ericsson (publ) Deblocking of implicit transform unit boundaries
WO2019234598A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and stmvp
WO2019244117A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
GB2589223B (en) * 2018-06-21 2023-01-25 Beijing Bytedance Network Tech Co Ltd Component-dependent sub-block dividing
TWI714153B (zh) * 2018-06-29 2020-12-21 大陸商北京字節跳動網絡技術有限公司 零單元的定義
WO2020003264A2 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Filtering of zero unit
WO2020018267A1 (en) * 2018-07-17 2020-01-23 Futurewei Technologies, Inc. Constrained coding tree for video coding
AU2018217333A1 (en) * 2018-08-17 2020-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
SG11202101229VA (en) * 2018-08-24 2021-03-30 Samsung Electronics Co Ltd Video decoding method and apparatus, and video encoding method and apparatus
AU2018233042A1 (en) * 2018-09-21 2020-04-09 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
CN110944196B (zh) 2018-09-24 2023-05-30 北京字节跳动网络技术有限公司 简化的基于历史的运动矢量预测
CN112970262B (zh) 2018-11-10 2024-02-20 北京字节跳动网络技术有限公司 三角预测模式中的取整
US11064219B2 (en) * 2018-12-03 2021-07-13 Cloudinary Ltd. Image format, systems and methods of implementation thereof, and image processing
PH12019000380A1 (en) * 2018-12-17 2020-09-28 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
WO2020141908A1 (ko) * 2019-01-01 2020-07-09 엘지전자 주식회사 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치
MX2021008056A (es) * 2019-01-02 2021-09-23 Fraunhofer Ges Forschung Señalización de tipo de transformada y codificación de nivel de coeficiente de transformada dependiente del tipo de transformada unificadas.
WO2020145798A1 (ko) * 2019-01-13 2020-07-16 엘지전자 주식회사 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치
JP7277599B2 (ja) 2019-03-08 2023-05-19 北京字節跳動網絡技術有限公司 映像処理におけるモデルベース再整形に対する制約
AU2019201653A1 (en) * 2019-03-11 2020-10-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
CN113632494B (zh) * 2019-03-22 2023-12-08 华为技术有限公司 用于视频译码的变换单元分割方法
US11451826B2 (en) * 2019-04-15 2022-09-20 Tencent America LLC Lossless coding mode and switchable residual coding
WO2020211869A1 (en) 2019-04-18 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation in cross component mode
CN113711604B (zh) * 2019-04-20 2023-10-27 北京字节跳动网络技术有限公司 视频编解码中色度和亮度语法元素的信令
EP3935855A4 (en) 2019-04-23 2022-09-21 Beijing Bytedance Network Technology Co., Ltd. METHOD OF CROSS-COMPONENT DEPENDENCE REDUCTION
CN113906749B (zh) * 2019-04-30 2023-05-23 北京达佳互联信息技术有限公司 色度残差联合编码方法和装置
JP7267461B2 (ja) 2019-05-10 2023-05-01 北京字節跳動網絡技術有限公司 ビデオ・データ処理方法、装置、記憶媒体及び記憶方法
US11381847B2 (en) * 2019-05-31 2022-07-05 Qualcomm Incorporated Coefficient coding for transform skip mode in video coding
EP3967032A4 (en) 2019-06-07 2022-07-27 Beijing Bytedance Network Technology Co., Ltd. CONDITIONAL SIGNALING OF A REDUCED SECONDARY TRANSFORM FOR VIDEO BIANARY FLOWS
WO2020256595A2 (en) * 2019-06-21 2020-12-24 Huawei Technologies Co., Ltd. Method and apparatus of still picture and video coding with shape-adaptive resampling of residual blocks
KR20220024006A (ko) 2019-06-22 2022-03-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 크로마 잔차 스케일링을 위한 신택스 요소
KR20220005591A (ko) * 2019-06-24 2022-01-13 엘지전자 주식회사 크로마 블록의 최대 변환 크기 설정을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
US11202054B2 (en) * 2019-07-05 2021-12-14 Tencent America LLC Method and apparatus for inter-channel prediction and transform for point-cloud attribute coding
JP7460748B2 (ja) * 2019-07-07 2024-04-02 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのシグナリング
US11232599B2 (en) * 2019-07-11 2022-01-25 Tencent America LLC Method and apparatus for inter-channel prediction and transform for point cloud attribute coding
CN114208183A (zh) 2019-08-03 2022-03-18 北京字节跳动网络技术有限公司 视频的缩减二次变换中基于位置的模式导出
WO2021032045A1 (en) 2019-08-17 2021-02-25 Beijing Bytedance Network Technology Co., Ltd. Context modeling of side information for reduced secondary transforms in video
CN114365490A (zh) 2019-09-09 2022-04-15 北京字节跳动网络技术有限公司 高精度图像和视频编解码的系数缩放
EP4029239A4 (en) * 2019-09-13 2022-12-14 Alibaba Group Holding Limited SUB-BLOCK TRANSFORM INFORMATION SIGNALING METHOD AND APPARATUS
BR112022005133A2 (pt) 2019-09-21 2022-10-11 Beijing Bytedance Network Tech Co Ltd Método e aparelho de processamento de dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios
KR20210042841A (ko) * 2019-10-10 2021-04-20 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR102192631B1 (ko) * 2019-11-28 2020-12-17 주식회사우경정보기술 병렬 포렌식 마킹 장치 및 방법
AU2019275553B2 (en) * 2019-12-03 2022-10-06 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a coding tree unit
AU2019275552B2 (en) * 2019-12-03 2022-10-13 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a coding tree unit
EP4070555A4 (en) * 2019-12-05 2023-01-25 Alibaba Group Holding Limited METHOD AND DEVICE FOR CHROMA SCANNING
WO2021167421A1 (ko) * 2020-02-21 2021-08-26 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
KR20220143870A (ko) * 2020-02-21 2022-10-25 알리바바 그룹 홀딩 리미티드 최대 변환 크기 및 잔차 코딩 방법의 시그널링
CN115443659A (zh) * 2020-02-25 2022-12-06 Lg电子株式会社 与残差编码相关的图像解码方法以及用于其的装置
JP2023523094A (ja) * 2020-06-12 2023-06-01 ベイジン・ダジア・インターネット・インフォメーション・テクノロジー・カンパニー,リミテッド 4:4:4色フォーマットにおけるビデオコーディングの方法及び装置
US20220279185A1 (en) * 2021-02-26 2022-09-01 Lemon Inc. Methods of coding images/videos with alpha channels
WO2023057487A2 (en) * 2021-10-05 2023-04-13 Interdigital Vc Holdings France, Sas Transform unit partitioning for cloud gaming video coding
US20230388544A1 (en) * 2022-05-27 2023-11-30 Tencent America LLC Dynamic mesh compression using inter and intra prediction

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5196946A (en) * 1990-03-14 1993-03-23 C-Cube Microsystems System for compression and decompression of video data using discrete cosine transform and coding techniques
US5278647A (en) * 1992-08-05 1994-01-11 At&T Bell Laboratories Video decoder using adaptive macroblock leak signals
JP3423835B2 (ja) 1996-05-01 2003-07-07 沖電気工業株式会社 スクランブル付き圧縮符号化装置及びその伸長再生装置
EP0843470A4 (en) * 1996-06-06 1999-02-24 Matsushita Electric Ind Co Ltd RECORDING DEVICE, REPRODUCING DEVICE, AND CONVERTER
WO2000004725A1 (en) 1998-07-15 2000-01-27 Koninklijke Philips Electronics N.V. Recording and editing hdtv signals
US7035337B2 (en) * 2000-11-29 2006-04-25 Sony Corporation Stream processing apparatus
JP4217398B2 (ja) * 2001-09-12 2009-01-28 キヤノン株式会社 画像データ処理方法、画像データ処理装置、記憶媒体、及びプログラム
JP3764457B2 (ja) * 2001-11-16 2006-04-05 株式会社エヌ・ティ・ティ・ドコモ 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、及びプログラム
KR100884402B1 (ko) * 2002-06-20 2009-02-17 삼성전자주식회사 데이터의 영역 별 수신 우선 순위에 따라 상이한 개수의파일럿 톤을 삽입하는 디지털방송 송신기
US7292634B2 (en) * 2002-09-24 2007-11-06 Matsushita Electric Industrial Co., Ltd. Image coding method and apparatus
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
RU2368095C1 (ru) 2005-07-22 2009-09-20 Мицубиси Электрик Корпорейшн Кодер изображения и декодер изображения, способ кодирования изображения и способ декодирования изображения, программа кодирования изображения и программа декодирования изображения и компьютерно-считываемый носитель записи, на котором записана программа кодирования изображения, и компьютерно-считываемый носитель записи, на котором записана программа декодирования изображения
US7933337B2 (en) 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
JP5026092B2 (ja) * 2007-01-12 2012-09-12 三菱電機株式会社 動画像復号装置および動画像復号方法
US20100014584A1 (en) * 2008-07-17 2010-01-21 Meir Feder Methods circuits and systems for transmission and reconstruction of a video block
US8483285B2 (en) * 2008-10-03 2013-07-09 Qualcomm Incorporated Video coding using transforms bigger than 4×4 and 8×8
US10455248B2 (en) 2008-10-06 2019-10-22 Lg Electronics Inc. Method and an apparatus for processing a video signal
JP5234368B2 (ja) 2009-09-30 2013-07-10 ソニー株式会社 画像処理装置および方法
KR101703327B1 (ko) * 2010-01-14 2017-02-06 삼성전자 주식회사 계층적 데이터 단위의 패턴 정보를 이용하는 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
US8942282B2 (en) * 2010-04-12 2015-01-27 Qualcomm Incorporated Variable length coding of coded block pattern (CBP) in video compression
US9172963B2 (en) * 2010-11-01 2015-10-27 Qualcomm Incorporated Joint coding of syntax elements for video coding
WO2012090504A1 (en) * 2010-12-28 2012-07-05 Panasonic Corporation Methods and apparatuses for coding and decoding video stream
US9210442B2 (en) * 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
US8948271B2 (en) 2011-01-13 2015-02-03 Texas Instruments Incorporated Method and apparatus for a low complexity transform unit partitioning structure for HEVC
US9848197B2 (en) 2011-03-10 2017-12-19 Qualcomm Incorporated Transforms in video coding
US9807426B2 (en) * 2011-07-01 2017-10-31 Qualcomm Incorporated Applying non-square transforms to video data
US9807401B2 (en) * 2011-11-01 2017-10-31 Qualcomm Incorporated Transform unit partitioning for chroma components in video coding
US9288508B2 (en) * 2011-11-08 2016-03-15 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
US20130128971A1 (en) * 2011-11-23 2013-05-23 Qualcomm Incorporated Transforms in video coding
US9912944B2 (en) * 2012-04-16 2018-03-06 Qualcomm Incorporated Simplified non-square quadtree transforms for video coding
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US9332257B2 (en) * 2012-10-01 2016-05-03 Qualcomm Incorporated Coded black flag coding for 4:2:2 sample format in video coding

Also Published As

Publication number Publication date
EP2901673A1 (en) 2015-08-05
US20180098068A1 (en) 2018-04-05
JP2018101984A (ja) 2018-06-28
CN108683914A (zh) 2018-10-19
RU2673704C1 (ru) 2018-11-29
RU2604986C2 (ru) 2016-12-20
US20150249828A1 (en) 2015-09-03
JP6567100B2 (ja) 2019-08-28
AU2013325121A1 (en) 2015-03-05
BR112015006767B1 (pt) 2022-11-29
CN104685872B (zh) 2018-07-17
JP2018085738A (ja) 2018-05-31
CN108683914B (zh) 2022-05-03
AU2017201208B2 (en) 2018-11-15
BR112015006767A2 (pt) 2017-07-04
KR101911200B1 (ko) 2018-10-23
AU2013325121B2 (en) 2017-03-09
US20180270481A1 (en) 2018-09-20
CN108683913A (zh) 2018-10-19
CN108683913B (zh) 2023-03-10
CN104685872A (zh) 2015-06-03
CN108769676A (zh) 2018-11-06
RU2642825C1 (ru) 2018-01-29
KR20170000394A (ko) 2017-01-02
KR20170132342A (ko) 2017-12-01
WO2014047693A1 (en) 2014-04-03
KR20150050559A (ko) 2015-05-08
RU2015115514A (ru) 2016-11-20
EP2901673A4 (en) 2016-03-30
CN108683912B (zh) 2022-05-03
JP2015534373A (ja) 2015-11-26
US20150326883A1 (en) 2015-11-12
KR20170054558A (ko) 2017-05-17
JP6282278B2 (ja) 2018-02-21
AU2012247040A1 (en) 2014-04-17
EP3684057A1 (en) 2020-07-22
CN108769676B (zh) 2022-01-11
BR112015004116A2 (pt) 2017-07-04
EP3684057B1 (en) 2023-08-16
US10075713B2 (en) 2018-09-11
AU2012232992A1 (en) 2014-04-17
US9854241B2 (en) 2017-12-26
BR112015004116B1 (pt) 2022-10-11
US10382756B2 (en) 2019-08-13
KR20170104646A (ko) 2017-09-15
PL2901673T3 (pl) 2020-09-21
KR101802322B1 (ko) 2017-11-29
CN108683912A (zh) 2018-10-19
AU2017201208A1 (en) 2017-03-16
EP2901673B1 (en) 2020-03-18
KR101969620B1 (ko) 2019-04-16

Similar Documents

Publication Publication Date Title
ES2788757T3 (es) Procedimiento, aparato y sistema para codificar y decodificar las unidades de transformada de una unidad de codificación
AU2017201209B2 (en) Method, apparatus and system for encoding and decoding the transform units of a coding unit
ES2900157T3 (es) Procedimiento, aparato y sistema para codificar y descodificar el mapa de significatividad para los coeficientes residuales de una unidad de transformada
ES2746961T3 (es) Procedimiento, aparato y sistema para codificar y descodificar un subconjunto de unidades de transformación de datos de vídeo codificados
AU2012232972A1 (en) Method, apparatus and system for encoding and decoding the prediction units of a coding unit