ES2960693T3 - Método y aparato para una transformación primaria mediante el uso de un núcleo de transformación de 8 bits - Google Patents

Método y aparato para una transformación primaria mediante el uso de un núcleo de transformación de 8 bits Download PDF

Info

Publication number
ES2960693T3
ES2960693T3 ES19892344T ES19892344T ES2960693T3 ES 2960693 T3 ES2960693 T3 ES 2960693T3 ES 19892344 T ES19892344 T ES 19892344T ES 19892344 T ES19892344 T ES 19892344T ES 2960693 T3 ES2960693 T3 ES 2960693T3
Authority
ES
Spain
Prior art keywords
transform
transform kernel
kernel matrix
matrix
point
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
ES19892344T
Other languages
English (en)
Inventor
Xin Zhao
Xiang Li
Shan Liu
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.)
Tencent America LLC
Original Assignee
Tencent America LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent America LLC filed Critical Tencent America LLC
Application granted granted Critical
Publication of ES2960693T3 publication Critical patent/ES2960693T3/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Discrete Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Mechanical Treatment Of Semiconductor (AREA)
  • Detergent Compositions (AREA)
  • Error Detection And Correction (AREA)
  • Lubricants (AREA)
  • Catalysts (AREA)
  • Peptides Or Proteins (AREA)
  • Curing Cements, Concrete, And Artificial Stone (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)

Abstract

Un método de decodificación o codificación que incluye recibir información con respecto a una secuencia de vídeo para codificar o decodificar, determinar, para la codificación o decodificación de la secuencia de vídeo, si se utiliza una primera matriz central de transformación que es de un primer tipo de tamaño o un segundo núcleo de transformación. matriz que es de un segundo tipo de tamaño, y basada en la determinación, transmisión de información que hace que la secuencia de vídeo sea codificada o decodificada usando la primera matriz central de transformación determinada o la segunda matriz central de transformación determinada. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método y aparato para una transformación primaria mediante el uso de un núcleo de transformación de 8 bitsAntecedentes
1. Campo
Procedimientos y aparatos consistentes con realizaciones se refieren a la codificación de vídeo y, más particularmente, a un procedimiento y un aparato para una transformada primaria utilizando un núcleo de transformada de 8 bits. Las matrices de núcleo de transformada de DCT-2 más pequeñas son parte de DCT-2 más grandes.
2. Descripción de la técnica relacionada
En HEVC, las transformadas primarias pueden ser DCT-2 de 4 puntos, 8 puntos, 16 puntos y 32 puntos, y las matrices de núcleo de transformada se representan utilizando números enteros de 8 bits, es decir, núcleo de transformada de 8 bits. El documento US-2016/219290 A1 divulga un ejemplo de codificación/decodificación de vídeo utilizando matrices de núcleo de transformada.
Resumen
Según realizaciones, un procedimiento de decodificación o codificación se realiza por al menos un procesador e incluye recibir información con respecto a una secuencia de vídeo para codificación o decodificación; determinar, para la codificación o decodificación de la secuencia de vídeo, si usar o no una primera matriz de núcleo de transformada que es de un primer tipo de tamaño o una segunda matriz de núcleo de transformada que es de un segundo tipo de tamaño; y basándose en la determinación, transmitir información que haga que la secuencia de vídeo se codifique o decodifique utilizando la primera matriz de núcleo de transformada determinada o la segunda matriz de núcleo de transformada determinada.
Según realizaciones, un aparato para decodificar o codificar una secuencia de vídeo incluye al menos una memoria configurada para almacenar código de programa informático, y al menos un procesador configurado para acceder a la al menos una memoria y operar según el código de programa informático. El código de programa informático incluye un código de recepción configurado para hacer que al menos un procesador reciba información con respecto a una secuencia de vídeo para codificar o decodificar. El código de programa informático incluye además determinar el código configurado para hacer que el al menos un procesador determine, para la codificación o decodificación de la secuencia de vídeo, si usar o no una primera matriz de núcleo de transformada que es de un primer tipo de tamaño o una segunda matriz de núcleo de transformada que es de un segundo tipo de tamaño. El código de programa informático incluye además un código de transmisión configurado para hacer que el al menos un procesador, basándose en la determinación, transmita información que haga que la secuencia de vídeo se codifique o decodifique utilizando la primera matriz de núcleo de transformada determinada o la segunda matriz de núcleo de transformada determinada.
Según realizaciones, un medio de almacenamiento legible por ordenador no transitorio almacena instrucciones que hacen que al menos un procesador reciba información con respecto a una secuencia de vídeo para codificar o decodificar. Las instrucciones hacen además que al menos un procesador determine, para la codificación o decodificación de la secuencia de vídeo, si usar o no una primera matriz de núcleo de transformada que es de un primer tipo de tamaño o una segunda matriz de núcleo de transformada que es de un segundo tipo de tamaño. Las instrucciones hacen además que al menos un procesador, basándose en la determinación, transmita información que haga que la secuencia de vídeo se codifique o decodifique utilizando la primera matriz de núcleo de transformada determinada o la segunda matriz de núcleo de transformada determinada.
Breve descripción de los dibujos
Las Figuras 1A a 1D son diagramas que ilustran matrices de núcleo de transformada de ejemplo.
La Figura 2 es un diagrama de bloques simplificado de un sistema de comunicación según una realización.
La Figura 3 es un diagrama de una colocación de un codificador de vídeo y un descodificador de vídeo en un entorno de transmisión, de acuerdo con una realización.
La Figura 4 es un diagrama de bloques funcional de un descodificador de vídeo según una realización.
La Figura 5 es un diagrama de bloques funcional de un codificador de vídeo según una realización.
La Figura 6 es un diagrama de flujo que ilustra un procedimiento de decodificación o codificación de una secuencia de vídeo, de acuerdo con una realización.
La Figura 7 es un diagrama que ilustra matrices de núcleo de transformada de ejemplo, de acuerdo con una realización. La Figura 8 es un diagrama de bloques simplificado de un aparato para decodificar o codificar una secuencia de vídeo, de acuerdo con una realización.
La Figura 9 es un diagrama de un sistema informático adecuado para implementar realizaciones.
Descripción detallada
En HEVC, las transformadas primarias son DCT-2 de 4 puntos, 8 puntos, 16 puntos y 32 puntos, y las matrices de núcleo de transformada se representan utilizando números enteros de 8 bits, es decir, núcleo de transformada de 8 bits. Las matrices de núcleo de transformada de DCT-2 más pequeñas son parte de DCT-2 más grandes, como se ilustra en las Figuras 1A a 1D. La Figura 1A ilustra una transformada de 4x4. La Figura 1B ilustra una transformada de 8x8. La Figura 1C ilustra una transformada 16x16. La Figura 1D ilustra una transformada 32x32.
Como se ilustra en las Figuras 1A a 1D, los núcleos DCT-2 muestran características de simetría/antisimetría, por lo tanto, una implementación denominada “ de mariposa parcial” es soportada para reducir el número de recuentos de operación (multiplicaciones, adiciones/sustracciones, cambios), y pueden obtenerse resultados idénticos de multiplicación de matriz utilizando mariposa parcial.
En VVC, además de las transformadas DCT-2 de 4 puntos, 8 puntos, 16 puntos y 32 puntos que son las mismas que la HEVC, también pueden incluirse DCT-2 adicionales de 2 puntos y 64 puntos.
El núcleo DCT-2 de 64 puntos definido en VVC se muestra a continuación como una matriz 64x64:
{
{ aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa }
{ bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck, -ck, -cj, -ci, -ch, -eg, -cf, -ce, -cd, -cc, -cb, -ca, -bz, -by, -bx, -bw, -bv, - bu, -bt, -bs, -br, -bq, -bp, -bo, -bn, -bm, -bl, -bk, -bj, -bi, -bh, -bg, -bf }
{ ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, be, bd, be, -be, -bd, -be, -bb, -ba, -az, -ay, -ax, -aw, -av, -au, -at, -as, -ar, -aq, -ap, - ap, -aq, -ar, -as, -at, -au, -av, -aw, -ax, -ay, -az, -ba, -bb, -be, -bd, -be, be, bd, be, bb, ba, az, ay, ax, aw, av, au, at, as, ar, aq, ap }
{ bg, bj, bm, bp, bs, bv, by, cb, ce, ch, ck, -ci, -cf, -cc, -bz, -bw, -bt, -bq, -bn, -bk, -bh, -bf, -bi, -bl, -bo, -br, -bu, -bx, -ca, -cd, -eg, -cj, cj, cg, cd, ca, bx, bu, br, bo, bl, bi, bf, bh, bk, bn, bq, bt, bw, bz, cc, cf, ci, -ck, -ch, -ce, -cb, -by, -bv, -bs, -bp, -bm, -bj, -bg }
{ ah, ai, aj, ak, al, am, an, ao, -ao, -an, -am, -al, -ak, -aj, -ai, -ah, -ah, -ai, -aj, -ak, -al, -am, -an, -ao, ao, an, am, al, ak, aj, ai, ah, ah, ai, aj, ak, al, am, an, ao, -ao, -an, -am, -al, -ak, -aj, -ai, -ah, - ah, -ai, -aj, -ak, -al, -am, -an, -ao, ao, an, am, al, ak, aj, ai, ah }
{ bh, bm, br, bw, cb, cg, -ck, -cf, -ca, -bv, -bq, -bl, -bg, -bi, -bn, -bs, -bx, -cc, -ch, cj, ce, bz, bu, bp, bk, bf, bj, bo, bt, by, cd, ci, - ci, -cd, -by, -bt, -bo, -bj, -bf, -bk, -bp, -bu, -bz, -ce, -cj, ch, cc, bx, bs, bn, bi, bg, bl, bq, bv, ca, cf, ck, -eg, -cb, -bw, -br, -bm, -bh }
{ aq, at, aw, az, be, -be, -bb, -ay, -av, -as, -ap, -ar, -au, -ax, -ba, -bd, bd, ba, ax, au, ar, ap, as, av, ay, bb, be, -be, -az, -aw, -at, -aq, - aq, -at, -aw, -az, -be, be, bb, ay, av, as, ap, ar, au, ax, ba, bd, - bd, -ba, -ax, -au, -ar, -ap, -as, -av, -ay, -bb, -be, be, az, aw, at, aq }
{ bi, bp, bw, cd, ck, -ce, -bx, -bq, -bj, -bh, -bo, -bv, -cc, -cj, cf, by, br, bk, bg, bn, bu, cb, ci, -eg, -bz, -bs, -bl, -bf, -bm, -bt, -ca, -ch, ch, ca, bt, bm, bf, bl, bs, bz, eg, -ci, -cb, -bu, -bn, -bg, -bk, -br, - by, -cf, cj, cc, bv, bo, bh, bj, bq, bx, ce, -ck, -cd, -bw, -bp, -bi }
{ ad, ae, af, ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag, ag, af, ae, ad, ad, ae, af, ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag, ag, af, ae, ad, ad, ae, af, ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag, ag, af, ae, ad, ad, ae, af, ag, -ag, -af, -ae, -ad, -ad, -ae, -af, -ag, ag, af, ae, ad }
{ bj, bs, cb, ck, -cc, -bt, -bk, -bi, -br, -ca, -cj, cd, bu, bl, bh, bq, bz, ci, -ce, -bv, -bm, -bg, -bp, -by, -ch, cf, bw, bn, bf, bo, bx, eg, - cg, -bx, -bo, -bf, -bn, -bw, -cf, ch, by, bp, bg, bm, bv, ce, -ci, -bz, - bq, -bh, -bl, -bu, -cd, cj, ca, br, bi, bk, bt, cc, -ck, -cb, -bs, -bj }
{ ar, aw, bb, -bd, -ay, -at, -ap, -au, -az, -be, ba, av, aq, as, ax, be, -be, -ax, -as, -aq, -av, -ba, be, az, au, ap, at, ay, bd, -bb, -aw, -ar, - ar, -aw, -bb, bd, ay, at, ap, au, az, be, -ba, -av, -aq, -as, -ax, -be, be, ax, as, aq, av, ba, -be, -az, -au, -ар, -at, -ay, -bd, bb, aw, ar }
{ bk, bv, cg, -ce, -bt, -bi, -bm, -bx, -ci, cc, br, bg, bo, bz, ck, -ca, -bp, -bf, -bq, -cb, cj, by, bn, bh, bs, cd, -ch, -bw, -bl, -bj, -bu, -cf, cf, bu, bj, bl, bw, ch, -cd, -bs, -bh, -bn, -by, -cj, cb, bq, bf, bp, ca, -ck, -bz, -bo, -bg, -br, -cc, ci, bx, bm, bi, bt, ce, -cg, -bv, -bk }
{ ai, al, ao, -am, -aj, -ah, -ak, -an, an, ak, ah, aj, am, -ao, -al, -ai, -ai, -al, -ao, am, aj, ah, ak, an, -an, -ak, -ah, -aj, -am, ao, al, ai, ai, al, ao, -am, -aj, -ah, -ak, -an, an, ak, ah, aj, am, -ao, -al, -ai, - ai, -al, -ao, am, aj, ah, ak, an, -an, -ak, -ah, -aj, -am, ao, al, ai }
{ bl, by, -ck, -bx, -bk, -bm, -bz, cj, bw, bj, bn, ca, -ci, -bv, -bi, -bo, -cb, ch, bu, bh, bp, cc, -cg, -bt, -bg, -bq, -cd, cf, bs, bf, br, ce, - ce, -br, -bf, -bs, -cf, cd, bq, bg, bt, cg, -cc, -bp, -bh, -bu, -ch, cb, bo, bi, bv, ci, -ca, -bn, -bj, -bw, -cj, bz, bm, bk, bx, ck, -by, -bl }
{ as, az, -bd, -aw, -ap, -av, -be, ba, at, ar, ay, -be, -ax, -aq, -au, -bb, bb, au, aq, ax, be, -ay, -ar, -at, -ba, be, av, ap, aw, bd, -az, -as, - as, -az, bd, aw, ap, av, be, -ba, -at, -ar, -ay, be, ax, aq, au, bb, - bb, -au, -aq, -ax, -be, ay, ar, at, ba, -be, -av, -ap, -aw, -bd, az, as }
{ bm, cb, -cf, -bq, -bi, -bx, cj, bu, bf, bt, ci, -by, -bj, -bp, -ce, cc, bn, bl, ca, -cg, -br, -bh, -bw, ck, bv, bg, bs, ch, -bz, -bk, -bo, -cd, cd, bo, bk, bz, -ch, -bs, -bg, -bv, -ck, bw, bh, br, cg, -ca, -bl, -bn, - cc, ce, bp, bj, by, -ci, -bt, -bf, -bu, -cj, bx, bi, bq, cf, -cb, -bm }
{ ab, ac, -ac, -ab, -ab, -ac, ac, ab, ab, ac, -ac, -ab, -ab, -ac, ac, ab, ab, ac, -ac, -ab, -ab, -ac, ac, ab, ab, ac, -ac, -ab, -ab, -ac, ac, ab, ab, ac, -ac, -ab, -ab, -ac, ac, ab, ab, ac, -ac, -ab, -ab, -ac, ac, ab, ab, ac, -ac, -ab, -ab, -ac, ac, ab, ab, ас, -ac, -ab, -ab, -ac, ac, ab }
{ bn, ce, -ca, -bj, -br, -ci, bw, bf, bv, -cj, -bs, -bi, -bz, cf, bo, bm, cd, -cb, -bk, -bq, -ch, bx, bg, bu, -ck, -bt, -bh, -by, cg, bp, bl, cc, - cc, -bl, -bp, -cg, by, bh, bt, ck, -bu, -bg, -bx, ch, bq, bk, cb, -cd, - bm, -bo, -cf, bz, b1, bs, cj, -bv, -bf, -bw, ci, br, bj, ca, -ce, -bn }
{ at, bc, -ay, -ap, -ax, bd, au, as, bb, -az, -aq, -aw, be, av, ar, ba, -ba, -ar, -av, -be, aw, aq, az, -bb, -as, -au, -bd, ax, ap, ay, -be, -at, - at, -be, ay, ap, ax, -bd, -au, -as, -bb, az, aq, aw, -be, -av, -ar, -ba, ba, ar, av, be, -aw, -aq, -az, bb, as, au, bd, -ax, -ap, -ay, be, at }
{ bo, ch, -bv, -bh, -ca, cc, bj, bt, -cj, -bq, -bm, -cf, bx, bf, by, -ce, -bl, -br, -ck, bs, bk, cd, -bz, -bg, -bw, cg, bn, bp, ci, -bu, -bi, -cb, cb, bi, bu, -ci, -bp, -bn, -cg, bw, bg, bz, -cd, -bk, -bs, ck, br, bl, ce, -by, -bf, -bx, cf, bm, bq, cj, -bt, -bj, -cc, ca, bh, bv, -ch, -bo }
{ aj, ao, -ak, -ai, -an, al, ah, am, -am, -ah, -al, an, ai, ak, -ao, -aj, -aj, -ao, ak, ai, an, -al, -ah, -am, am, ah, al, -an, -ai, -ak, ao, aj, aj, ao, -ak, -ai, -an, al, ah, am, -am, -ah, -al, an, ai, ak, -ao, -aj, - aj, -ao, ak, ai, an, -al, -ah, -am, am, ah, al, -an, -ai, -ak, ao, aj }
{ bp, ck, -bq, -bo, -cj, br, bn, ci, -bs, -bm, -ch, bt, bl, cg, -bu, -bk, -cf, bv, bj, ce, -bw, -bi, -cd, bx, bh, cc, -by, -bg, -cb, bz, bf, ca, - ca, -bf, -bz, cb, bg, by, -cc, -bh, -bx, cd, bi, bw, -ce, -bj, -bv, cf, bk, bu, -cg, -bl, -bt, ch, bm, bs, -ci, -bn, -br, cj, bo, bq, -ck, -bp }
{ au, -be, -at, -av, bd, as, aw, -bc, -ar, -ax, bb, aq, ay, -ba, -ap, -az, az, ap, ba, -ay, -aq, -bb, ax, ar, be, -aw, -as, -bd, av, at, be, -au, - au, be, at, av, -bd, -as, -aw, be, ar, ax, -bb, -aq, -ay, ba, ap, az, - az, -ap, -ba, ay, aq, bb, -ax, -ar, -bc, aw, as, bd, -av, -at, -be, au }
{ bq, -ci, -bl, -bv, cd, bg, ca, -by, -bi, -cf, bt, bn, ck, -bo, -bs, cg, bj, bx, -cb, -bf, -cc, bw, bk, ch, -br, -bp, cj, bm, bu, -ce, -bh, -bz, bz, bh, ce, -bu, -bm, -cj, bp, br, -ch, -bk, -bw, cc, bf, cb, -bx, -bj, - cg, bs, bo, -ck, -bn, -bt, cf, bi, by, -ca, -bg, -cd, bv, bl, ci, -bq }
{ ae, -ag, -ad, -af, af, ad, ag, -ae, -ae, ag, ad, af, -af, -ad, -ag, ae, ae, -ag, -ad, -af, af, ad, ag, -ae, -ae, ag, ad, af, -af, -ad, -ag, ae, ae, -ag, -ad, -af, af, ad, ag, -ae, -ae, ag, ad, af, -af, -ad, -ag, ae, ae, -ag, -ad, -af, af, ad, ag, -ae, -ae, ag, ad, af, -af, -ad, -ag, ae }
{ br, -cf, -bg, -cc, bu, bo, -ci, -bj, -bz, bx, bl, ck, -bm, -bw, ca, bi, ch, -bp, -bt, cd, bf, ce, -bs, -bq, cg, bh, cb, -bv, -bn, cj, bk, by, - by, -bk, -cj, bn, bv, -cb, -bh, -cg, bq, bs, -ce, -bf, -cd, bt, bp, -ch, - bi, -ca, bw, bm, -ck, -bl, -bx, bz, bj, ci, -bo, -bu, cc, bg, cf, -br }
{ av, -bb, -ap, -be, au, aw, -ba, -aq, -bd, at, ax, -az, -ar, -be, as, ay, -ay, -as, be, ar, az, -ax, -at, bd, aq, ba, -aw, -au, be, ap, bb, -av, - av, bb, ap, be, -au, -aw, ba, aq, bd, -at, -ax, az, ar, be, -as, -ay, ay, as, -be, -ar, -az, ax, at, -bd, -aq, -ba, aw, au, -be, -ap, -bb, av }
{ bs, -cc, -bi, -cj, bl, bz, -bv, -bp, cf, bf, cg, -bo, -bw, by, bm, -ci, -bh, -cd, br, bt, -cb, -bj, -ck, bk, ca, -bu, -bq, ce, bg, ch, -bn, -bx, bx, bn, -ch, -bg, -ce, bq, bu, -ca, -bk, ck, bj, cb, -bt, -br, cd, bh, ci, -bm, -by, bw, bo, -cg, -bf, -cf, bp, bv, -bz, -bl, cj, bi, cc, -bs }
{ ak, -am, -ai, ao, ah, an, -aj, -al, al, aj, -an, -ah, -ao, ai, am, -ak, -ak, am, ai, -ao, -ah, -an, aj, al, -al, -aj, an, ah, ao, -ai, -am, ak, ak, -am, -ai, ao, ah, an, -aj, -al, al, aj, -an, -ah, -ao, ai, am, -ak, - ak, am, ai, -ao, -ah, -an, aj, al, -al, -aj, an, ah, ao, -ai, -am, ak }
{ bt, -bz, -bn, cf, bh, ck, -bi, -ce, bo, by, -bu, -bs, ca, bm, -eg, -bg, -cj, bj, cd, -bp, -bx, bv, br, -cb, -bl, ch, bf, ci, -bk, -cc, bq, bw, - bw, -bq, cc, bk, -ci, -bf, -ch, bl, cb, -br, -bv, bx, bp, -cd, -bj, cj, bg, cg, -bm, -ca, bs, bu, -by, -bo, ce, bi, -ck, -bh, -cf, bn, bz, -bt }
{ aw, -ay, -au, ba, as, -be, -aq, be, ap, bd, -ar, -bb, at, az, -av, -ax, ax, av, -az, -at, bb, ar, -bd, -ap, -be, aq, be, -as, -ba, au, ay, -aw, - aw, ay, au, -ba, -as, be, aq, -be, -ap, -bd, ar, bb, -at, -az, av, ax, - ax, -av, az, at, -bb, -ar, bd, ap, be, -aq, -bc, as, ba, -au, -ay, aw }
{ bu, -bw, -bs, by, bq, -ca, -bo, cc, bm, -ce, -bk, cg, bi, -ci, -bg, ck, bf, cj, -bh, -ch, bj, cf, -bl, -cd, bn, cb, -bp, -bz, br, bx, -bt, -bv, bv, bt, -bx, -br, bz, bp, -cb, -bn, cd, bl, -cf, -bj, ch, bh, -cj, -bf, - ck, bg, ci, -bi, -cg, bk, ce, -bm, -cc, bo, ca, -bq, -by, bs, bw, -bu }
{ aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa, aa, -aa, -aa, aa }
{ bv, -bt, -bx, br, bz, -bp, -cb, bn, cd, -bl, -cf, bj, ch, -bh, -cj, bf, -ck, -bg, ci, bi, -cg, -bk, ce, bm, -cc, -bo, ca, bq, -by, -bs, bw, bu, - bu, -bw, bs, by, -bq, -ca, bo, cc, -bm, -ce, bk, cg, -bi, -ci, bg, ck, - bf, cj, bh, -ch, -bj, cf, bl, -cd, -bn, cb, bp, -bz, -br, bx, bt, -bv }
{ ax, -av, -az, at, bb, -ar, -bd, ap, -be, -aq, be, as, -ba, -au, ay, aw, -aw, -ay, au, ba, -as, -be, aq, be, -ap, bd, ar, -bb, -at, az, av, -ax, - ax, av, az, -at, -bb, ar, bd, -ap, be, aq, -bc, -as, ba, au, -ay, -aw, aw, ay, -au, -ba, as, be, -aq, -be, ap, -bd, -ar, bb, at, -az, -av, ax }
{ bw, -bq, -cc, bk, ci, -bf, ch, bl, -cb, -br, bv, bx, -bp, -cd, bj, cj, -bg, cg, bm, -ca, -bs, bu, by, -bo, -ce, bi, ck, -bh, cf, bn, -bz, -bt, bt, bz, -bn, -cf, bh, -ck, -bi, ce, bo, -by, -bu, bs, ca, -bm, -eg, bg, - cj, -bj, cd, bp, -bx, -bv, br, cb, -bl, -ch, bf, -ci, -bk, cc, bq, -bw }
{ al, -aj, -an, ah, -ao, -ai, am, ak, -ak, -am, ai, ao, -ah, an, aj, -al, -al, aj, an, -ah, ao, ai, -am, -ak, ak, am, -ai, -ao, ah, -an, -aj, al, al, -aj, -an, ah, -ao, -ai, am, ak, -ak, -am, ai, ao, -ah, an, aj, -al, - al, aj, an, -ah, ao, ai, -am, -ak, ak, am, -ai, -ao, ah, -an, -aj, al }
{ bx, -bn, -ch, bg, -ce, -bq, bu, ca, -bk, -ck, bj, -cb, -bt, br, cd, -bh, ci, bm, -by, -bw, bo, cg, -bf, cf, bp, -bv, -bz, bl, cj, -bi, cc, bs, - bs, -cc, bi, -cj, -bl, bz, bv, -bp, -cf, bf, -cg, -bo, bw, by, -bm, -ci, bh, -cd, -br, bt, cb, -bj, ck, bk, -ca, -bu, bq, ce, -bg, ch, bn, -bx }
{ ay, -as, -be, ar, -az, -ax, at, bd, -aq, ba, aw, -au, -be, ap, -bb, -av, av, bb, -ap, be, au, -aw, -ba, aq, -bd, -at, ax, az, -ar, be, as, -ay, - ay, as, be, -ar, az, ax, -at, -bd, aq, -ba, -aw, au, be, -ap, bb, av, - av, -bb, ap, -bc, -au, aw, ba, -aq, bd, at, -ax, -az, ar, -be, -as, ay }
{ by, -bk, cj, bn, -bv, -cb, bh, -cg, -bq, bs, ce, -bf, cd, bt, -bp, -ch, bi, -ca, -bw, bm, ck, -bl, bx, bz, -bj, ci, bo, -bu, -cc, bg, -cf, -br, br, cf, -bg, cc, bu, -bo, -ci, bj, -bz, -bx, bl, -ck, -bm, bw, ca, -bi, ch, bp, -bt, -cd, bf, -ce, -bs, bq, cg, -bh, cb, bv, -bn, -cj, bk, -by }
{ af, -ad, ag, ae, -ae, -ag, ad, -af, -af, ad, -ag, -ae, ae, ag, -ad, af, af, -ad, ag, ae, -ae, -ag, ad, -af, -af, ad, -ag, -ae, ae, ag, -ad, af, af, -ad, ag, ae, -ae, -ag, ad, -af, -af, ad, -ag, -ae, ae, ag, -ad, af, af, -ad, ag, ae, -ae, -ag, ad, -af, -af, ad, -ag, -ae, ae, ag, -ad, af }
{ bz, -bh, ce, bu, -bm, cj, bp, -br, -ch, bk, -bw, -cc, bf, -cb, -bx, bj, -cg, -bs, bo, ck, -bn, bt, cf, -bi, by, ca, -bg, cd, bv, -bl, ci, bq, - bq, -ci, bl, -bv, -cd, bg, -ca, -by, bi, -cf, -bt, bn, -ck, -bo, bs, cg, - bj, bx, cb, -bf, cc, bw, -bk, ch, br, -bp, -cj, bm, -bu, -ce, bh, -bz }
{ az, -ap, ba, ay, -aq, bb, ax, -ar, be, aw, -as, bd, av, -at, be, au, -au, -be, at, -av, -bd, as, -aw, -be, ar, -ax, -bb, aq, -ay, -ba, ap, -az, - az, ap, -ba, -ay, aq, -bb, -ax, ar, -be, -aw, as, -bd, -av, at, -be, -au, au, be, -at, av, bd, -as, aw, be, -ar, ax, bb, -aq, ay, ba, -ap, az }
{ ca, -bf, bz, cb, -bg, by, cc, -bh, bx, cd, -bi, bw, ce, -bj, bv, cf, -bk, bu, cg, -bl, bt, ch, -bm, bs, ci, -bn, br, cj, -bo, bq, ck, -bp, bp, -ck, -bq, bo, -cj, -br, bn, -ci, -bs, bm, -ch, -bt, bl, -cg, -bu, bk, - cf, -bv, bj, -ce, -bw, bi, -cd, -bx, bh, -cc, -by, bg, -cb, -bz, bf, -ca }
{ am, -ah, al, an, -ai, ak, ao, -aj, aj, -ao, -ak, ai, -an, -al, ah, -am, -am, ah, -al, -an, ai, -ak, -ao, aj, -aj, ao, ak, -ai, an, al, -ah, am, am, -ah, al, an, -ai, ak, ao, -aj, aj, -ao, -ak, ai, -an, -al, ah, -am, - am, ah, -al, -an, ai, -ak, -ao, aj, -aj, ao, ak, -ai, an, al, -ah, am }
{ cb, -bi, bu, ci, -bp, bn, -cg, -bw, bg, -bz, -cd, bk, -bs, -ck, br, -bl, ce, by, -bf, bx, cf, -bm, bq, -cj, -bt, bj, -cc, -ca, bh, -bv, -ch, bo, - bo, ch, bv, -bh, ca, cc, -bj, bt, cj, -bq, bm, -cf, -bx, bf, -by, -ce, bl, -br, ck, bs, -bk, cd, bz, -bg, bw, cg, -bn, bp, -ci, -bu, bi, -cb }
{ ba, -ar, av, -be, -aw, aq, -az, -bb, as, -au, bd, ax, -ap, ay, be, -at, at, -be, -ay, ap, -ax, -bd, au, -as, bb, az, -aq, aw, be, -av, ar, -ba, - ba, ar, -av, be, aw, -aq, az, bb, -as, au, -bd, -ax, ap, -ay, -be, at, - at, be, ay, -ap, ax, bd, -au, as, -bb, -az, aq, -aw, -be, av, -ar, ba }
{ cc, -bl, bp, -cg, -by, bh, -bt, ck, bu, -bg, bx, ch, -bq, bk, -cb, -cd, bm, -bo, cf, bz, -bi, bs, -cj, -bv, bf, -bw, -ci, br, -bj, ca, ce, -bn, bn, -ce, -ca, bj, -br, ci, bw, -bf, bv, cj, -bs, b1, -bz, -cf, bo, -bm, cd, cb, -bk, bq, -ch, -bx, bg, -bu, -ck, bt, -bh, by, cg, -bp, bl, -cc }
{ ac, -ab, ab, -ac, -ac, ab, -ab, ac, ac, -ab, ab, -ac, -ac, ab, -ab, ac, ac, -ab, ab, -ac, -ac, ab, -ab, ac, ac, -ab, ab, -ac, -ac, ab, -ab, ac, ac, -ab, ab, -ac, -ac, ab, -ab, ac, ac, -ab, ab, -ac, -ac, ab, -ab, ac, ac, -ab, ab, -ac, -ac, ab, -ab, ac, ac, -ab, ab, -ac, -ac, ab, -ab, ac }
{ cd, -bo, bk, -bz, -ch, bs, -bg, bv, -ck, -bw, bh, -br, cg, ca, -bl, bn, -cc, -ce, bp, -bj, by, ci, -bt, bf, -bu, cj, bx, -bi, bq, -cf, -cb, bm, - bm, cb, cf, -bq, bi, -bx, -cj, bu, -bf, bt, -ci, -by, bj, -bp, ce, cc, - bn, bl, -ca, -cg, br, -bh, bw, ck, -bv, bg, -bs, ch, bz, -bk, bo, -cd }
{ bb, -au, aq, -ax, be, ay, -ar, at, -ba, -be, av, -ap, aw, -bd, -az, as, -as, az, bd, -aw, ap, -av, be, ba, -at, ar, -ay, -be, ax, -aq, au, -bb, - bb, au, -aq, ax, -be, -ay, ar, -at, ba, be, -av, ap, -aw, bd, az, -as, as, -az, -bd, aw, -ap, av, -be, -ba, at, -ar, ay, be, -ax, aq, -au, bb }
{ ce, -br, bf, -bs, cf, cd, -bq, bg, -bt, cg, cc, -bp, bh, -bu, ch, cb, -bo, bi, -bv, ci, ca, -bn, bj, -bw, cj, bz, -bm, bk, -bx, ck, by, -bl, bl, -by, -ck, bx, -bk, bm, -bz, -cj, bw, -bj, bn, -ca, -ci, bv, -bi, bo, - cb, -ch, bu, -bh, bp, -cc, -eg, bt, -bg, bq, -cd, -cf, bs, -bf, br, -ce }
{ an, -ak, ah, -aj, am, ao, -al, ai, -ai, al, -ao, -am, aj, -ah, ak, -an, -an, ak, -ah, aj, -am, -ao, al, -ai, ai, -al, ao, am, -aj, ah, -ak, an, an, -ak, ah, -aj, am, ao, -al, ai, -ai, al, -ao, -am, aj, -ah, ak, -an, - an, ak, -ah, aj, -am, -ao, al, -ai, ai, -al, ao, am, -aj, ah, -ak, an }
{ cf, -bu, bj, -bl, bw, -ch, -cd, bs, -bh, bn, -by, cj, cb, -bq, bf, -bp, ca, ck, -bz, bo, -bg, br, -cc, -ci, bx, -bm, bi, -bt, ce, cg, -bv, bk, - bk, bv, -cg, -ce, bt, -bi, bm, -bx, ci, cc, -br, bg, -bo, bz, -ck, -ca, bp, -bf, bq, -cb, -cj, by, -bn, bh, -bs, cd, ch, -bw, bl, -bj, bu, -cf }
{ bc, -ax, as, -aq, av, -ba, -be, az, -au, ap, -at, ay, -bd, -bb, aw, -ar, ar, -aw, bb, bd, -ay, at, -ap, au, -az, be, ba, -av, aq, -as, ax, -be, - be, ax, -as, aq, -av, ba, be, -az, au, -ap, at, -ay, bd, bb, -aw, ar, - ar, aw, -bb, -bd, ay, -at, ap, -au, az, -be, -ba, av, -aq, as, -ax, be }
{ cg, -bx, bo, -bf, bn, -bw, cf, ch, -by, bp, -bg, bm, -bv, ce, ci, -bz, bq, -bh, bl, -bu, cd, cj, -ca, br, -bi, bk, -bt, cc, ck, -cb, bs, -bj, bj, -bs, cb, -ck, -cc, bt, -bk, bi, -br, ca, -cj, -cd, bu, -bl, bh, -bq, bz, -ci, -ce, bv, -bm, bg, -bp, by, -ch, -cf, bw, -bn, bf, -bo, bx, -cg }
{ ag, -af, ae, -ad, ad, -ae, af, -ag, -ag, af, -ae, ad, -ad, ae, -af, ag, ag, -af, ae, -ad, ad, -ae, af, -ag, -ag, af, -ae, ad, -ad, ae, -af, ag, ag, -af, ae, -ad, ad, -ae, af, -ag, -ag, af, -ae, ad, -ad, ae, -af, ag, ag, -af, ae, -ad, ad, -ae, af, -ag, -ag, af, -ae, ad, -ad, ae, -af, ag }
{ ch, -ca, bt, -bm, bf, -bl, bs, -bz, cg, ci, -cb, bu, -bn, bg, -bk, br, -by, cf, cj, -cc, bv, -bo, bh, -bj, bq, -bx, ce, ck, -cd, bw, -bp, bi, - bi, bp, -bw, cd, -ck, -ce, bx, -bq, bj, -bh, bo, -bv, cc, -cj, -cf, by, - br, bk, -bg, bn, -bu, cb, -ci, -cg, bz, -bs, bl, -bf, bm, -bt, ca, -ch }
{ bd, -ba, ax, -au, ar, -ap, as, -av, ay, -bb, be, be, -az, aw, -at, aq, -aq, at, -aw, az, -be, -be, bb, -ay, av, -as, ap, -ar, au, -ax, ba, -bd, - bd, ba, -ax, au, -ar, ap, -as, av, -ay, bb, -be, -be, az, -aw, at, -aq, aq, -at, aw, -az, be, be, -bb, ay, -av, as, -ap, ar, -au, ax, -ba, bd }
{ ci, -cd, by, -bt, bo, -bj, bf, -bk, bp, -bu, bz, -ce, cj, ch, -cc, bx, -bs, bn, -bi, bg, -bl, bq, -bv, ca, -cf, ck, cg, -cb, bw, -br, bm, -bh, bh, -bm, br, -bw, cb, -cg, -ck, cf, -ca, bv, -bq, bl, -bg, bi, -bn, bs, - bx, cc, -ch, -cj, ce, -bz, bu, -bp, bk, -bf, bj, -bo, bt, -by, cd, -ci }
{ ao, -an, am, -al, ak, -aj, ai, -ah, ah, -ai, aj, -ak, al, -am, an, -ao, -ao, an, -am, al, -ak, aj, -ai, ah, -ah, ai, -aj, ak, -al, am, -an, ao, ao, -an, am, -al, ak, -aj, ai, -ah, ah, -ai, aj, -ak, al, -am, an, -ao, - ao, an, -am, al, -ak, aj, -ai, ah, -ah, ai, -aj, ak, -al, am, -an, ao }
{ cj, -eg, cd, -ca, bx, -bu, br, -bo, bl, -bi, bf, -bh, bk, -bn, bq, -bt, bw, -bz, cc, -cf, ci, ck, -ch, ce, -cb, by, -bv, bs, -bp, bm, -bj, bg, - bg, bj, -bm, bp, -bs, bv, -by, cb, -ce, ch, -ck, -ci, cf, -cc, bz, -bw, bt, -bq, bn, -bk, bh, -bf, bi, -bl, bo, -br, bu, -bx, ca, -cd, cg, -cj }
{ be, -bd, be, -bb, ba, -az, ay, -ax, aw, -av, au, -at, as, -ar, aq, -ap, ap, -aq, ar, -as, at, -au, av, -aw, ax, -ay, az, -ba, bb, -be, bd, -be, - be, bd, -be, bb, -ba, az, -ay, ax, -aw, av, -au, at, -as, ar, -aq, ap, - ap, aq, -ar, as, -at, au, -av, aw, -ax, ay, -az, ba, -bb, be, -bd, be }
{ ck, -cj, ci, -ch, cg, -cf, ce, -cd, cc, -cb, ca, -bz, by, -bx, bw, -bv, bu, -bt, bs, -br, bq, -bp, bo, -bn, bm, -bl, bk, -bj, bi, -bh, bg, -bf, bf, -bg, bh, -bi, bj, -bk, bl, -bm, bn, -bo, bp, -bq, br, -bs, bt, -bu, bv, -bw, bx, -by, bz, -ca, cb, -cc, cd, -ce, cf, -eg, ch, -ci, cj, -ck } }
donde
{ aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, be, bd, be, bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck} = {64, 83, 36, 89, 75, 50, 18, 90, 87, 80, 70, 57, 43, 25, 9, 90, 90, 88, 85, 82, 78, 73, 67, 61,54, 46, 38, 31,22,13,4,91,90, 90, 90, 88, 87, 86, 84,83,81,79,77,73,71,69, 65,62,59,56, 52,48,44,41,37, 33,28,24,20,15,11,7,2}
Además de DCT-2 y DST-7 de 4^4 que se han empleado en HEVC, se ha implementado un esquema de Transformada Múltiple Adaptativa (AMT, también conocida como Transformada Múltiple Mejorada (EMT), o conocida como Selección de Transformada Múltiple (MTS)) utilizado en VVC para codificación residual para bloques inter e intra codificados. Utiliza múltiples transformadas seleccionadas a partir de las familias DCT/DST distintas de las transformadas actuales en HEVC. Las matrices de transformada recién introducidas son DST-7, DCT-8. La Tabla 1 muestra las funciones base de la DST/DCT seleccionada.
Tabla 1: Funciones base de transformada de DCT-2, DST-7 y DCT-8 para entrada de N puntos
Todas las matrices de transformada primaria en VVC se usan con representación de 8 bits. La AMT se aplica a las CU con ancho y altura menores o iguales a 32, y si la AMT se aplica o no está controlada por un indicador llamado mts_flag. Cuando mts_flag es igual a 0, solo se aplica DCT-2 para codificar el residuo. Cuando mts_flag es igual a 1, un índice mts_idx se señaliza adicionalmente utilizando 2 binarios para identificar la transformada horizontal y vertical que se usará según la Tabla 2, donde el valor 1 significa que usa DST-7 y valor 2 significa que usa DCT-8.
Tabla 2: Especificación de trTypeHor y trTypeVer dependiendo de mts_idx[ x ][ y ][ cldx ]
El núcleo de transformada, que es una matriz compuesta por los vectores base, de DST-7 se puede representar como sigue:
DST-7 de 4 puntos:
{ a, b, c, d }
{ c, c, 0, -c }
{ d, -a, -c, b }
{ b, -d, c, -a }
donde b, c, d} = { 29, 55, 74, 84}
DST-7 de 8 puntos:
{ a, b, c, d, e, f, g, h, }
{ c, f, h, e, b, -a, -d, -g, }
{ e, g, b, -c, -h, -d, a, f, }
{ g, c, -d, -f, a, h, b, -e, }
{ h, -a, -g, b, f, -c, -e, d, }
{ f, -e, -a, g, -d, -b, h, -c, }
{ d, -h, e, -a, -c, g, -f, b, }
{ b, -d, f, -h, g, -e, c, -a,}
donde b, c, d, e, f, g, h} = { 17, 32, 46, 60, 71, 78, 85, 86}
DST-7 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, 1, o, o, 1, i, f, c, 0, -c, -f, -i, -1, -o,}
{ e, j, o, m, h, c, -b, -g, -1, -p, -k, -f, -a, d, i, n, }
{ g, n, 1, e, -b, -i, -p, -j, -c, d, k, o, h, a, -f, -m, }
{ i, o, f, -c, -1, -1, -c, f, o, i, 0, -i, -o, -f, c, 1, }
{ k, k, 0, -k, -k, 0, k, k, 0, -k, -k, 0, k, k, 0, -k, }
{ m, g, -f, -n, -a, 1, h, -e, -o, -b, k, i, -d, -p, -c, j, }
{ o, c, -1, -f, i, i, -f, -1, c, o, 0, -o, -c, 1, f, -i,}
{ p, -a, -o, b, n, -c, -m, d, 1, -e, -k, f, j, -g, -i, h,}
{ n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, 1, -g,}
{ l, -i, -c, o, -f, -f, o, -c, -i, 1, 0, -1, i, c, -o, f, }
{ j, -m, c, g, -p, f, d, -n, i, a, -k, 1, -b, -h, o, -e,}
{ h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -1, d,}
{ f, -1, o, -i, c, c, -i, o, -1, f, 0, -f, 1, -o, i, -c,}
{ d, -h, 1, -p, m, -I, e, -a, -c, g, -k, o, -n, j, -f, b,}
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 9, 17, 25, 33, 41, 49, 56, 62, 66, 72, 77, 81, 83, 87, 89, 90}
DST-7 de 32 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F,}
{ c, f, I, 1, o, r, u, x, A, D, F, C, z, w, t, q, n, k, h, e, b, -a, -d, -g, -j, -m, -p, -s, -v, -y, -B, -E,}
{ e, j, o, t, y, D, D, y, t, o, j, e, 0, -e, -j, -o, -t, -y, -D, -D, - y, -t, -o, -j, -e, 0, e, j, o, t, y, D,}
{ g, n, u, B, D, w, p, i, b, -e, -1, -s, -z, -F, -y, -r, -k, -d, c, j, q, x, E, A, t, m, f, -a, -h, -o, -v, -C,}
{ i, r, A, C, t, k, b, -g, -p, -y, -E, -v, -m, -d, e, n, w, F, x, o, f, -c, -1, -u, -D, -z, -q, -h, a, j, s, B,}
{ k, v, F, u, j, -a, -1, -w, -E, -t, -i, b, m, x, D, s, h, -c, -n, -y, - C, -r, -g, d, o, z, B, q, f, -e, -p, -A,}
{ m, z, z, m, 0, -m, -z, -z, -m, 0, m, z, z, m, 0, -m, -z, -z, -m, 0, m, z, z, m, 0, -m, -z, -z, -m, 0, m, z,}
{ t, -y, e, o, -D, j, j, -D, o, e, -y, t, 0, -t, y, -e, -o, D, -j, -j, D, -o, -e, y, -t, 0, t, -y, e, o, -D, j,}
{ r, -C, k, g, -y, v, -d, -n, F, -o, -c, u, -z, h, j, -B, s, -a, -q, D, - l, -f, x, -w, e, m, -E, p, b, -t, A, -i,}
{ p, -F, q, -a, -o, E, -r, b, n, -D, s, -c, -m, C, -t, d, 1, -B, u, -e, - k, A, -v, f, j, -z, w, -g, -i, y, -x, h,}
{ 1, -x, C, -q, e, g, -s, E, -v, j, b, -n, z, -A, o, -c, -i, u, -F, t, - h, -d, p, -B, y, -m, a, k, -w, D, -r, f,}
{ j, -t, D, -y, o, -e, -e, o, -y, D, -t, j, 0, -j, t, -D, y, -o, e, e, - o, y, -D, t, -j, 0, j, -t, D, -y, o, -e,}
{ h, -p, x, -F, y, -q, i, -a, -g, o, -w, E, -z, r, -j, b, f, -n, v, -D, A, -s, k, -c, -e, m, -u, C, -B, t, -1, d,}
{ f, -1, r, -x, D, -C, w, -q, k, -e, -a, g, -m, s, -y, E, -B, v, -p, j, - d, -b, h, -n, t, -z, F, -A, u, -o, i, -c,}
{ d, -h, 1, -p, t, -x, B, -F, C, -y, u, -q, m, -i, e, -a, -c, g, -k, o, - s, w, -A, E, -D, z, -v, r, -n, j, -f, b,}
{ b, -d, f, -h, j, -1, n, -p, r, -t, v, -x, z, -B, D, -F, E, -C, A, -y, w, -u, s, -q, o, -m, k, -i, g, -e, c, -a,} donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F } = { 4, 9, 13, 17, 21,26, 30, 34, 38, 42, 45, 50, 53, 56, 60, 63, 66, 68, 72, 74, 77, 78, 80, 82, 84, 85, 86, 88, 88, 89, 90, 90 }
DCT-8 de 4 puntos:
{ a, b, c, d,}
{ b, 0, -b, -b,}
{ c, -b, -d, a,}
{ d, -b, a, -c,)
donde {a,b, c, d} = { 84,74,55,29}
DCT-8 de 8 puntos:
{ a, b, c, d, e, f, g, h,}
{ b, e, h, -g, -d, -a, -c, -f,}
{ c, h, -e, -a, -f, g, b, d,}
{ d, -g, -a, -h, c, e, -f, -b,}
{ e, -d, -f, c, g, -b, -h, a,}
{ f, -a, g, e, -b, h, d, -c,}
{ g, -c, b, -f, -h, d, -a, e,}
{ h, -f, d, -b, a, -c, e, -g,}
donde {a, b, c, d, e, f, g, h} = { 86,85,78,71,60,46,32,17}
DCT-8 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p,}
{ f, 0, -f, -f, 0, f, f, 0, -f, -f, 0, f, f, 0, -f, -f,}
{ g, -n, -a, -m, h, f, -o, -b, -1, i, e, -p, -c, -k, j, d,}
{ h, -k, -e, n, b, 0, -b, -n, e, k, -h, -h, k, e, -n, -b,}
{ i, -h, -j, g, k, -f, -1, e, m, -d, -n, c, o, -b, -p, a, }
{ j, -e, -o, a, -n, -f, i, k, -d, -p, b, -m, -g, h, 1, -c,}
{ k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e,}
{ l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g,}
{ m, -e, d, -1, -n, f, -c, k, o, -g, b, -j, -p, h, -a, i,}
{ n, -h, b, -e, k, 0, -k, e, -b, h, -n, -n, h, -b, e, -k,}
{ o, -k, g, -c, b, -f, j, -n, -p, 1, -h, d, -a, e, -i, m,}
{ p, -n, 1, -j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o,}
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 90,89,87,83,81,77,72,66,62,56,49,41,33,25,17, 9}
DCT-8 de 32 puntos:
{ b, e, h, k, n, q, t, w, z, C, F, -E, -B, -y, -v, -s, -p, -m, -j, -g, - d, -a, -c, -f, -i, -1, -o, -r, -u, -x, -A, -D,}
{ c, h, m, r, w, B, 0, -B, -w, -r, -m, -h, -c, -c, -h, -m, -r, -w, -B, 0, B, w, r, m, h, c, c, h, m, r, w, B,}
{ d, k, r, y, F, -A, -t, -m, -f, -b, -i, -p, -w, -D, C, v, o, h, a, g, n, u, B, -E, -x, -q, -j, -c, -e, -1, -s, -z,}
{ e, n, w, F, -y, -p, -g, -c, -1, -u, -D, A, r, i, a, j, s, B, -C, -t, - k, -b, -h, -q, -z, E, v, m, d, f, o, x,}
{ f, q, B, -A, -p, -e, -g, -r, -C, z, o, d, h, s, D, -y, -n, -c, -i, -t, - E, x, m, b, j, u, F, -w, -1, -a, -k, -v,}
{ g, t, 0, -t, -g, -g, -t, 0, t, g, g, t, 0, -t, -g, -g, -t, 0, t, g, g, t, 0, -t, -g, -g, -t, 0, t, g, g, t,} { h, w, -B, -m, -c, -r, 0, r, c, m, B, -w, -h, -h, -w, B, m, c, r, 0, - r, -c, -m, -B, w, h, h, w, -B, -m, -c, -r,}
{ i, z, -w, -f, -1, -C, t, c, o, F, -q, -a, -r, E, n, d, u, -B, -k, -g, - x, y, h, j, A, -v, -e, -m, -D, s, b, p,}
{ j, C, -r, -b, -u, z, g, m, F, -o, -e, -x, w, d, p, -E, -1, -h, -A, t, a, s, -B, -i, -k, -D, q, c, v, -y, -f, -n,}
{ k, F, -m, -I, -D, o, g, B, -q, -e, -z, s, c, x, -u, -a, -v, w, b, t, - y, -d, -r, A, f, p, -C, -h, -n, E, j, l,}
{ l, -E, -h, -p, A, d, t, -w, -a, -x, s, e, B, -o, -i, -F, k, m, -D, -g, - q, z, c, u, -v, -b, -y, r, f, C, -n, -j,}
{ m, -B, -c, -w, r, h, 0, -h, -r, w, c, B, -m, -m, B, c, w, -r, -h, 0, h, r, -w, -c, -B, m, m, -B, -c, -w, r, h,}
{ n, -y, -c, -D, i, s, -t, -h, E, d, x, -o, -m, z, b, C, -j, -r, u, g, - F, -e, -w, p, 1, -A, -a, -B, k, q, -v, -f,}
{ o, -v, -h, C, a, D, -g, -w, n, p, -u, -i, B, b, E, -f, -x, m, q, -t, - j, A, c, F, -e, -y, 1, r, -s, -k, z, d,}
{ p, -s, -m, v, j, -y, -g, B, d, -E, -a, -F, c, C, -f, -z, i, w, -l, -t, o, q, -r, -n, u, k, -x, -h, A, e, -D, -b,}
{ q, -p, -r, o, s, -n, -t, m, u, -1, -v, k, w, -j, -x, i, y, -h, -z, g, A, -f, -B, e, C, -d, -D, c, E, -b, -F, a,}
{ r, -m, -w, h, B, -c, 0, c, -B, -h, w, m, -r, -r, m, w, -h, -B, c, 0, - c, B, h, -w, -m, r, r, -m, -w, h, B, -c,}
{ s, -j, -B, a, -C, -I, t, r, -k, -A, b, -D, -h, u, q, -1, -z, c, -E, -g, v, p, -m, -y, d, -F, -f, w, o, -n, -x, e,}
{ t, -g, 0, g, -t, -t, g, 0, -g, t, t, -g, 0, g, -t, -t, g, 0, -g, t, t, -g, 0, g, -t, -t, g, 0, -g, t, t, -g,}
{ u, -d, B, n, -k, -E, g, -r, -x, a, -y, -q, h, -F, -j, o, A, -c, v, t, - e, C, m, -1, -D, f, -s, -w, b, -z, -p, i,}
{ v, -a, w, u, -b, x, t, -c, y, s, -d, z, r, -e, A, q, -f, B, p, -g, C, o, -h, D, n, -i, E, m, -j, F, 1, -k,}
{ w, -c, r, B, -h, m, 0, -m, h, -B, -r, c, -w, -w, c, -r, -B, h, -m, 0, m, -h, B, r, -c, w, w, -c, r, B, -h, m,}
{ x, -f, m, -E, -q, b, -t, -B, j, -i, A, u, -c, p, F, -n, e, -w, -y, g, - l, D, r, -a, s, C, -k, h, -z, -v, d, -o,}
{ y, -i, h, -x, -z, j, -g, w, A, -k, f, -v, -B, 1, -e, u, C, -m, d, -t, - D, n, -c, s, E, -o, b, -r, -F, p, -a, q, }
{ z, -1, c, -q, E, u, -g, h, -v, -D, p, -b, m, -A, -y, k, -d, r, -F, -t, f, -i, w, C, -o, a, -n, B, x, -j, e, -s,}
{ A, -o, c, -j, v, F, -t, h, -e, q, -C, -y, m, -a, 1, -x, -D, r, -f, g, - s, E, w, -k, b, -n, z, B, -p, d, -i, u, }
{ B, -r, h, -c, m, -w, 0, w, -m, c, -h, r, -B, -B, r, -h, c, -m, w, 0, - w, m, -c, h, -r, B, B, -r, h, -c, m, -w, }
{ C, -u, m, -e, d, -1, t, -B, -D, v, -n, f, -c, k, -s, A, E, -w, o, -g, b, -j, r, -z, -F, x, -p, h, -a, i, -q, y,}
{ D, -x, r, -1, f, -a, g, -m, s, -y, E, C, -w, q, -k, e, -b, h, -n, t, - z, F, B, -v, p, -j, d, -c, i, -o, u, -A, }
{ E, -A, w, -s, o, -k, g, -c, b, -f, j, -n, r, -v, z, -D, -F, B, -x, t, - p, 1, -h, d, -a, e, -i, m, -q, u, -y, C,}
{ F, -D, B, -z, x, -v, t, -r, p, -n, 1, -j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o, q, -s, u, -w, y, -A, C, -E,}
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F } = {90,90,89,88,88,86,85,84,82,80,78,77,74,72,68,66,63,60,56,53,50,45,42,38,34,30,26,21,17,13, 9, 4}
La Figura 2 es un diagrama de bloques simplificado de un sistema de comunicación (200) según una realización. El sistema de comunicación (200) puede incluir al menos dos terminales (210-220) interconectados a través de una red (250). Para la transmisión unidireccional de datos, un primer terminal (210) puede codificar datos de vídeo en una ubicación local para su transmisión al otro terminal (220) a través de la red (250). El segundo terminal (220) puede recibir los datos de vídeo codificados del otro terminal de la red (250), decodificar los datos codificados y visualizar los datos de vídeo recuperados. La transmisión de datos unidireccional puede ser común en aplicaciones de servicio de medios y similares.
La Figura 2 ilustra un segundo par de terminales (230, 240) proporcionados para admitir la transmisión bidireccional de vídeo codificado que puede producirse, por ejemplo, durante videoconferencias. Para la transmisión bidireccional de datos, cada terminal (230, 240) puede codificar datos de vídeo capturados en una ubicación local para su transmisión al otro terminal a través de la red (250). Cada terminal (230, 240) también puede recibir los datos de vídeo codificados transmitidos por el otro terminal, puede decodificar los datos codificados y puede mostrar los datos de vídeo recuperados en un dispositivo de visualización local.
En la Figura 2, los terminales (210-240) pueden ilustrarse como servidores, ordenadores personales y teléfonos inteligentes, pero los principios de las realizaciones no están tan limitados. Las realizaciones encuentran aplicación con ordenadores portátiles, tabletas, reproductores de medios y/o equipos de videoconferencia dedicados. La red (250) representa cualquier número de redes que transmiten datos de vídeo codificados entre los terminales (210-240), incluyendo por ejemplo redes de comunicación cableadas y/o inalámbricas. La red de comunicación (250) puede intercambiar datos en canales conmutados por circuitos y/o conmutados por paquetes. Las redes representativas incluyen redes de telecomunicaciones, redes de área local, redes de área amplia y/o Internet. Para los fines de la presente descripción, la arquitectura y la topología de la red (250) pueden ser impuestas al funcionamiento de las realizaciones a menos que se explique en el presente documento a continuación.
La Figura 3 es un diagrama de una colocación de un codificador de vídeo y un descodificador de vídeo en un entorno de transmisión, de acuerdo con una realización. La materia objeto divulgada puede ser igualmente aplicable a otras aplicaciones habilitadas para vídeo, incluyendo, por ejemplo, videoconferencias, TV digital, almacenamiento de vídeo comprimido en medios digitales que incluyen CD, DVD, tarjeta de memoria y similares, etc.
Un sistema de transmisión puede incluir un subsistema de captura (313) que puede incluir una fuente de vídeo (301), por ejemplo una cámara digital, creando, por ejemplo, una corriente de muestra de vídeo sin comprimir (302). Esa corriente de muestra (302), representada como una línea en negrita para enfatizar un alto volumen de datos en comparación con los flujos de bits de vídeo codificados, puede ser procesada por un codificador (303) acoplado a la cámara (301). El codificador (303) puede incluir hardware, software o una combinación de los mismos para habilitar o implementar aspectos del objeto descrito como se describe con más detalle a continuación. El flujo de bits de vídeo codificado (304), representado como una línea delgada para enfatizar el volumen de datos más bajo en comparación con la corriente de muestra, puede almacenarse en un servidor de flujo continuo (305) para su uso futuro. Uno o más clientes de transmisión en flujo continuo (306, 308) pueden acceder al servidor de flujo continuo (305) para recuperar copias (307, 309) del flujo de bits de vídeo codificado (304). Un cliente (306) puede incluir un decodificador de vídeo (310) que decodifica la copia entrante del flujo de bits de vídeo codificado (307) y crea una corriente de muestra de vídeo saliente (311) que puede representarse en un visualizador (312) u otro dispositivo de representación (no representado). En algunos sistemas de transmisión en flujo continuo, los flujos de bits de vídeo (304, 307, 309) pueden codificarse de acuerdo con ciertas normas de codificación/compresión de vídeo. Ejemplos de esas normas incluyen la Recomendación ITU-T H.265. En desarrollo hay una norma de codificación de vídeo conocida informalmente como WC. El objeto descrito puede usarse en el contexto de VVC.
La Figura 4 es un diagrama de bloques funcional de un decodificador de vídeo (310) según una realización.
Un receptor (410) puede recibir una o más secuencias de vídeo de códec que van a decodificarse por el decodificador (310); en la misma o una realización, una secuencia de vídeo codificada en un momento, donde la decodificación de cada secuencia de vídeo codificada es independiente de otras secuencias de vídeo codificadas. La secuencia de vídeo codificada puede recibirse desde un canal (412), que puede ser un enlace de hardware/software a un dispositivo de almacenamiento que almacena los datos de vídeo codificados. El receptor (410) puede recibir los datos de vídeo codificados con otros datos, por ejemplo, datos de audio codificados y/o flujos de datos auxiliares, que pueden enviarse a sus respectivas entidades de uso (no representadas). El receptor (410) puede separar la secuencia de vídeo codificada de los otros datos. Para combatir la fluctuación de la red, una memoria intermedia (415) se puede acoplar entre el receptor (410) y el decodificador/analizador de entropía (420) (“ analizador” en adelante). Cuando el receptor (410) recibe datos de un dispositivo de almacenamiento/envío de suficiente ancho de banda y capacidad de control, o de una red isosíncrona, la memoria intermedia (415) puede no ser necesaria, o puede ser pequeña. Para su uso en las redes de paquetes de mejor esfuerzo, como Internet, la memoria intermedia (415) puede ser necesaria, puede ser comparativamente grande y puede ser ventajosamente de tamaño adaptativo.
El descodificador de vídeo (310) puede incluir un analizador (420) para reconstruir símbolos (421) a partir de la secuencia de vídeo codificada por entropía. Categorías de esos símbolos incluyen información usada para gestionar el funcionamiento del decodificador (310), y potencialmente información para controlar un dispositivo de representación tal como una pantalla (312) que no es una parte integral del decodificador, pero puede acoplarse a él, como se muestra en la Figura 4. La información de control para el(los) dispositivo(s) de representación puede estar en forma de los fragmentos de conjunto de parámetros de mejora suplementaria (mensajes SEI) o de los parámetros de conjunto de parámetros de Usabilidad de Video (VUI) (no representados). El analizador (420) puede analizar/decodificar por entropía la secuencia de vídeo codificada recibida. La codificación de la secuencia de vídeo codificada puede ser de acuerdo con una tecnología o estándar de codificación de vídeo, y puede seguir los principios bien conocidos por un experto en la técnica, incluyendo codificación de longitud variable, codificación de Huffman, codificación aritmética con o sin sensibilidad al contexto, etc. El analizador (420) puede extraer de la secuencia de vídeo codificada, un conjunto de parámetros de subgrupo para al menos uno de los subgrupos de píxeles en el decodificador de vídeo, basándose en al menos un parámetro correspondiente al grupo. Los subgrupos pueden incluir grupos de imágenes (GOP), imágenes, mosaicos, cortes, macrobloques, unidades de codificación (CU), bloques, unidades de transformada (TU), unidades de predicción (PU) y así sucesivamente. El decodificador/analizador de entropía también puede extraer de la información de secuencia de vídeo codificada tal como coeficientes de transformada, valores de parámetro de cuantificador (QP), vectores de movimiento, etc.
El analizador (420) puede realizar la operación de decodificación/análisis de entropía en la secuencia de vídeo recibida desde la memoria intermedia (415), para crear símbolos (421). El analizador (420) puede recibir datos codificados y decodificar selectivamente símbolos particulares (421). Además, el analizador (420) puede determinar si los símbolos particulares (421) deben proporcionarse a una unidad de predicción de compensación de movimiento (453), una unidad de transformada de escalador/inversa (451), una unidad de Intra Predicción (452) o una unidad de filtro en bucle (454).
La reconstrucción de los símbolos (421) puede implicar múltiples unidades diferentes dependiendo del tipo de imagen de vídeo codificada o partes de la misma (tales como: inter e intra-imagen, inter e intra-bloque) y otros factores. Qué unidades están involucradas, y cómo pueden ser controladas por la información de control de subgrupo que se analizó a partir de la secuencia de vídeo codificada por el analizador (420). El flujo de dicha información de control de subgrupo entre el analizador (420) y las múltiples unidades a continuación no se representa para mayor claridad.
Más allá de los bloques funcionales ya mencionados, el decodificador (310) se puede subdividir conceptualmente en un número de unidades funcionales como se describe a continuación. En una implementación práctica que funciona bajo restricciones comerciales, muchas de estas unidades interactúan estrechamente entre sí y pueden, al menos parcialmente, integrarse entre sí. Sin embargo, con el fin de describir el objeto descrito, la subdivisión conceptual en las unidades funcionales a continuación es apropiada.
Una primera unidad es la unidad de escalador / transformada inversa (451). La unidad de transformada de escalador / inversa (451) recibe el coeficiente de transformada cuantificado, así como la información de control, que incluye la transformada para usar, el tamaño de bloque, el factor de cuantificación, las matrices de escala de cuantificación, etc. como símbolo(s) (421) del analizador (420). Puede emitir bloques que comprenden valores de muestra que pueden introducirse en agregador (455).
En algunos casos, las muestras de salida del escalador / transformada inversa (451) pueden pertenecer a un bloque intracodificado; esto es: un bloque que no usa información predictiva a partir de imágenes previamente reconstruidas, pero puede usar información predictiva a partir de partes previamente reconstruidas de la imagen actual. Dicha información predictiva puede ser proporcionada por una unidad (452) de predicción intra-imagen. En algunos casos, la unidad de predicción intra-imagen (452) genera un bloque del mismo tamaño y forma del bloque bajo reconstrucción, utilizando información circundante ya reconstruida obtenida a partir de la imagen actual (parcialmente reconstruida) (456). El agregador (455), en algunos casos, agrega, por muestra, la información de predicción, la unidad de intrapredicción (452) se ha generado a la información de la muestra de salida proporcionada por la unidad de escalador / transformada inversa (451).
En otros casos, las muestras de salida de la unidad de escalador / transformada inversa (451) pueden pertenecer a un bloque inter codificado y potencialmente compensado en movimiento. En tal caso, una unidad de predicción de compensación de movimiento (453) puede acceder a la memoria de imágenes de referencia (457) para extraer muestras usadas para la predicción. Después de compensar el movimiento de las muestras obtenidas de acuerdo con los símbolos (421) pertenecientes al bloque, estas muestras pueden añadirse por el agregador (455) a la salida de la unidad de escalador / transformada inversa (en este caso llamadas muestras residuales o señal residual) para generar información de muestra de salida. Las direcciones dentro del formulario de memoria de imágenes de referencia donde la unidad de compensación de movimiento recupera muestras de predicción pueden controlarse mediante vectores de movimiento, disponibles para la unidad de compensación de movimiento en forma de símbolos (421) que pueden tener, por ejemplo, componentes X, Y e imagen de referencia. La compensación de movimiento también puede incluir interpolación de valores de muestra como resultado de la memoria de imágenes de referencia cuando los vectores de movimiento exactos de submuestra están en uso, mecanismos de predicción de vectores de movimiento, etc.
Las muestras de salida del agregador (455) pueden someterse a diversas técnicas de filtrado en bucle en la unidad de filtro en bucle (454). Las tecnologías de compresión de vídeo pueden incluir tecnologías de filtro en bucle que se controlan por parámetros incluidos en el flujo de bits de vídeo codificado y se hacen disponibles para la unidad de filtro en bucle (454) como símbolos (421) del analizador (420), pero también pueden responder a metainformación obtenida durante la decodificación de partes anteriores (en orden de decodificación) de la imagen codificada o secuencia de vídeo codificada, así como en respuesta a valores de muestra previamente reconstruidos y filtrados en bucle.
La salida de la unidad de filtro en bucle (454) puede ser una corriente de muestra que se puede emitir al dispositivo de renderizado (312) así como se almacena en la memoria de imágenes de referencia (456) para su uso en futuras predicción entre imágenes.
Ciertas imágenes codificadas, una vez completamente reconstruidas, pueden usarse como imágenes de referencia para la predicción futura. Una vez que una imagen codificada se reconstruye completamente y la imagen codificada se ha identificado como una imagen de referencia (por ejemplo, el analizador (420), la imagen de referencia actual (456) puede convertirse en parte de la memoria intermedia de imágenes de referencia (457), y una memoria de imagen actual nueva puede reasignarse antes de comenzar la reconstrucción de la siguiente imagen codificada.
El decodificador de vídeo (310) puede realizar operaciones de decodificación de acuerdo con una tecnología de compresión de vídeo predeterminada que puede documentarse en un estándar, tal como ITU-T Rec. H.265. La secuencia de vídeo codificada puede ajustarse a una sintaxis especificada por la tecnología de compresión de vídeo o estándar que se utiliza, en el sentido de que se adhiere a la sintaxis de la tecnología o estándar de compresión de vídeo, como se especifica en el documento o estándar de tecnología de compresión de vídeo y específicamente en los perfiles documentados en el mismo. También es necesario para el cumplimiento que la complejidad de la secuencia de vídeo codificada esté dentro de límites como se define por el nivel de la tecnología o estándar de compresión de vídeo. En algunos casos, los niveles restringen el tamaño máximo de la imagen, la tasa máxima de tramas, la tasa máxima de la muestra de reconstrucción (medida, por ejemplo, en megamuestras por segundo), el tamaño máximo de la imagen de referencia, y así sucesivamente. Los límites establecidos por los niveles pueden, en algunos casos, restringirse adicionalmente a través de especificaciones de Decodificador de Referencia Hipotética (HRD) y metadatos para la gestión de memoria intermedia HRD señaladas en la secuencia de vídeo codificada.
En una realización, el receptor (410) puede recibir datos adicionales (redundantes) con el vídeo codificado. Los datos adicionales pueden incluirse como parte de la(s) secuencia(s) de vídeo codificada(s). Los datos adicionales pueden usarse por el decodificador de vídeo (310) para decodificar correctamente los datos y/o para reconstruir con mayor precisión los datos de vídeo originales. Los datos adicionales pueden estar en forma de, por ejemplo, capas de mejora temporal, espacial o señal a ruido (SNR), segmentos redundantes, imágenes redundantes, códigos de corrección de errores directos, etc.
La Figura 5 es un diagrama de bloques funcional de un codificador de vídeo (303) según una realización.
El codificador (303) puede recibir muestras de vídeo de una fuente (301) de vídeo (que no forma parte del codificador) que puede capturar imágenes de vídeo a codificar por el codificador (303).
La fuente de vídeo (301) puede proporcionar la secuencia de vídeo de origen a codificar por el codificador (303) en forma de una corriente de muestra de vídeo digital que puede ser de cualquier profundidad de bits adecuada (por ejemplo: 8 bit, 10 bit, 12 bit,.), cualquier espacio de color (por ejemplo, BT.601 Y CrCb, RGB,.) y cualquier estructura de muestreo adecuada (por ejemplo, Y CrCb 4:2:0, Y CrCb 4:4:4). En un sistema de servicio de medios, la fuente de vídeo (301) puede ser un dispositivo de almacenamiento que almacena vídeo previamente preparado. En un sistema de videoconferencias, la fuente de vídeo (301) puede ser una cámara que captura información de imagen local como una secuencia de vídeo. Los datos de vídeo pueden proporcionarse como una pluralidad de imágenes individuales que imparten movimiento cuando se ven en secuencia. Las propias imágenes pueden organizarse como una matriz espacial de píxeles, en donde cada píxel puede comprender una o más muestras dependiendo de la estructura de muestreo, espacio de color, etc., en uso. Un experto en la técnica puede comprender fácilmente la relación entre píxeles y muestras. La siguiente descripción se centra en las muestras.
De acuerdo con una realización, el codificador (303) puede codificar y comprimir las imágenes de la secuencia de vídeo fuente en una secuencia de vídeo codificada (543) en tiempo real o en cualquier otra limitación de tiempo según lo requiera la aplicación. La introducción de la velocidad de codificación apropiada es una función del controlador (550). El controlador controla otras unidades funcionales como se describe a continuación y se acopla funcionalmente a estas unidades. El acoplamiento no se representa para mayor claridad. Los parámetros establecidos por el controlador pueden incluir parámetros relacionados con el control de velocidad (omisión de imagen, cuantificador, valor lambda de técnicas de optimización de tasa-distorsión,..), diseño de tamaño de imagen, grupo de imágenes (GOP), rango de búsqueda de vector de movimiento máximo, etc. Un experto en la técnica puede identificar fácilmente otras funciones del controlador (550) ya que pueden pertenecer al codificador de vídeo (303) optimizado para un cierto diseño del sistema.
Algunos codificadores de vídeo operan en lo que un experto en la técnica reconoce fácilmente como un “ bucle de codificación” Como una descripción más simplificada, un bucle de codificación puede consistir en la parte de codificación de un codificador (530) (“ codificador fuente” en adelante) (responsable de crear símbolos basándose en una imagen de entrada a codificar, y una imagen o imágenes de referencia), y un decodificador (533) (local) incorporado en el codificador (303) que reconstruye los símbolos para crear los datos de muestra que también crearía un decodificador (remoto) (ya que cualquier compresión entre símbolos y flujo de bits de vídeo codificado es sin pérdidas en las tecnologías de compresión de vídeo consideradas en la materia objeto divulgada). Esa corriente de muestra reconstruida se introduce en la memoria de imágenes de referencia (534). Como la decodificación de un flujo de símbolos conduce a resultados exactos de bits independientes de la ubicación del decodificador (local o remoto), el contenido de memoria intermedia de imágenes de referencia también es bit exacto entre el codificador local y el codificador remoto. En otras palabras, la parte de predicción de un codificador “ve” como muestras de imagen de referencia exactamente los mismos valores de muestra que un decodificador “ve” cuando se usa predicción durante la decodificación. Este principio fundamental de la sincronización de imagen de referencia (y la deriva resultante, si no se puede mantener la sincronización, por ejemplo debido a errores de canal) es bien conocido por un experto en la técnica.
El funcionamiento del decodificador (533) “ local” puede ser el mismo que el decodificador (310) “ remoto” , que ya se ha descrito en detalle anteriormente junto con la Figura 4. Sin embargo, en referencia también a la Figura 4, a medida que los símbolos están disponibles y la codificación/decodificación de símbolos a una secuencia de vídeo codificada por el codificador por entropía (545) y el analizador (420) puede ser sin pérdidas, las partes de decodificación por entropía del decodificador (310), incluyendo el canal (412), el receptor (410), la memoria intermedia (415) y el analizador (420) pueden no implementarse completamente en el decodificador local (533).
Una observación que puede realizarse en este punto es que cualquier tecnología de decodificador excepto la decodificación de análisis/entropía que está presente en un decodificador también necesariamente necesita estar presente, en forma funcional sustancialmente idéntica, en un codificador correspondiente. La descripción de las tecnologías de codificador puede abreviarse como la inversa de las tecnologías de decodificador descritas ampliamente. Solo en ciertas áreas se requiere una descripción más detallada y se proporciona a continuación.
Como parte de su funcionamiento, el codificador fuente (530) puede realizar una codificación predictiva compensada en movimiento, que codifica una trama de entrada de manera predictiva con referencia a una o más tramas codificadas previamente a partir de la secuencia de vídeo que se designaron como “tramas de referencia” De esta manera, el motor de codificación (532) codifica diferencias entre bloques de píxeles de una trama de entrada y bloques de píxeles de la(s) trama(s) de referencia que pueden seleccionarse como referencia(s) de predicción a la trama de entrada.
El decodificador de vídeo local (533) puede descodificar datos de vídeo codificados de tramas que pueden designarse como tramas de referencia, basándose en símbolos creados por el codificador fuente (530). Las operaciones del motor de codificación (532) pueden ser ventajosamente procesos con pérdidas. Cuando los datos de vídeo codificados pueden decodificarse en un decodificador de vídeo (no mostrado en la Figura 4), la secuencia de vídeo reconstruida típicamente puede ser una réplica de la secuencia de vídeo de origen con algunos errores. El descodificador de vídeo local (533) replica procesos de descodificación que pueden ser realizados por el descodificador de vídeo en tramas de referencia y pueden causar tramas de referencia reconstruidas que se almacenarán en la memoria caché de imágenes de referencia (534). De esta manera, el codificador (303) puede almacenar copias de tramas de referencia reconstruidas localmente que tienen contenido común como tramas de referencia reconstruidas que se obtendrán mediante un decodificador de vídeo de extremo lejano (sin errores de transmisión).
El predictor (535) puede realizar búsquedas de predicción para el motor de codificación (532). Es decir, para una nueva trama a codificar, el predictor (535) puede buscar la memoria de imágenes de referencia (534) para datos de muestra (como bloques de píxeles de referencia candidatos) o ciertos metadatos tales como vectores de movimiento de imágenes de referencia, formas de bloque, etc., que pueden servir como referencia de predicción apropiada para las nuevas imágenes. El predictor (535) puede funcionar sobre una base bloque de muestra por píxel para encontrar referencias de predicción apropiadas. En algunos casos, según lo determinado por los resultados de búsqueda obtenidos por el predictor (535), una imagen de entrada puede tener referencias de predicción extraídas de múltiples imágenes de referencia almacenadas en la memoria de imágenes de referencia (534).
El controlador (550) puede gestionar las operaciones de codificación del codificador de vídeo (530), que incluyen, por ejemplo, la configuración de parámetros y parámetros de subgrupo utilizados para codificar los datos de vídeo.
La salida de todas las unidades funcionales mencionadas anteriormente puede someterse a codificación por entropía en el codificador por entropía (545). El codificador por entropía traduce los símbolos generados por las diversas unidades funcionales en una secuencia de vídeo codificada, comprimiendo sin pérdida los símbolos de acuerdo con las tecnologías conocidas por un experto en la técnica como, por ejemplo, codificación de Huffman, codificación de longitud variable, codificación aritmética, etc.
El transmisor (540) puede almacenar temporalmente la(s) secuencia(s) de vídeo codificada(s) como se crea por el codificador por entropía (545) para prepararlo para su transmisión a través de un canal de comunicación (560), que puede ser un enlace de hardware/software a un dispositivo de almacenamiento que puede almacenar los datos de vídeo codificados. El transmisor (540) puede fusionar datos de vídeo codificados del codificador de vídeo (530) con otros datos a transmitir, por ejemplo, datos de audio codificados y/o flujos de datos auxiliares (fuentes no mostradas).
El controlador (550) puede gestionar el funcionamiento del codificador (303). Durante la codificación, el controlador (550) puede asignar a cada imagen codificada un cierto tipo de imagen codificada, lo que puede afectar las técnicas de codificación que pueden aplicarse a la imagen respectiva. Por ejemplo, las imágenes a menudo pueden asignarse como uno de los siguientes tipos de trama:
Una intra-imagen (imagen I) puede ser una que pueda codificarse y decodificarse sin usar ninguna otra trama en la secuencia como una fuente de predicción. Algunos códecs de vídeo permiten diferentes tipos de Intra imágenes, que incluyen, por ejemplo, imágenes de actualización de decodificador independientes. Un experto en la técnica conoce esas variantes de imágenes I y sus respectivas aplicaciones y características.
Una imagen predictiva (imagen P) puede ser una que puede codificarse y decodificarse utilizando intrapredicción o inter predicción utilizando como máximo un vector de movimiento e índice de referencia para predecir los valores de muestra de cada bloque.
Una imagen predictiva bidireccional (imagen B) puede ser una que puede codificarse y decodificarse utilizando intrapredicción o inter predicción utilizando como máximo dos vectores de movimiento e índices de referencia para predecir los valores de muestra de cada bloque. De manera similar, las imágenes multipredictivas pueden usar más de dos imágenes de referencia y metadatos asociados para la reconstrucción de un solo bloque.
Las imágenes de origen comúnmente pueden subdividirse espacialmente en una pluralidad de bloques de muestra (por ejemplo, bloques de 4x4, 8x8, 4x8 o 16x16 muestras cada una) y codificarse en una base bloque por bloque. Los bloques pueden codificarse de manera predictiva con referencia a otros bloques (ya codificados) según lo determinado por la asignación de codificación aplicada a las imágenes respectivas de los bloques. Por ejemplo, los bloques de imágenes I pueden codificarse de forma no predictiva o pueden codificarse de manera predictiva con referencia a bloques ya codificados de la misma imagen (predicción espacial o intra predicción). Los bloques de píxeles de las imágenes P pueden codificarse de forma no previsiva, mediante predicción espacial o mediante predicción temporal con referencia a una imagen de referencia previamente codificada. Los bloques de imágenes B pueden codificarse de forma no predictiva, a través de predicción espacial o mediante predicción temporal con referencia a una o dos imágenes de referencia previamente codificadas.
El codificador de vídeo (303) puede realizar operaciones de codificación de acuerdo con una tecnología o norma de codificación de vídeo predeterminada, tal como ITU-T Rec. H.265. En su funcionamiento, el codificador de vídeo (303) puede realizar diversas operaciones de compresión, incluyendo operaciones de codificación predictiva que explotan redundancias temporales y espaciales en la secuencia de vídeo de entrada. Los datos de vídeo codificados, por lo tanto, pueden ajustarse a una sintaxis especificada por la tecnología de codificación de vídeo o estándar que se utiliza.
En una realización, el transmisor (540) puede transmitir datos adicionales con el vídeo codificado. El codificador de vídeo (530) puede incluir tales datos como parte de la secuencia de vídeo codificada. Los datos adicionales pueden comprender capas de mejora temporal/espaciales/SNR, otras formas de datos redundantes tales como imágenes redundantes y segmentos, mensajes de información de mejora complementaria (SEI), fragmentos de conjunto de parámetros de información Visual de Usabilidad (VUI), etc.
Los núcleos de transformada primaria de 8 bits de DST-7 y DCT-8 en VVC pueden ajustarse aún más para una mejor eficiencia o precisión de codificación.
Por ejemplo, de acuerdo con una realización, se propone un conjunto de núcleos de transformada DST-7 y DCT-8 de 8 bits. Los siguientes procedimientos propuestos pueden usarse por separado o combinarse en cualquier orden. Según una realización, las matrices de núcleo de transformada pueden ser:
DST-7 de 32 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, }
{ c, f, i, 1, o, r, u, x, A, D, F, C, z, w, t, q, n, k, h, e, b, -a, -d, -g, -j, -m, -p, -s, -v, -y, -B, -E,}
{ i, r, A, C, t, k, b, -g, -p, -y, -E, -v, -m, -d, e, n, w, F, x, o, f, -c, -l, -u, -D, -z, -q, -h, a, j, s, B,}
{ k, v, F, u, j, -a, -l, -w, -E, -t, -i, b, m, x, D, s, h, -c, -n, -y, - C, -r, -g, d, o, z, B, q, f, -e, -p, -A,}
{ m, z, z, m, 0, -m, -z, -z, -m, 0, m, z, z, m, 0, -m, -z, -z, -m, 0, m, z, z, m, 0, -m, -z, -z, -m, 0, m, z, }
{ o, D, t, e, -j, -y, -y, -j, e, t, D, o, 0, -o, -D, -t, -e, j, y, y, j, -e, -t, -D, -o, 0, o, D, t, e, -j, -y,}
{ q, E, n, -c, -t, -B, -k, f, w, y, h, -i, -z, -v, -e, l, C, s, b, -o, - F, -p, a, r, D, m, -d, -u, -A, -j, g, x,}
{ s, A, h, -k, -D, -p, c, v, x, e, -n, -F, -m, f, y, u, b, -q, -C, -j, i, B, r, -a, -t, -z, -g, 1, E, o, -d, -w,} { u, w, b, -s, -y, -d, q, A, f, -o, -C, -h, m, E, j, -k, -F, -1, i, D, n, -g, -B, -p, e, z, r, -c, -x, -t, a, v,}
{ w, s, -d, -A, -o, h, E, k, -1, -D, -g, p, z, c, -t, -v, a, x, r, -e, - B, -n, i, F, j, -m, -C, -f, q, y, b, -u,}
{ y, o, -j, -D, -e, t, t, -e, -D, -j, o, y, 0, -y, -o, j, D, e, -t, -t, e, D, j, -o, -y, 0, y, o, -j, -D, -e, t,}
{ A, k, -p, -v, e, F, f, -u, -q, j, B, a, -z, -1, o, w, -d, -E, -g, t, r, -i, -C, -b, y, m, -n, -x, c, D, h, -s,}
{ C, g, -v, -n, o, u, -h, -B, a, D, f, -w, -m, p, t, -i, -A, b, E, e, - x, -1, q, s, -j, -z, c, F, d, -y, -k, r,}
{ E, c, -B, -f, y, i, -v, -1, s, o, -p, -r, m, u, -j, -x, g, A, -d, -D, a, F, b, -C, -e, z, h, -w, -k, t, n, -q,}
{ F, -a, -E, b, D, -c, -C, d, B, -e, -A, f, z, -g, -y, h, x, -i, -w, j, v, -k, -u, 1, t, -m, -s, n, r, -o, -q, p,}
{ D, -e, -y, j, t, -o, -o, t, j, -y, -e, D, 0, -D, e, y, -j, -t, o, o, - t, -j, y, e, -D, 0, D, -e, -y, j, t, -o,}
{ B, -i, -s, r, j, -A, -a, C, -h, -t, q, k, -z, -b, D, -g, -u, p, 1, -y, - c, E, -f, -v, o, m, -x, -d, F, -e, -w, n,}
{ x, -q, -g, E, -j, -n, A, -c, -u, t, d, -B, m, k, -D, f, r, -w, -a, y, - p, -h, F, -i, -o, z, -b, -v, s, e, -C, l,)
{ v, -u, -a, w, -t, -b, x, -s, -c, y, -r, -d, z, -q, -e, A, -p, -f, B, -o, - g, C, -n, -h, D, -m, -i, E, -1, -j, F, -k,}
{ t, -y, e, o, -D, j, j, -D, o, e, -y, t, 0, -t, y, -e, -o, D, -j, -j, D, -o, -e, y, -t, 0, t, -y, e, o, -D, j,} { r, -C, k, g, -y, v, -d, -n, F, -o, -c, u, -z, h, j, -B, s, -a, -q, D, - l, -f, x, -w, e, m, -E, p, b, -t, A, -i,}
{ p, -F, q, -a, -o, E, -r, b, n, -D, s, -c, -m, C, -t, d, 1, -B, u, -e, - k, A, -v, f, j, -z, w, -g, -i, y, -x, h,)
{ n, -B, w, -i, -e, s, -F, r, -d, -j, x, -A, m, a, -o, C, -v, h, f, -t, E, -q, c, k, -y, z, -1, -b, p, -D, u, -g,}
{ 1, -x, C, -q, e, g, -s, E, -v, j, b, -n, z, -A, o, -c, -i, u, -F, t, - h, -d, p, -B, y, -m, a, k, -w, D, -r, f,}
{ j, -t, D, -y, o, -e, -e, o, -y, D, -t, j, 0, -j, t, -D, y, -o, e, e, - o, y, -D, t, -j, 0, j, -t, D, -y, o, -e,}
{ h, -p, x, -F, y, -q, i, -a, -g, o, -w, E, -z, r, -j, b, f, -n, v, -D, A, -s, k, -c, -e, m, -u, C, -B, t, -l, d,}
{ f, -1, r, -x, D, -C, w, -q, k, -e, -a, g, -m, s, -y, E, -B, v, -p, j, - d, -b, h, -n, t, -z, F, -A, u, -o, i, -c,}
{ d, -h, 1, -p, t, -x, B, -F, C, -y, u, -q, m, -i, e, -a, -c, g, -k, o, - s, w, -A, E, -D, z, -v, r, -n, j, -f, b,}
{ b, -d, f, -h, j, -1, n, -p, r, -t, v, -x, z, -B, D, -F, E, -C, A, -y, w, -u, s, -q, o, -m, k, -i, g, -e, c, -a,}
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F } = { 4, 9, 13, 17, 21, 26, 30, 34,
38, 42, 46, 50, 53, 56, 60, 63, 66, 68, 72, 74, 77, 78, 80, 82, 84, 85, 86, 87, 88, 89, 90, 90 }
DCT-8 de 32 puntos:
{ i, z, -w, -f, -1, -C, t, c, o, F, -q, -a, -r, E, n, d, u, -B, -k, -g, - x, y, h, j, A, -v, -e, -m, -D, s, b, p,}
{ j, C, -r, -b, -u, z, g, m, F, -o, -e, -x, w, d, p, -E, -1, -h, -A, t, a, s, -B, -i, -k, -D, q, c, v, -y, -f, -n,}
{ k, F, -m, -i, -D, o, g, B, -q, -e, -z, s, c, x, -u, -a, -v, w, b, t, - y, -d, -r, A, f, p, -C, -h, -n, E, j, l,}
{ l, -E, -h, -p, A, d, t, -w, -a, -x, s, e, B, -o, -i, -F, k, m, -D, -g, - q, z, c, u, -v, -b, -y, r, f, C, -n, -j,}
{ m, -B, -c, -w, r, h, 0, -h, -r, w, c, B, -m, -m, B, c, w, -r, -h, 0, h, r, -w, -c, -B, m, m, -B, -c, -w, r, h,}
{ n, -y, -c, -D, i, s, -t, -h, E, d, x, -o, -m, z, b, C, -j, -r, u, g, - F, -e, -w, p, 1, -A, -a, -B, k, q, -v, -f,}
{ o, -v, -h, C, a, D, -g, -w, n, p, -u, -i, B, b, E, -f, -x, m, q, -t, - j, A, c, F, -e, -y, 1, r, -s, -k, z, d,}
{ p, -s, -m, v, j, -y, -g, B, d, -E, -a, -F, c, C, -f, -z, i, w, -1, -t, o, q, -r, -n, u, k, -x, -h, A, e, -D, -b,}
{ q, -p, -r, o, s, -n, -t, m, u, -1, -v, k, w, -j, -x, i, y, -h, -z, g, A, -f, -B, e, C, -d, -D, c, E, -b, -F, a,}
{ r, -m, -w, h, B, -c, 0, c, -B, -h, w, m, -r, -r, m, w, -h, -B, c, 0, - c, B, h, -w, -m, r, r, -m, -w, h, B, -c,}
{ s, -j, -B, a, -C, -i, t, r, -k, -A, b, -D, -h, u, q, -1, -z, c, -E, -g, v, p, -m, -y, d, -F, -f, w, o, -n, -x, e,}
{ t, -g, 0, g, -t, -t, g, 0, -g, t, t, -g, 0, g, -t, -t, g, 0, -g, t, t, -g, 0, g, -t, -t, g, 0, -g, t, t, -g,}
{ v, -a, w, u, -b, x, t, -c, y, s, -d, z, r, -e, A, q, -f, B, p, -g, C, o, -h, D, n, -i, E, m, -j, F, 1, -k,}
{ w, -c, r, B, -h, m, 0, -m, h, -B, -r, c, -w, -w, c, -r, -B, h, -m, 0, m, -h, B, r, -c, w, w, -c, r, B, -h, m,}
{ x, -f, m, -E, -q, b, -t, -B, j, -i, A, u, -c, p, F, -n, e, -w, -y, g, - l, D, r, -a, s, C, -k, h, -z, -v, d, -o,}
{ y, -i, h, -x, -z, j, -g, w, A, -k, f, -v, -B, 1, -e, u, C, -m, d, -t, - D, n, -c, s, E, -o, b, -r, -F, p, -a, q,}
{ z, -1, c, -q, E, u, -g, h, -v, -D, p, -b, m, -A, -y, k, -d, r, -F, -t, f, -i, w, C, -o, a, -n, B, x, -j, e, -s,}
{ A, -o, c, -j, v, F, -t, h, -e, q, -C, -y, m, -a, 1, -x, -D, r, -f, g, - s, E, w, -k, b, -n, z, B, -p, d, -i, u,}
{ B, -r, h, -c, m, -w, 0, w, -m, c, -h, r, -B, -B, r, -h, c, -m, w, 0, - w, m, -c, h, -r, B, B, -r, h, -c, m, -w,}
{ C, -u, m, -e, d, -1, t, -B, -D, v, -n, f, -c, k, -s, A, E, -w, o, -g, b, -j, r, -z, -F, x, -p, h, -a, i, -q, y,}
{ D, -x, r, -1, f, -a, g, -m, s, -y, E, C, -w, q, -k, e, -b, h, -n, t, - z, F, B, -v, p, -j, d, -c, I, -o, u, -A,}
{ E, -A, w, -s, o, -k, g, -c, b, -f, j, -n, r, -v, z, -D, -F, B, -x, t, - p, 1, -h, d, -a, e, -i, m, -q, u, -y, C,}
{ F, -D, B, -z, x, -v, t, -r, p, -n, 1, -j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o, q, -s, u, -w, y, -A, C, -E,}
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F } = {90, 90, 89, 88, 87, 86, 85, 84, 82, 80, 78, 77, 74, 72, 68, 66, 63, 60, 56, 53, 50, 46,42, 38, 34, 30, 26, 21, 17, 13, 9, 4}
Según otra realización, las matrices de núcleo de transformación pueden ser:
DST-7 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, 1, o, o, l, i, f, c, 0, -c, -f, -i, -1, -o,}
{ e, j, o, m, h, c, -b, -g, -1, -p, -k, -f, -a, d, i, n,}
{ g, n, 1, e, -b, -i, -p, -j, -c, d, k, o, h, a, -f, -m,}
{ i, o, f, -c, -l, -l, -c, f, o, i, 0, -i, -o, -f, c, l,}
{ k, k, 0, -k, -k, 0, k, k, 0, -k, -k, 0, k, k, 0, -k,}
{ m, g, -f, -n, -a, l, h, -e, -o, -b, k, i, -d, -p, -c, j,}
{ o, c, -l, -f, i, i, -f, -l, c, o, 0, -o, -c, l, f, -i,}
{ p, -a, -o, b, n, -c, -m, d, l, -e, -k, f, j, -g, -i, h,}
{ n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, l, -g,}
{ l, -i, -c, o, -f, -f, o, -c, -i, 1, 0, -l, i, c, -o, f,}
{ j, -m, c, g, -p, f, d, -n, i, a, -k, l, -b, -h, o, -e,}
{ h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -l, d,}
{ f, -l, o, -I, c, c, -i, o, -l, f, 0, -f, l, -o, i, -c,}
{ d, -h, l, -p, m, -i, e, -a, -c, g, -k, o, -n, j, -f, b,}
{ b, -d, f, -h, j, -l, n, -p, o, -m, k, -i, g, -e, c, -a, }
donde {a, b, c, d, e, f, g, h, I, j, k, l, m, n, o, p} = { 9, 17, 25, 33, 41, 48, 55, 61, 68, 72, 77, 81, 85, 86, 88, 89} DCT-8 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0, -n, -k, -h, -e, -b, -b, -e, -h, -k, -n,}
{ c, h, m, -p, -k, -f, -a, -e, -j, -o, n, i, d, b, g, l,}
{ d, k, -p, -i, -b, -f, -m, n, g, a, h, o, -l, -e, -c, -j,}
{ e, n, -k, -b, -h, 0, h, b, k, -n, -e, -e, -n, k, b, h,}
{ f, 0, -f, -f, 0, f, f, 0, -f, -f, 0, f, f, 0, -f, -f,}
{ g, -n, -a, -m, h, f, -o, -b, -l, I, e, -p, -c, -k, j, d,}
{ h, -k, -e, n, b, 0, -b, -n, e, k, -h, -h, k, e, -n, -b,}
{ i, -h, -j, g, k, -f, -l, e, m, -d, -n, c, o, -b, -p, a, }
{ j, -e, -o, a, -n, -f, i, k, -d, -p, b, -m, -g, h, l, -c,}
{ k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e,}
{ l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g,}
{ m, -e, d, -l, -n, f, -c, k, o, -g, b, -j, -p, h, -a, i,}
{ 89, 88, 86, 85, 81, 77, 72, 68, 61,55, 48, 41, 33, 25, 17, 9}
Según otra realización, las matrices de núcleo de transformación pueden ser:
DST-7 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, l, o, o, 1, i, f, c, 0, -c, -f, -i, -l, -o,}
{ e, j, o, m, h, c, -b, -g, -1, -p, -k, -f, -a, d, i, n,}
{ g, n, 1, e, -b, -i, -p, -j, -c, d, k, o, h, a, -f, -m,}
{ i, o, f, -c, -1, -1, -c, f, o, i, 0, -i, -o, -f, c, l,}
{ k, k, 0, -k, -k, 0, k, k, 0, -k, -k, 0, k, k, 0, -k,}
{ m, g, -f, -n, -a, 1, h, -e, -o, -b, k, i, -d, -p, -c, j,}
{ o, c, -1, -f, i, i, -f, -1, c, o, 0, -o, -c, 1, f, -i,}
{ p, -a, -o, b, n, -c, -m, d, 1, -e, -k, f, j, -g, -i, h,}
{ n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, 1, -g,}
{ l, -I, -c, o, -f, -f, o, -c, -i, 1, 0, -1, i, c, -o, f,}
{ j, -m, c, g, -p, f, d, -n, i, a, -k, 1, -b, -h, o, -e,}
{ h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -1, d,}
{ f, -1, o, -i, c, c, -i, o, -1, f, 0, -f, 1, -o, i, -c,}
{ d, -h, 1, -p, m, -i, e, -a, -c, g, -k, o, -n, j, -f, b,}
{ c, h, m, -p, -k, -f, -a, -e, -j, -o, n, i, d, b, g, l,}
{ d, k, -p, -i, -b, -f, -m, n, g, a, h, o, -1, -e, -c, -j,}
{ e, n, -k, -b, -h, 0, h, b, k, -n, -e, -e, -n, k, b, h,}
{ f, 0, -f, -f, 0, f, f, 0, -f, -f, 0, f, f, 0, -f, -f,}
{ g, -n, -a, -m, h, f, -o, -b, -1, i, e, -p, -c, -k, j, d,}
{ h, -k, -e, n, b, 0, -b, -n, e, k, -h, -h, k, e, -n, -b,}
{ i, -h, -j, g, k, -f, -1, e, m, -d, -n, c, o, -b, -p, a, }
{ j, -e, -o, a, -n, -f, i, k, -d, -p, b, -m, -g, h, 1, -c,}
{ k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e,}
{ l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g,}
{ m, -e, d, -1, -n, f, -c, k, o, -g, b, -j, -p, h, -a, i,}
{ n, -h, b, -e, k, 0, -k, e, -b, h, -n, -n, h, -b, e, -k,}
{ o, -k, g, -c, b, -f, j, -n, -p, 1, -h, d, -a, e, -i, m,}
{ p, -n, 1, -j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o,}
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 88, 88, 87, 85, 81, 77, 73, 68, 62, 55, 48, 40, 33, 25, 17, 8} Según otra realización, las matrices de núcleo de transformación pueden ser:
DST-7 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0, -c, -f, -i, -1, -o,}
{ e, j, o, m, h, c, -b, -g, -1, -p, -k, -f, -a, d, i, n,}
{ g, n, 1, e, -b, -i, -p, -j, -c, d, k, o, h, a, -f, -m,}
{ i, o, f, -c, -1, -1, -c, f, o, i, 0, -i, -o, -f, c, l,}
{ k, k, 0, -k, -k, 0, k, k, 0, -k, -k, 0, k, k, 0, -k,}
{ m, g, -f, -n, -a, 1, h, -e, -o, -b, k, i, -d, -p, -c, j,}
{ o, c, -1, -f, i, i, -f, -1, c, o, 0, -o, -c, 1, f, -i,}
{ p, -a, -o, b, n, -c, -m, d, 1, -e, -k, f, j, -g, -i, h,}
{ n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, 1, -g,}
{ l, -i, -c, o, -f, -f, o, -c, -i, 1, 0, -1, i, c, -o, f,}
{ j, -m, c, g, -p, f, d, -n, i, a, -k, 1, -b, -h, o, -e,}
{ h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -1, d,}
{ f, -1, o, -i, c, c, -i, o, -1, f, 0, -f, 1, -o, i, -c,}
{ d, -h, 1, -p, m, -i, e, -a, -c, g, -k, o, -n, j, -f, b,}
{ b, -d, f, -h, j, -1, n, -p, o, -m, k, -i, g, -e, c, -a, }
donde {a,b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 8, 16, 25, 33, 41,48, 55, 62, 68, 73, 77, 81, 84, 87, 88, 89} DCT-8 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p,}
{ b, e, h, k, n, 0, -n, -k, -h, -e, -b, -b, -e, -h, -k, -n,}
{ c, h, m, -p, -k, -f, -a, -e, -j, -o, n, i, d, b, g, l,}
{ d, k, -p, -i, -b, -f, -m, n, g, a, h, o, -1, -e, -c, -j,}
{ e, n, -k, -b, -h, 0, h, b, k, -n, -e, -e, -n, k, b, h,}
{ f, 0, -f, -f, 0, f, f, 0, -f, -f, 0, f, f, 0, -f, -f,}
{ g, -n, -a, -m, h, f, -o, -b, -1, i, e, -p, -c, -k, j, d,}
{ h, -k, -e, n, b, 0, -b, -n, e, k, -h, -h, k, e, -n, -b,}
{ i, -h, -j, g, k, -f, -1, e, m, -d, -n, c, o, -b, -p, a, }
{ j, -e, -o, a, -n, -f, i, k, -d, -p, b, -m, -g, h, 1, -c,}
{ k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e,}
{ l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g,}
{ m, -e, d, -1, -n, f, -c, k, o, -g, b, -j, -p, h, -a, i,}
{ n, -h, b, -e, k, 0, -k, e, -b, h, -n, -n, h, -b, e, -k,}
{ o, -k, g, -c, b, -f, j, -n, -p, 1, -h, d, -a, e, -i, m, }
{ p, -n, 1, -j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o,}
donde {a, b, c, d, e, f, g, h, i,j, k, l, m, n, o, p} = { 89, 88, 87, 84, 81, 77, 73, 68, 62, 55, 48, 41, 33, 25, 16, 8} Según otra realización, las matrices de núcleo de transformación pueden ser:
DST-7 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p,}
{ c, f, i, 1, o, o, 1, i, f, c, 0, -c, -f, -i, -1, -o,}
{ e, j, o, m, h, c, -b, -g, -1, -p, -k, -f, -a, d, i, n,}
{ g, n, 1, e, -b, -i, -p, -j, -c, d, k, o, h, a, -f, -m,}
{ i, o, f, -c, -1, -1, -c, f, o, i, 0, -i, -o, -f, c, l,}
{ k, k, 0, -k, -k, 0, k, k, 0, -k, -k, 0, k, k, 0, -k,}
{ m, g, -f, -n, -a, 1, h, -e, -o, -b, k, i, -d, -p, -c, j,}
{ o, c, -1, -f, i, i, -f, -1, c, o, 0, -o, -c, 1, f, -i,}
{ p, -a, -o, b, n, -c, -m, d, 1, -e, -k, f, j, -g, -I, h,}
{ n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, 1, -g,}
{ l, -i, -c, o, -f, -f, o, -c, -i, 1, 0, -1, i, c, -o, f,}
{ j, -m, c, g, -p, f, d, -n, i, a, -k, 1, -b, -h, o, -e,}
{ h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -1, d,}
{ f, -1, o, -i, c, c, -i, o, -1, f, 0, -f, 1, -o, i, -c,}
{ d, -h, 1, -p, m, -i, e, -a, -c, g, -k, o, -n, j, -f, b,}
{ b, -d, f, -h, j, -1, n, -p, o, -m, k, -i, g, -e, c, -a, }
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 8, 16, 25, 33, 40, 48, 55, 62, 68, 73, 77, 81, 84, 87, 88, 88} DCT-8 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p,}
{ b, e, h, k, n, 0, -n, -k, -h, -e, -b, -b, -e, -h, -k, -n,}
{ c, h, m, -p, -k, -f, -a, -e, -j, -o, n, i, d, b, g, l,}
{ d, k, -p, -i, -b, -f, -m, n, g, a, h, o, -1, -e, -c, -j,}
{ e, n, -k, -b, -h, 0, h, b, k, -n, -e, -e, -n, k, b, h,}
{ f, 0, -f, -f, 0, f, f, 0, -f, -f, 0, f, f, 0, -f, -f,}
{ g, -n, -a, -m, h, f, -o, -b, -1, i, e, -p, -c, -k, j, d,}
{ h, -k, -e, n, b, 0, -b, -n, e, k, -h, -h, k, e, -n, -b,}
{ i, -h, -j, g, k, -f, -1, e, m, -d, -n, c, o, -b, -p, a, }
{ j, -e, -o, a, -n, -f, i, k, -d, -p, b, -m, -g, h, 1, -c,}
{ k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e,}
{ l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g,}
{ m, -e, d, -1, -n, f, -c, k, o, -g, b, -j, -p, h, -a, i,}
{ n, -h, b, -e, k, 0, -k, e, -b, h, -n, -n, h, -b, e, -k,}
{ o, -k, g, -c, b, -f, j, -n, -p, 1, -h, d, -a, e, -i, m,}
{ p, -n, 1, -j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o,}
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 88, 88, 87, 84, 81, 77, 73, 68, 62, 55, 48, 40, 33,25, 16, 8} Según otra realización, las matrices de núcleo de transformación pueden ser:
DST-7 de 16 puntos:
{ a, b, c, d, e, f, g, h, I, j, k, 1, m, n, o, p,}
{ c, f, i, 1, o, o, 1, i, f, c, 0, -c, -f, -i, -1, -o,}
{ e, j, o, m, h, c, -b, -g, -1, -p, -k, -f, -a, d, i, n,}
{ g, n, 1, e, -b, -i, -p, -j, -c, d, k, o, h, a, -f, -m,}
{ i, o, f, -c, -1, -1, -c, f, o, i, 0, -i, -o, -f, c, l,}
{ k, k, 0, -k, -k, 0, k, k, 0, -k, -k, 0, k, k, 0, -k,}
{ m, g, -f, -n, -a, 1, h, -e, -o, -b, k, i, -d, -p, -c, j,}
{ o, c, -1, -f, i, i, -f, -1, c, o, 0, -o, -c, 1, f, -i,}
{ p, -a, -o, b, n, -c, -m, d, 1, -e, -k, f, j, -g, -i, h,}
{ n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, 1, -g,}
{ l, -i, -c, o, -f, -f, o, -c, -i, 1, 0, -1, i, c, -o, f,}
{ j, -m, c, g, -p, f, d, -n, i, a, -k, 1, -b, -h, o, -e,}
{ h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -1, d,}
{ f, -1, o, -i, c, c, -i, o, -1, f, 0, -f, 1, -o, i, -c,}
{ d, -h, 1, -p, m, -i, e, -a, -c, g, -k, o, -n, j, -f, b,}
{ b, -d, f, -h, j, -1, n, -p, o, -m, k, -i, g, -e, c, -a, }
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 7, 18, 25, 34, 40, 48, 54, 61, 68, 74, 77, 81, 86, 86, 88, 88} DCT-8 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0, -n, -k, -h, -e, -b, -b, -e, -h, -k, -n,}
{ c, h, m, -p, -k, -f, -a, -e, -j, -o, n, i, d, b, g, l,}
{ d, k, -p, -i, -b, -f, -m, n, g, a, h, o, -1, -e, -c, -j,}
{ e, n, -k, -b, -h, 0, h, b, k, -n, -e, -e, -n, k, b, h,}
{ f, 0, -f, -f, 0, f, f, 0, -f, -f, 0, f, f, 0, -f, -f,}
{ g, -n, -a, -m, h, f, -o, -b, -l, i, e, -p, -c, -k, j, d,}
{ h, -k, -e, n, b, 0, -b, -n, e, k, -h, -h, k, e, -n, -b,}
{ i, -h, -j, g, k, -f, -l, e, m, -d, -n, c, o, -b, -p, a,}
{ j, -e, -o, a, -n, -f, i, k, -d, -p, b, -m, -g, h, 1, -c,}
{ k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e,}
{ l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g,}
{ m, -e, d, -1, -n, f, -c, k, o, -g, b, -j, -p, h, -a, i,}
{ n, -h, b, -e, k, 0, -k, e, -b, h, -n, -n, h, -b, e, -k,}
{ o, -k, g, -c, b, -f, j, -n, -p, l, -h, d, -a, e, -i, m,}
{ p, -n, 1, -j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o,}
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 88, 88, 86, 86, 81, 77, 74, 68, 61,54, 48, 40, 34, 25, 18, 7} Según otra realización, las matrices de núcleo de transformación pueden ser:
DST-7 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0, -c, -f, -i, -l, -o,}
{ e, j, o, m, h, c, -b, -g, -1, -p, -k, -f, -a, d, i, n,}
{ g, n, 1, e, -b, -i, -p, -j, -c, d, k, o, h, a, -f, -m,}
{ i, o, f, -c, -1, -1, -c, f, o, i, 0, -i, -o, -f, c, l,}
{ k, k, 0, -k, -k, 0, k, k, 0, -k, -k, 0, k, k, 0, -k,}
{ m, g, -f, -n, -a, 1, h, -e, -o, -b, k, i, -d, -p, -c, j,}
{ o, c, -1, -f, i, i, -f, -1, c, o, 0, -o, -c, 1, f, -i,}
{ p, -a, -o, b, n, -c, -m, d, 1, -e, -k, f, j, -g, -i, h,}
{ n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, 1, -g,}
{ l, -i, -c, o, -f, -f, o, -c, -i, 1, 0, -l, i, c, -o, f,}
{ j, -m, c, g, -p, f, d, -n, i, a, -k, 1, -b, -h, o, -e,}
{ h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -1, d,}
{ f, -1, o, -i, c, c, -i, o, -1, f, 0, -f, 1, -o, i, -c,}
{ d, -h, 1, -p, m, -i, e, -a, -c, g, -k, o, -n, j, -f, b,}
{ c, h, m, -p, -k, -f, -a, -e, -j, -o, n, i, d, b, g, l,}
{ d, k, -p, -i, -b, -f, -m, n, g, a, h, o, -1, -e, -c, -j,}
{ e, n, -k, -b, -h, 0, h, b, k, -n, -e, -e, -n, k, b, h,}
{ f, 0, -f, -f, 0, f, f, 0, -f, -f, 0, f, f, 0, -f, -f,}
{ g, -n, -a, -m, h, f, -o, -b, -1, i, e, -p, -c, -k, j, d,}
{ h, -k, -e, n, b, 0, -b, -n, e, k, -h, -h, k, e, -n, -b,}
{ i, -h, -j, g, k, -f, -1, e, m, -d, -n, c, o, -b, -p, a,}
{ j, -e, -o, a, -n, -f, i, k, -d, -p, b, -m, -g, h, 1, -c,}
{ k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e,}
{ l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g,}
{ m, -e, d, -1, -n, f, -c, k, o, -g, b, -j, -p, h, -a, i,}
{ n, -h, b, -e, k, 0, -k, e, -b, h, -n, -n, h, -b, e, -k,}
{ o, -k, g, -c, b, -f, j, -n, -p, 1, -h, d, -a, e, -i, m,}
{ p, -n, 1, -j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o,}
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 88, 88, 87, 85, 81, 77, 74, 68, 62, 55, 48, 40, 33,25, 17, 7} Según otra realización, las matrices de núcleo de transformación pueden ser:
DST-7 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p,}
{ c, f, i, 1, o, o, 1, i, f, c, 0, -c, -f, -i, -1, -o,}
{ e, j, o, m, h, c, -b, -g, -1, -p, -k, -f, -a, d, i, n,}
{ g, n, 1, e, -b, -i, -p, -j, -c, d, k, o, h, a, -f, -m,}
{ I, o, f, -c, -1, -1, -c, f, o, i, 0, -i, -o, -f, c, l,}
{ k, k, 0, -k, -k, 0, k, k, 0, -k, -k, 0, k, k, 0, -k,}
{ m, g, -f, -n, -a, 1, h, -e, -o, -b, k, i, -d, -p, -c, j,}
{ o, c, -1, -f, i, i, -f, -1, c, o, 0, -o, -c, 1, f, -i,}
{ p, -a, -o, b, n, -c, -m, d, 1, -e, -k, f, j, -g, -I, h,}
{ n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, 1, -g,}
{ l, -i, -c, o, -f, -f, o, -c, -i, 1, 0, -1, i, c, -o, f,}
{ j, -m, c, g, -p, f, d, -n, i, a, -k, 1, -b, -h, o, -e,}
{ h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -1, d,}
{ f, -1, o, -i, c, c, -i, o, -1, f, 0, -f, 1, -o, i, -c,}
{ d, -h, 1, -p, m, -i, e, -a, -c, g, -k, o, -n, j, -f, b,}
{ b, -d, f, -h, j, -1, n, -p, o, -m, k, -i, g, -e, c, -a, }
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 7, 16, 25, 33, 40, 48, 55, 62, 68, 74, 77, 81, 84, 87, 88, 88} DCT-8 de 16 puntos:
{ a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p,}
{ b, e, h, k, n, 0, -n, -k, -h, -e, -b, -b, -e, -h, -k, -n,}
{ c, h, m, -p, -k, -f, -a, -e, -j, -o, n, i, d, b, g, l,}
{ i, -h, -j, g, k, -f, -1, e, m, -d, -n, c, o, -b, -p, a,}
{ j, -e, -o, a, -n, -f, I, k, -d, -p, b, -m, -g, h, 1, -c,}
{ k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e,}
{ l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g,}
{ m, -e, d, -1, -n, f, -c, k, o, -g, b, -j, -p, h, -a, i,}
{ n, -h, b, -e, k, 0, -k, e, -b, h, -n, -n, h, -b, e, -k,}
{ o, -k, g, -c, b, -f, j, -n, -p, 1, -h, d, -a, e, -I, m,}
{ p, -n, 1, -j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o,}
donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 88, 88, 87, 84, 81, 77, 74, 68, 62, 55, 48, 40, 33,25, 16, 7} La Figura 6 es un diagrama de flujo que ilustra un procedimiento (600) de decodificación o codificación de una secuencia de vídeo, de acuerdo con una realización. En algunas implementaciones, uno o más bloques de proceso de la Figura 6 pueden ser realizados por el decodificador (310). En algunas implementaciones, uno o más bloques de proceso de la Figura 6 pueden ser realizados por otro dispositivo o un grupo de dispositivos separados o incluyendo el decodificador (310), tal como el codificador (303).
Con referencia a la Figura 6, en un primer bloque (610), el procedimiento (600) incluye recibir información con respecto a una secuencia de video para codificar o decodificar.
En un segundo bloque (620), el procedimiento (600) incluye determinar, para la codificación o decodificación de la secuencia de vídeo, si usar o no una primera matriz de núcleo de transformada que es de un primer tipo de tamaño o una segunda matriz de núcleo de transformada que es de un segundo tipo de tamaño.
En un tercer bloque (630), el procedimiento (600) incluye basándose en la determinación, transmitir información que haga que la secuencia de vídeo se codifique o decodifique utilizando la primera matriz de núcleo de transformada determinada o la segunda matriz de núcleo de transformada determinada.
Aunque la Figura 6 muestra bloques de ejemplo de procedimientos (600), en algunas implementaciones, el procedimiento (600) puede incluir bloques adicionales, menos bloques, bloques diferentes o bloques dispuestos de manera diferente a los representados en la Figura 6. Adicionalmente, o alternativamente, dos o más de los bloques del procedimiento (600) pueden realizarse en paralelo.
Además, el procedimiento propuesto puede implementarse mediante circuitos de procesamiento (por ejemplo, uno o más procesadores o uno o más circuitos integrados). En un ejemplo, el uno o más procesadores ejecutan un programa que se almacena en un medio legible por ordenador no transitorio para realizar uno o más de los procedimientos propuestos.
La Figura 7 ilustra un ejemplo de matrices de núcleo de transformada, según una realización. Por ejemplo, la matriz de núcleo de transformada 701 ilustra una matriz de núcleo de transformada de transformada sinusoidal discreta de 16 puntos (DST)-7, y la matriz de núcleo de transformada 702 ilustra una matriz de núcleo de transformada de una transformada cosinusoidal discreta (DCT)-8.
La Figura 8 es un diagrama de bloques simplificado de un aparato (800) para la decodificación o codificación de una secuencia de vídeo, de acuerdo con una realización.
Con referencia a la Figura 8, el aparato (800) incluye el código de recepción (810), el código de determinación (820) y el código de transmisión (830).
El código de determinación (810) está configurado para hacer que al menos un procesador reciba información con respecto a una secuencia de vídeo para codificar o decodificar.
El código de determinación (820) está configurado para hacer que el al menos un procesador determine, para la codificación o decodificación de la secuencia de vídeo, si usar o no una primera matriz de núcleo de transformada que es de un primer tipo de tamaño o una segunda matriz de núcleo de transformada que es de un segundo tipo de tamaño.
El código de transmisión (830) está configurado para hacer que al menos un procesador, basándose en la determinación, transmita información que haga que la secuencia de vídeo se codifique o decodifique utilizando la primera matriz de núcleo de transformada determinada o la segunda matriz de núcleo de transformada determinada.
Las técnicas descritas anteriormente, pueden implementarse como software de ordenador utilizando instrucciones legibles por ordenador y almacenarse físicamente en uno o más medios legibles por ordenador.
La Figura 9 es un diagrama de un sistema informático (900) adecuado para implementar realizaciones.
El software informático puede codificarse utilizando cualquier código de máquina o lenguaje informático adecuado, que puede estar sujeto a ensamblaje, compilación, vinculación o mecanismos similares para crear código que comprende instrucciones que pueden ejecutarse directamente, o por interpretación, ejecución de microcódigo y similares, por unidades centrales de procesamiento (CPU), unidades de procesamiento gráfico (GPU) y similares.
Las instrucciones pueden ejecutarse en diversos tipos de ordenadores o componentes de los mismos, que incluyen, por ejemplo, ordenadores personales, tabletas, servidores, teléfonos inteligentes, dispositivos de juego, internet de los dispositivos de cosas y similares.
Los componentes mostrados en la Figura 9 para el sistema informático (900) son de naturaleza ejemplar y no pretenden sugerir ninguna limitación en cuanto al alcance de uso o funcionalidad de las realizaciones de implementación de software informático. Tampoco debe interpretarse que la configuración de componentes tiene cualquier dependencia o requisito relacionado con uno cualquiera o una combinación de componentes ilustrados en la realización ejemplar de un sistema informático (900).
El sistema informático (900) puede incluir ciertos dispositivos de entrada de interfaz humana. Dicho dispositivo de entrada de la interfaz humana puede ser sensible a la entrada por uno o más usuarios humanos a través de, por ejemplo, entrada táctil (tales como: pulsaciones, deslizamientos, movimientos del guante de datos), entrada de audio (tales como: voz, bloqueo), entrada visual (tales como: gestos), entrada olfativa (no representada). Los dispositivos de interfaz humana también se pueden usar para capturar ciertos medios no necesariamente relacionados directamente con la entrada consciente por un ser humano, tal como audio (tales como: voz, música, sonido ambiental), imágenes (tales como: imágenes escaneadas, imágenes fotográficas obtenidas de una cámara de imagen fija), vídeo (tal como vídeo bidimensional, vídeo tridimensional que incluye vídeo estereoscópico).
Los dispositivos de interfaz humana de entrada pueden incluir uno o más de (solo uno de cada uno de los representados): teclado (901), ratón (902), almohadilla de seguimiento (903), pantalla táctil (910), guante de datos (904), palanca de mando (905), micrófono (906), escáner (907), cámara (908).
El sistema informático (900) también puede incluir ciertos dispositivos de salida de interfaz humana. Dichos dispositivos de salida de la interfaz humana pueden estimular los sentidos de uno o más usuarios humanos a través de, por ejemplo, salida táctil, sonido, luz y olor/sabor. Dichos dispositivos de salida de interfaz humana pueden incluir dispositivos de salida táctiles (por ejemplo, retroalimentación táctil mediante pantalla táctil (910), guante de datos (904) o joystick (905), pero también puede haber dispositivos de retroalimentación táctil que no sirven como dispositivos de entrada), dispositivos de salida de audio (tales como: altavoces (909), auriculares (no representados)), dispositivos de salida visual (tales como pantallas (910) para incluir pantallas de tubo de rayos catódicos (CRT), pantalla de cristal líquido (LCD), pantallas de plasma, pantallas de diodos orgánicos emisores de luz (OLED), cada una con o sin capacidad de entrada de pantalla táctil, cada una con o sin capacidad de retroalimentación táctil, algunas de las cuales pueden ser capaces de generar resultados visuales bidimensionales o más que salidas tridimensionales a través de medios tales como salida estereográfica; gafas de realidad virtual (no representadas), pantallas holográficas y tanques de humo (no representados), e impresoras (no representadas).
El sistema informático (900) también puede incluir dispositivos de almacenamiento accesibles para humanos y sus medios asociados tales como medios ópticos que incluyen CD/DVD ROM/RW (920) con CD/DVD o medios similares (921), memoria USB (922), disco duro o unidad de estado sólido extraíble (923), medios magnéticos heredados tales como cintas y disquetes (no representados), dispositivos especializados basados en ROM/ASIC/PLD tales como dongles de seguridad (no representados), y similares.
Los expertos en la técnica también deben comprender que el término “ medios legibles por ordenador” como se usa en relación con la materia objeto actualmente divulgada no abarca medios de transmisión, ondas portadoras u otras señales transitorias.
El sistema informático (900) también puede incluir una o varias interfaces a una o más redes de comunicación. Las redes pueden ser, por ejemplo, inalámbricas, cableadas, ópticas. Las redes pueden ser, además, locales, de gran área, metropolitana, vehicular e industriales, en tiempo real, tolerante a la demora, etc. Ejemplos de redes incluyen redes de área local como Ethernet, LAN inalámbricas, redes celulares para incluir sistemas globales para comunicaciones móviles (GSM), tercera generación (3G), cuarta generación (4G), quinta generación (5G), evolución a largo plazo (LTE) y similares, redes digitales de área amplia inalámbricas o cableadas de TV para incluir TV por cable, T<v>satelital y transmisión de TV terrestre, vehicular e industrial para incluir CANBus, etc. Ciertas redes comúnmente requieren adaptadores de interfaz de red externos que se conectan a ciertos puertos de datos de propósito general o buses periféricos (949) (como, por ejemplo, puertos de bus serie universal (USB) del sistema informático (900); otros se integran comúnmente en el núcleo del sistema informático (900) mediante la unión a un bus del sistema como se describe a continuación (por ejemplo, interfaz Ethernet en un sistema informático PC o interfaz de red celular en un sistema informático inteligente). Utilizando cualquiera de estas redes, el sistema informático (900) puede comunicarse con otras entidades. Dicha comunicación puede ser unidireccional, recibir solo (por ejemplo, difusión de difusión), solo envío unidireccional (por ejemplo, NANbus a ciertos dispositivos de CANbus), o bidireccional, por ejemplo, a otros sistemas informáticos que usan redes digitales de área local o amplia. Se pueden usar ciertos protocolos y pilas de protocolos en cada una de esas redes e interfaces de red como se describió anteriormente.
Los dispositivos de interfaz humana anteriormente mencionados, dispositivos de almacenamiento humanos accesibles e interfaces de red pueden unirse a un núcleo (940) del sistema informático (900).
El núcleo (940) puede incluir una o más Unidades Central de Procesamiento (CPU) (941), Unidades de Procesamiento Gráfico (GPU) (942), unidades de procesamiento programables especializadas en forma de áreas de puertas programables en campo (FPGA) (943), aceleradores de hardware (944) para ciertas tareas, y así sucesivamente. Estos dispositivos, junto con la memoria de solo lectura (ROM) (945), memoria de acceso aleatorio (RAM) (946), almacenamiento de masa interno tal como discos duros internos no accesibles por el usuario, unidades de estado sólido (SSD) y similares (947), pueden conectarse a través de un bus del sistema (948). En algunos sistemas informáticos, el bus del sistema (948) puede ser accesible en forma de uno o más tapones físicos para habilitar extensiones por CPU adicionales, GPU y similares. Los dispositivos periféricos se pueden unir directamente al bus del sistema del núcleo (948), o a través de un bus periférico (949). Las arquitecturas para un bus periférico incluyen interconexión de componentes periféricos (PCI), USB y similares.
CPU (941), GPU (942), FPGA (943) y aceleradores (944) pueden ejecutar ciertas instrucciones que, en combinación, pueden constituir el código informático mencionado anteriormente. Ese código informático puede almacenarse en la ROM (945) o RAM (946). Los datos transitorios también pueden almacenarse en la RAM (946), mientras que los datos permanentes pueden almacenarse, por ejemplo, en el almacenamiento de masa interno (947). El almacenamiento rápido y la recuperación a cualquiera de los dispositivos de memoria pueden habilitarse a través del uso de memoria caché, que puede asociarse estrechamente con una o más CPU (941), GPU (942), almacenamiento masivo (947), ROM (945), RAM (946) y similares.
Los medios legibles por ordenador pueden tener código informático en el mismo para realizar diversas operaciones implementadas por ordenador. Los medios y el código informático pueden ser aquellos especialmente diseñados y construidos para los fines de las realizaciones, o pueden ser del tipo bien conocido y disponible para aquellos que tienen habilidad en las técnicas de software informático.
Como ejemplo y no a modo de limitación, el sistema informático tiene arquitectura (900) y, específicamente, el núcleo (940) puede proporcionar funcionalidad como resultado del procesador o procesadores (incluidas CPU, GPU, FPGA, aceleradores y similares) que ejecuta software incorporado en uno o más medios tangibles legibles por ordenador. Dichos medios legibles por ordenador pueden ser medios asociados con el almacenamiento de masa accesible por el usuario como se ha introducido anteriormente, así como un cierto almacenamiento del núcleo (940) que son de naturaleza no transitoria, tal como el almacenamiento de masa interno en el núcleo (947) o ROM (945). El software que implementa varias realizaciones puede almacenarse en tales dispositivos y ejecutarse por el núcleo (940). Un medio legible por ordenador puede incluir uno o más dispositivos o chips de memoria, de acuerdo con las necesidades particulares. El software puede hacer que el núcleo (940) y específicamente los procesadores en el mismo (incluyendo la CPU, GPU, FPGA y similares) ejecuten procesos particulares o partes particulares de procesos particulares descritos en el presente documento, incluyendo definir estructuras de datos almacenadas en RAM (946) y modificar tales estructuras de datos de acuerdo con los procesos definidos por el software. Además o como alternativa, el sistema informático puede proporcionar funcionalidad como resultado de una lógica cableada o incorporarse de otro modo en un circuito (por ejemplo: acelerador (944), que puede funcionar en lugar de o junto con software para ejecutar procesos particulares o partes particulares de procesos particulares descritos en el presente documento. La referencia al software puede abarcar lógica y viceversa, cuando sea apropiado. La referencia a un medio legible por ordenador puede abarcar un circuito (tal como un circuito integrado (IC) que almacena software para su ejecución, un circuito que incorpora lógica para su ejecución, o ambos, cuando sea apropiado. Las realizaciones abarcan cualquier combinación adecuada de hardware y software.
Si bien esta descripción ha descrito varias realizaciones ilustrativas, hay alteraciones, permutaciones y diversos equivalentes sustitutos, que caen dentro del alcance de la descripción. Por lo tanto, se apreciará que los expertos en la técnica podrán idear numerosos sistemas y métodos que, aunque no se muestran ni describen explícitamente en el presente documento, incorporan los principios de la divulgación y, por lo tanto, están dentro del alcance de la misma.

Claims (1)

  1. REIVINDICACIONES
    Un método de decodificación o codificación, realizándose el método por al menos un procesador, y comprendiendo el método:
    recibir información referente a una secuencia de vídeo para codificación o decodificación; determinar, para la codificación o decodificación de la secuencia de vídeo, si usar una primera matriz de núcleo de transformada que es de un primer tipo de tamaño o una segunda matriz de núcleo de transformada que es de un segundo tipo de tamaño, en donde la primera matriz de núcleo de transformada es una transformada sinusoidal discreta, DST, -7 y la segunda matriz de núcleo de transformada es una transformada cosinusoidal discreta, DCT, -8; y
    basándose en la determinación, transmitir información que hace que la secuencia de vídeo se codifique o decodifique utilizando la primera matriz de núcleo de transformada determinada o la segunda matriz de núcleo de transformada, en donde la primera matriz de núcleo de transformada es una DST-7 de 16 puntos y la segunda matriz de núcleo de transformada es una CDT--8 de 16 puntos,
    en donde la DST-7 de 16 puntos se construye utilizando la siguiente matriz:
    { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
    { c, f, i, 1, o, o, l, i, f, c, 0, -c, -f, -i, -l, -o,}
    { e, j, o, m, h, c, -b, -g, -l, -p, -k, -f, -a, d, i, n,}
    { g, n, l, e, -b, -i, -p, -j, -c, d, k, o, h, a, -f, -m,}
    { i, o, f, -c, -l, -l, -c, f, o, i, 0, -i, -o, -f, c, l,}
    { k, k, 0, -k, -k, 0, k, k, 0, -k, -k, 0, k, k, 0, -k,}
    { m, g, -f, -n, -a, l, h, -e, -o, -b, k, i, -d, -p, -c, j,}
    { o, c, -l, -f, i, i, -f, -l, c, o, 0, -o, -c, l, f, -i,}
    { p, -a, -o, b, n, -c, -m, d, l, -e, -k, f, j, -g, -i, h,}
    { n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, l, -g,}
    { l, -i, -c, o, -f, -f, o, -c, -i, l, 0, -l, i, c, -o, f,}
    { j, -m, c, g, -p, f, d, -n, i, a, -k, l, -b, -h, o, -e,}
    { h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -l, d,}
    { f, -l, o, -I, c, c, -i, o, -l, f, 0, -f, l, -o, i, -c,}
    { d, -h, l, -p, m, -i, e, -a, -c, g, -k, o, -n, j, -f, b,}
    { b, -d, f, -h, j, -l, n, -p, o, -m, k, -i, g, -e, c, -a,}
    en donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 8, 17, 25, 33, 40, 48, 55, 62, 68, 73, 77, 81, 85, 87, 88, 88},
    y la CDT--8 de 16 puntos se construye utilizando la siguiente matriz:
    { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
    { b, e, h, k, n, 0, -n, -k, -h, -e, -b, -b, -e, -h, -k, -n,}
    { c, h, m, -p, -k, -f, -a, -e, -j, -o, n, i, d, b, g, l,}
    { d, k, -p, -i, -b, -f, -m, n, g, a, h, o, -l, -e, -c, -j,}
    { e, n, -k, -b, -h, 0, h, b, k, -n, -e, -e, -n, k, b, h,}
    { f, 0, -f, -f, 0, f, f, 0, -f, -f, 0, f, f, 0, -f, -f,}
    { g, -n, -a, -m, h, f, -o, -b, -l, i, e, -p, -c, -k, j, d,}
    { h, -k, -e, n, b, 0, -b, -n, e, k, -h, -h, k, e, -n, -b,}
    { i, -h, -j, g, k, -f, -l, e, m, -d, -n, c, o, -b, -p, a,}
    { j, -e, -o, a, -n, -f, i, k, -d, -p, b, -m, -g, h, l, -c,}
    { k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e,}
    { l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g,}
    { m, -e, d, -l, -n, f, -c, k, o, -g, b, j, -p, h, -a, i,}
    { n, -h, b, -e, k, 0, -k, e, -b, h, -n, -n, h, -b, e, -k,}
    { o, -k, g, -c, b, -f, j, -n, -p, l, -h, d, -a, e, -i, m,}
    { p, -n, l, j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o,}
    en donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 88, 88, 87, 85, 81, 77, 73, 68, 62, 55, 48, 40, 33, 25, 17, 8}.
    El método de la reivindicación 1, en donde la primera matriz de núcleo de transformada tiene los mismos números que la segunda matriz de núcleo de transformada con los números en orden inverso.
    Un aparato (800) para decodificar o codificar una secuencia de vídeo, comprendiendo el aparato:
    al menos una memoria configurada para almacenar un código de programa informático; y al menos un procesador configurado para acceder a la al menos una memoria y operar de acuerdo con el código de programa informático, comprendiendo el código de programa informático:
    recibir el código (810) configurado para hacer que el al menos un procesador reciba información con respecto a una secuencia de vídeo para codificación o decodificación; determinar el código (820) configurado para hacer que el al menos un procesador determine, para la codificación o decodificación de la secuencia de vídeo, si usar una primera matriz de núcleo de transformada que es de un primer tipo de tamaño o una segunda matriz de núcleo de transformada que es de un segundo tipo de tamaño, en donde la primera matriz de núcleo de transformada es una transformada sinusoidal discreta, DST, -7 y la segunda matriz de núcleo de transformada es una transformada cosinusoidal discreta, DCT, -8; y
    transmitir el código (830) configurado para hacer que el al menos un procesador, en base a la determinación, transmita información que haga que la secuencia de vídeo se codifique o decodifique utilizando la primera matriz de núcleo de transformada determinada o la segunda matriz de núcleo de transformada determinada, en donde la primera matriz de núcleo de transformada es una DST-7 de 16 puntos y la segunda matriz de núcleo de transformada es una CDT-8 de 16 puntos,
    en donde la DST-7 de 16 puntos se construye utilizando la siguiente matriz:
    { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
    { c, f, i, 1, o, o, l, i, f, c, 0, -c, -f, -i, -l, -o,}
    { e, j, o, m, h, c, -b, -g, -l, -p, -k, -f, -a, d, i, n,}
    { g, n, l, e, -b, -i, -p, -j, -c, d, k, o, h, a, -f, -m,}
    { i, o, f, -c, -l, -l, -c, f, o, i, 0, -i, -o, -f, c, l,}
    { k, k, 0, -k, -k, 0, k, k, 0, -k, -k, 0, k, k, 0, -k,}
    { m, g, -f, -n, -a, l, h, -e, -o, -b, k, i, -d, -p, -c, j,}
    { o, c, -l, -f, i, i, -f, -l, c, o, 0, -o, -c, l, f, -i,}
    { p, -a, -o, b, n, -c, -m, d, l, -e, -k, f, j, -g, -i, h,}
    { n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, l, -g,}
    { l, -i, -c, o, -f, -f, o, -c, -i, l, 0, -l, i, c, -o, f,}
    { j, -m, c, g, -p, f, d, -n, i, a, -k, l, -b, -h, o, -e,}
    { h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -l, d,}
    { f, -l, o, -i, c, c, -i, o, -l, f, 0, -f, l, -o, i, -c,}
    { d, -h, l, -p, m, -i, e, -a, -c, g, -k, o, -n, j, -f, b,}
    { b, -d, f, -h, j, -l, n, -p, o, -m, k, -i, g, -e, c, -a,}
    en donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 8, 17, 25, 33, 40, 48, 55, 62, 68, 73, 77, 81, 85, 87, 88, 88},
    y en donde la CDT--8 de 16 puntos se construye utilizando la siguiente matriz:
    { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
    { b, e, h, k, n, 0, -n, -k, -h, -e, -b, -b, -e, -h, -k, -n,}
    { c, h, m, -p, -k, -f, -a, -e, -j, -o, n, i, d, b, g, l,}
    { d, k, -p, -i, -b, -f, -m, n, g, a, h, o, -l, -e, -c, -j,}
    { e, n, -k, -b, -h, 0, h, b, k, -n, -e, -e, -n, k, b, h,}
    { f, 0, -f, -f, 0, f, f, 0, -f, -f, 0, f, f, 0, -f, -f,}
    { g, -n, -a, -m, h, f, -o, -b, -l, I, e, -p, -c, -k, j, d,}
    { h, -k, -e, n, b, 0, -b, -n, e, k, -h, -h, k, e, -n, -b,}
    { i, -h, -j, g, k, -f, -l, e, m, -d, -n, c, o, -b, -p, a,}
    { j, -e, -o, a, -n, -f, i, k, -d, -p, b, -m, -g, h, l, -c,}
    { k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e,}
    { l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g,}
    { m, -e, d, -l, -n, f, -c, k, o, -g, b, j, -p, h, -a, i,}
    { n, -h, b, -e, k, 0, -k, e, -b, h, -n, -n, h, -b, e, -k,}
    { o, -k, g, -c, b, -f, j, -n, -p, l, -h, d, -a, e, -i, m,}
    { p, -n, l, j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o,}
    en donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 88, 88, 87, 85, 81, 77, 73, 68, 62, 55, 48, 40, 33, 25, 17, 8}.
    El aparato de la reivindicación 3, en donde la primera matriz de núcleo de transformada tiene los mismos números que la segunda matriz de núcleo de transformada con los números en orden inverso.
    Un medio de almacenamiento legible por ordenador no transitorio que almacena instrucciones que hacen que al menos un procesador:
    reciba información referente a una secuencia de vídeo para codificación o decodificación; determine, para la codificación o decodificación de la secuencia de vídeo, si usar o no una primera matriz de núcleo de transformada que es de un primer tipo de tamaño o una segunda matriz de núcleo de transformada que es de un segundo tipo de tamaño, en donde la primera matriz de núcleo de transformada es una transformada sinusoidal discreta, DST, -7 y la segunda matriz de núcleo de transformada es una transformada cosinusoidal discreta, DCT, -8; y
    basándose en la determinación, transmita información que haga que la secuencia de vídeo se codifique o decodifique utilizando la primera matriz de núcleo de transformada determinada o la segunda matriz de núcleo de transformada determinada, en donde la primera matriz de núcleo de transformada es una DST-7 de 16 puntos y la segunda matriz de núcleo de transformada es una CDT-8 de 16 puntos,
    en donde la DST-7 de 16 puntos se construye utilizando la siguiente matriz:
    { a, b, c, d, e, f, g, h, I, j, k, l, m, n, o, p,}
    { c, f, i, 1, o, o, l, i, f, c, 0, -c, -f, -i, -l, -o,}
    { e, j, o, m, h, c, -b, -g, -l, -p, -k, -f, -a, d, i, n,}
    { g, n, l, e, -b, -i, -p, -j, -c, d, k, o, h, a, -f, -m,}
    { i, o, f, -c, -l, -l, -c, f, o, i, 0, -i, -o, -f, c, l,}
    { k, k, 0, -k, -k, 0, k, k, 0, -k, -k, 0, k, k, 0, -k,}
    { m, g, -f, -n, -a, l, h, -e, -o, -b, k, i, -d, -p, -c, j,} { o, c, -l, -f, i, i, -f, -l, c, o, 0, -o, -c, l, f, -i,} { p, -a, -o, b, n, -c, -m, d, l, -e, -k, f, j, -g, -i, h,}
    { n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, l, -g,}
    { l, -i, -c, o, -f, -f, o, -c, -i, l, 0, -l, i, c, -o, f,}
    { j, -m, c, g, -p, f, d, -n, i, a, -k, l, -b, -h, o, -e,}
    { h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -l, d,}
    { f, -l, o, -i, c, c, -i, o, -l, f, 0, -f, l, -o, i, -c,}
    { d, -h, l, -p, m, -i, e, -a, -c, g, -k, o, -n, j, -f, b,}
    { b, -d, f, -h, j, -l, n, -p, o, -m, k, -i, g, -e, c, -a,}
    en donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 8, 17, 25, 33, 40, 48, 55, 62, 68, 73, 77, 81, 85, 87, 88, 88},
    y en donde la CDT-8 de 16 puntos se construye utilizando la siguiente matriz:
    { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
    { b, e, h, k, n, 0, -n, -k, -h, -e, -b, -b, -e, -h, -k, -n, }
    { c, h, m, -p, -k, -f, -a, -e, -j, -o, n, i, d, b, g, l,}
    { d, k, -p, -i, -b, -f, -m, n, g, a, h, o, -l, -e, -c, -j,}
    { e, n, -k, -b, -h, 0, h, b, k, -n, -e, -e, -n, k, b, h,}
    { f, 0, -f, -f, 0, f, f, 0, -f, -f, 0, f, f, 0, -f, -f,}
    { g, -n, -a, -m, h, f, -o, -b, -l, i, e, -p, -c, -k, j, d,}
    { h, -k, -e, n, b, 0, -b, -n, e, k, -h, -h, k, e, -n, -b,}
    { i, -h, -j, g, k, -f, -l, e, m, -d, -n, c, o, -b, -p, a,}
    { j, -e, -o, a, -n, -f, i, k, -d, -p, b, -m, -g, h, l, -c,}
    { k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e,}
    { l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g,}
    { m, -e, d, -l, -n, f, -c, k, o, -g, b, j, -p, h, -a, i,}
    { n, -h, b, -e, k, 0, -k, e, -b, h, -n, -n, h, -b, e, -k,}
    { o, -k, g, -c, b, -f, j, -n, -p, l, -h, d, -a, e, -i, m,}
    { p, -n, l, j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o,}
    en donde {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = { 88, 88, 87, 85, 81, 77, 73, 68, 62, 55, 48, 40, 33, 25, 17, 8}.
    El medio de almacenamiento legible por ordenador no transitorio de la reivindicación 5, en donde la primera matriz de núcleo de transformada tiene los mismos números que la segunda matriz de núcleo de transformada con los números en orden inverso.
ES19892344T 2018-12-06 2019-11-27 Método y aparato para una transformación primaria mediante el uso de un núcleo de transformación de 8 bits Active ES2960693T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862704036P 2018-12-06 2018-12-06
US16/391,935 US11284112B2 (en) 2018-12-06 2019-04-23 Method and apparatus for a primary transform using an 8-bit transform core
PCT/US2019/063526 WO2020117584A1 (en) 2018-12-06 2019-11-27 Method and apparatus for a primary transform using an 8-bit transform core

Publications (1)

Publication Number Publication Date
ES2960693T3 true ES2960693T3 (es) 2024-03-06

Family

ID=70971329

Family Applications (2)

Application Number Title Priority Date Filing Date
ES23191287T Active ES3012407T3 (en) 2018-12-06 2019-11-27 Method and apparatus for a primary transform using an 8-bit transform core
ES19892344T Active ES2960693T3 (es) 2018-12-06 2019-11-27 Método y aparato para una transformación primaria mediante el uso de un núcleo de transformación de 8 bits

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES23191287T Active ES3012407T3 (en) 2018-12-06 2019-11-27 Method and apparatus for a primary transform using an 8-bit transform core

Country Status (7)

Country Link
US (3) US11284112B2 (es)
EP (3) EP4481591A3 (es)
JP (1) JP7127151B2 (es)
KR (1) KR102376833B1 (es)
CN (2) CN113316932B (es)
ES (2) ES3012407T3 (es)
WO (1) WO2020117584A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4553650A1 (en) 2017-03-20 2025-05-14 INTEL Corporation Systems, methods, and apparatuses for tile matrix multiplication and accumulation
BR112021005238A2 (pt) * 2018-09-20 2021-06-15 Nokia Technologies Oy um método e um aparelho para codificação e decodificação de material de imagem/vídeo digital
US11284112B2 (en) * 2018-12-06 2022-03-22 Tencent America LLC Method and apparatus for a primary transform using an 8-bit transform core
KR102860140B1 (ko) * 2019-04-23 2025-09-16 두인 비전 컴퍼니 리미티드 다중 변환 행렬의 선택 및 컨텍스트 모델링
JP7774831B2 (ja) 2019-11-21 2025-11-25 高梨乳業株式会社 発酵飲食品及びその製造方法
US11405647B2 (en) * 2020-02-18 2022-08-02 Tencent America LLC Primary transforms using 8-bit and 10-bit cores

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2305798B (en) 1995-09-28 1999-10-20 Sony Uk Ltd Spatial frequency-domain video signal processing
CN100473161C (zh) * 2005-09-09 2009-03-25 海信集团有限公司 基于avs的4×4离散余弦变换的快速并行装置及其方法
JP4626644B2 (ja) * 2007-11-26 2011-02-09 ソニー株式会社 符号化装置、符号化方法、プログラム、及び、撮像装置
US8885701B2 (en) * 2010-09-08 2014-11-11 Samsung Electronics Co., Ltd. Low complexity transform coding using adaptive DCT/DST for intra-prediction
US9167252B2 (en) 2010-12-01 2015-10-20 Texas Instruments Incorporated Quantization matrix compression in video coding
US9824066B2 (en) * 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US20130003856A1 (en) 2011-07-01 2013-01-03 Samsung Electronics Co. Ltd. Mode-dependent transforms for residual coding with low latency
US10284858B2 (en) * 2013-10-15 2019-05-07 Qualcomm Incorporated Support of multi-mode extraction for multi-layer video codecs
US10306229B2 (en) * 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US10491922B2 (en) * 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
US10887626B2 (en) * 2016-05-13 2021-01-05 Sharp Kabushiki Kaisha Image decoding device and image encoding device
US10157480B2 (en) * 2016-06-24 2018-12-18 Microsoft Technology Licensing, Llc Efficient decoding and rendering of inter-coded blocks in a graphics pipeline
US11095893B2 (en) * 2016-10-12 2021-08-17 Qualcomm Incorporated Primary transform and secondary transform in video coding
US10750181B2 (en) * 2017-05-11 2020-08-18 Mediatek Inc. Method and apparatus of adaptive multiple transforms for video coding
WO2020013514A1 (ko) * 2018-07-08 2020-01-16 엘지전자 주식회사 비디오 신호를 처리하기 위한 방법 및 장치
US11284112B2 (en) * 2018-12-06 2022-03-22 Tencent America LLC Method and apparatus for a primary transform using an 8-bit transform core

Also Published As

Publication number Publication date
CN113316932B (zh) 2022-07-29
US12341997B2 (en) 2025-06-24
US11825118B2 (en) 2023-11-21
EP3891979B1 (en) 2023-09-20
KR102376833B1 (ko) 2022-03-21
US20240073454A1 (en) 2024-02-29
EP4481591A2 (en) 2024-12-25
ES3012407T3 (en) 2025-04-09
EP4250739A3 (en) 2023-11-08
CN113316932A (zh) 2021-08-27
EP4481591A3 (en) 2025-03-05
JP2021520149A (ja) 2021-08-12
CN115550649A (zh) 2022-12-30
EP4250739A2 (en) 2023-09-27
EP3891979A1 (en) 2021-10-13
WO2020117584A1 (en) 2020-06-11
EP3891979A4 (en) 2022-01-19
CN115550649B (zh) 2025-08-26
JP7127151B2 (ja) 2022-08-29
KR20200128142A (ko) 2020-11-11
US11284112B2 (en) 2022-03-22
US20220141492A1 (en) 2022-05-05
EP4250739B1 (en) 2025-01-01
US20200186837A1 (en) 2020-06-11

Similar Documents

Publication Publication Date Title
AU2020252084B2 (en) Simplified signaling method for affine linear weighted intra prediction mode
ES2969907T3 (es) Método y aparato para codificación de video
KR102545299B1 (ko) 비디오 디코딩을 위한 방법 및 장치
KR102496457B1 (ko) 비디오 코딩에서 추가적인 중간 후보들을 갖는 병합 모드를 위한 방법 및 장치
ES2960693T3 (es) Método y aparato para una transformación primaria mediante el uso de un núcleo de transformación de 8 bits
ES3035918T3 (en) Method and apparatus for further improved context design for prediction mode and coded block flag (cbf)
US12206855B2 (en) Superresolution-based coding
US11706454B2 (en) One-level transform split
KR102637503B1 (ko) 비디오 시퀀스의 디코딩 또는 인코딩을 위한 인트라-인터 예측 모드를 제어하기 위한 방법 및 장치
US10701358B2 (en) Mode dependent primary and secondary transforms
ES3040589T3 (en) Method and apparatus for video coding
JP2025160331A (ja) 簡略化された最確モードリスト生成スキーム
KR102704930B1 (ko) 비디오 코딩을 위한 방법 및 장치
KR20210089756A (ko) 개선된 최고 확률 모드 리스트 생성 스킴
HK40054763A (en) Method and device for obtaining intra prediction mode, and electronic device