ES2681209T3 - Técnicas de aceleración para una cuantificación optimizada de tasa de distorsión - Google Patents

Técnicas de aceleración para una cuantificación optimizada de tasa de distorsión Download PDF

Info

Publication number
ES2681209T3
ES2681209T3 ES10763484.2T ES10763484T ES2681209T3 ES 2681209 T3 ES2681209 T3 ES 2681209T3 ES 10763484 T ES10763484 T ES 10763484T ES 2681209 T3 ES2681209 T3 ES 2681209T3
Authority
ES
Spain
Prior art keywords
quantification
coding
mode
modes
video
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
ES10763484.2T
Other languages
English (en)
Inventor
Yan Ye
Alexandros Tourapis
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Application granted granted Critical
Publication of ES2681209T3 publication Critical patent/ES2681209T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/103Selection of coding mode or of prediction mode
    • 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/124Quantisation
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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
    • 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/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)

Abstract

Un método de selección de un modo de codificación y de un parámetro de cuantificación para una unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende: (a) realizar un primer proceso de cuantificación (408) que tiene un primer tipo de técnica de cuantificación durante la evaluación de M modos de codificación posibles; (b) basándose en el primer proceso de cuantificación (408), seleccionar los M1 mejores modos de codificación de acuerdo con el criterio de codificación predefinido, en donde M > M1 >= 1; (c) después de que se hayan realizado las etapas (a) y (b) para cada uno de los M modos de codificación posibles, realizar un segundo proceso de cuantificación (430) que tiene un segundo tipo de técnica de cuantificación para los M1 mejores modos de codificación; y (d) seleccionar un mejor modo (432) de codificación basándose en los resultados del primer proceso de cuantificación (408) y el segundo proceso de cuantificación (430); el primer proceso de cuantificación (408) que tiene el primer tipo de técnica de cuantificación que es un tipo de cuantificación más rápida y el segundo proceso de cuantificación (430) que tiene el segundo tipo de técnica de cuantificación que es un tipo de cuantificación más lenta; el primer proceso de cuantificación (408) y el segundo proceso de cuantificación (430) que se repiten para cada parámetro de cuantificación.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Técnicas de aceleración para una cuantificación optimizada de tasa de distorsión Referencia cruzada a solicitudes relacionadas
La presente solicitud reivindica prioridad de la solicitud provisional estadounidense No. 61/241,130 presentada el 10 de septiembre de 2009, titulada “Técnicas de aceleración para cuantificación optimizada de tasa de distorsión”.
Campo
La presente divulgación se refiere a codificación de video digital, en particular a la cuantificación de señales de video. Más en particular, se refiere a técnicas de aceleración de la cuantificación optimizada de tasa de distorsión y de la decisión del modo de codificación.
Antecedentes
Los sistemas de codificación de video se han utilizado ampliamente para reducir el ancho de banda necesario para representar, almacenar y transmitir señales de video digitales. Los sistemas de codificación de video utilizados comúnmente incluyen sistemas de codificación de video basados en bloques, sistemas de codificación de video basados en regiones, y sistemas de codificación de video basados en tren de ondas entre otros.
El sistema de codificación de video basado en bloques es un tipo de sistema de codificación de video utilizado ampliamente, utilizado para comprimir señales de video digitales. Ejemplos de dichos sistemas de codificación incluyen estándares de codificación de video internacionales tales como el MPEG1/2/4, H.264 (véase la referencia 1), el estándar VC-1 (véase la referencia 2), sistema de codificación a partir de tecnologías On2 tales como VP-6, VP-7 y VP-8, el códec Dirac, y el códec de video Theora entre otros.
La figura 1 muestra un diagrama de bloques del sistema de codificación de video basado en bloques genérico. Una señal (102) de video de entrada es procesada bloque a bloque. Una unidad de bloque de video utilizada comúnmente consiste en NxM píxeles donde N=M=16 (también referida comúnmente como un “macrobloque”). Para cada bloque de video de entrada, se puede realizar una predicción (160) espacial y/o una predicción (162) temporal. La predicción espacial utiliza bloques vecinos ya codificados en el mismo fotograma/diapositiva de video para predecir el bloque de video actual. La predicción espacial es también comúnmente referida como una “predicción intra”. La predicción espacial puede ser realizada utilizando bloques o regiones de video de varios tamaños; por ejemplo, H.264/AVC permite tamaños de bloque de 4x4, 8x8, y 16x16 píxeles para la predicción espacial del componente de luminancia de la señal de video. Por otro lado, la predicción temporal utiliza información de fotogramas/diapositivas de video, normalmente vecinos, codificados previamente, para predecir el bloque de video actual. La predicción temporal también se refiere comúnmente como una “predicción inter” y/o una “predicción de movimiento”. Similar a la predicción espacial, la predicción temporal también se puede realizar en bloques o regiones de video de varios tamaños y formas; por ejemplo para el componente de luminancia, H.2647/AVC permite a una inter-predicción basada en bloques que utiliza tamaños de bloque tales como 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, y 4x4. La predicción de referencia múltiple y multi-hipótesis, en la que varias referencias están disponibles para la predicción, que además pueden combinarse linealmente o no linealmente, también se puede considerar.
Después de la predicción, el bloque de predicción es sustraído del bloque de video original en el sumador (116). El bloque residual es trasformado en la unidad (104) de transformación y cuantificado en la unidad (106) de cuantificación. Los coeficientes de transformación residual cuantificados son entonces enviados a la unidad (108) de codificación por entropía para ser codificados por entropía para reducir adicionalmente la tasa de bits. Se pueden aplicar diversos métodos o modos de codificación por entropía. Por ejemplo, H.264/AVC permite dos modos de codificación por entropía, el modo de codificación adaptativa según el contexto de longitud variable (CAVLC) y el modo de codificación aritmética según el contexto adaptativo binario (CABAC). Los coeficientes residuales codificados por entropía son entonces empaquetados para formar parte de un flujo de bits (120) de video de salida.
Los coeficientes de transformación cuantificados son cuantificados de forma inversa en una unidad (110) de cuantificación inversa, y transformados de forma inversa en una unidad (112) de transformación inversa para tener el bloque residual reconstruido. El bloque residual reconstruido es entonces añadido al bloque de video de predicción en el sumador (126) para formar un bloque de video reconstruido. El bloque de video reconstruido puede pasar a través de un filtrado adicional en la unidad (166) de filtro de bucle para reducir ciertas distorsiones de codificación. Por ejemplo, el filtro de desbloqueo de bucle como en H.264/AVC es un ejemplo de filtrado de bucle realizado en la unidad (166) que elimina y/o reduce distorsiones de bloqueo que pueden ser visualmente objetables. Después del filtrado de bucle, el bloque de video reconstruido es almacenado en el almacén (164) de imagen de referencia para utilizar como predicción de otros bloques de video en el mismo fotograma/diapositiva de video y/o en fotogramas/diapositivas de video futuras (en términos de orden de codificación).
El codificador mostrado en la figura 1 utiliza una decisión de modo y una unidad (180) de lógica de control decodificador general para elegir el mejor modo de codificación para el bloque de video actual, normalmente basándose en un cierto criterio predefinido, por ejemplo, el coste Lagrangiano de la tasa de dispersión
5
10
15
20
25
30
35
40
45
50
55
J(A) = D(r) + A-r
(1)
donde r es la tasa o número de bits necesitados para codificar el bloque de video, D es la distorsión (por ejemplo, SSE o suma del error al cuadrado o SAD suma de las diferencias absolutas, etcétera.) Entre el bloque de video reconstruido y el bloque de video original, y A es el factor lambda Lagrangiano (véase la referencia 3). La utilización conjunta utilizando otros parámetros múltiples más allá de la tasa y de la distorsión, tal como el consumo de energía, la complejidad de implementación, y/o el coste de implementación, también se pueden considerar. La tasa r puede ser la tasa real requerida para modificar pero también puede ser una estimación; la distorsión D se puede basar en una variedad de modelos de distorsión, algunos de los cuales también pueden tomar en cuenta el impacto en una percepción de calidad subjetiva y el sistema visual humano. Después de la decisión de modo, el modo de codificación (codificación inter o intra), la información de predicción (modo de predicción espacial y tipo de transformación si está intercodificado, partición del movimiento, predicción del movimiento compensado bi-predictivo o uni-predictivo si está intercodificado, etcétera) y la otra información del movimiento (índice de fotograma de referencia, vectores de movimiento, parámetros de cambio de iluminación, etcétera) son enviados a la unidad (108) de codificación por entropía para ser posteriormente comprimidos para reducir la tasa de bits. El modo codificado por entropía y la información del movimiento son entonces empaquetados para formar parte del flujo de bits (120) de video.
La transformación y la cuantificación combinadas pueden reducir la tasa de bits asociada con la codificación del bloque residual de predicción. La cuantificación de los coeficientes residuales transformados introduce una pérdida en la calidad de video. El grado de cuantificación es controlada mediante el valor de un parámetro de cuantificación (QP) y refleja directamente el grado de pérdida de calidad. Es decir, un valor de QP más alto está usualmente asociado con una cuantificación más agresiva y por consiguiente una peor calidad de video reconstruido; y un valor de QP más bajo significa una menor cuantificación agresiva y por lo tanto normalmente una mejor calidad de video reconstruido. Algunos sistemas de codificación de video (por ejemplo, el estándar de codificación de video H.264/AVC) permiten una variación de QP a nivel de macrobloque. Para dichos sistemas, dependiendo de las características del bloque de video de entrada, el codificador puede elegir aplicar más o menos cuantificación para obtener o bien una compresión más alta o bien una calidad visual mejor de la señal de video reconstruido. De forma específica, el valor de QP utilizado para cuantificar un bloque de video de entrada dado se puede elegir mediante el codificador con el fin de optimizar la función de coste tasa-distorsión dada en la ecuación (i) o cualquier otro criterio predefinido; y el valor de Qp óptimo seleccionado por el codificador puede ser señalado al decodificador como una parte del flujo de bits (120) de video.
Además, en la unidad (106) de cuantificación, durante la cuantificación de los coeficientes de transformación, el codificador puede aplicar un proceso de cuantificación más sofisticado (tal como el proceso de cuantificación basada en entramado utilizado en el sistema JPGE2000 (véanse las referencias 4 y 11)) en lugar de un proceso de cuantificación escalar simple para lograr un mejor rendimiento de codificación. Otras herramientas, también utilizadas a menudo como parte del proceso de cuantificación, incluyen matrices de cuantificación y desplazamientos de cuantificación. Una matriz de cuantificación dada especifica el factor de escala de cuantificación (grado de cuantificación) que el codificador y el decodificador desean aplicar a cada coeficiente en un bloque. Por ejemplo, para un bloque residual de 4x4, la matriz de cuantificación correspondiente podría ser una matriz de 4x4, con cada elemento de matriz especificando el factor de escala de cuantificación para cada coeficiente correspondiente en el bloque. Un ejemplo de matriz de cuantificación que puede ser utilizado en un bloque residual inter-codificado de 4x4 del componente de luminancia se da más abajo. Diferentes matrices de cuantificación se pueden utilizar para otros tipos de bloques residuales, tales como un bloque residual de croma de 4x4, un bloque residual de luma de 8x8, un bloque residual de croma de 8x8, etcétera, dado que las características de estos bloques residuales podrían ser diferentes. Los bloques codificados intra y codificados inter pueden también utilizar diferentes matrices de cuantificación. Adicionalmente a las matrices de cuantificación, los desplazamientos de cuantificación correspondientes a diferentes posiciones de coeficiente también se pueden considerar: pueden considerarse como sólo parte del proceso de codificación, y/o también se pueden considerar como parte del proceso de decodificación señalando dicha información al decodificador y tomando en cuenta estos parámetros durante la reconstrucción.
QUA NT _ INTER _ 4 x 4 _ LUMA
17
17
16 16
17
16 15 15
16
15 15 15
16
15 15 14
El algoritmo de cuantificación optimizada de tasa de distorsión (RDOQ) (véanse las referencias 5, 6 y 10) actualmente disponible en el software de referencia JM H.264/AVC (véase la referencia 7) y el nuevo software JMKTA (véase la referencia 8), utilizados en el desarrollo de la siguiente generación de estándares de codificación de video, incluyen dos componentes: 1) una variación de QP a nivel de macrobloque, y 2) una cuantificación basada en entramado de coeficientes residuales. Utilizando la variación de QP de macrobloque, el codificador trata de determinar el mejor valor de QP para cada macrobloque dado a un criterio optimizado de tasa de distorsión y señala la decisión utilizando el elemento de sintaxis de QP delta soportado en H.264/AVC. Además, el algoritmo RDOQ (véanse las referencias 5 y 6) también aplica una distorsión optimizada de tasa de distorsión durante la cuantificación de los coeficientes de trasformación residuales en la unidad (106) de cuantificación. De forma específica, para cada coeficiente no nulo que
5
10
15
20
25
30
35
40
45
50
tiene un valor v t 0, el codificador elige cuantificar el coeficiente dado a uno de más de tres valores posibles, techo(v), suelo(v), y 0, basándose en el proceso de decisión optimizado de tasa de distorsión.
La figura 2 muestra un diagrama de flujo para un modo de codificación de ejemplo y un proceso de decisión de QP del algoritmo RDOQ que puede utilizar el codificador de video en la decisión de modo y en la unidad (180) de lógica de control general. Un ejemplo de un criterio predefinido que puede utilizar el codificador para realizar la decisión de modo es el coste Lagrangiano de tasa distorsión en la ecuación (1).
De acuerdo con la figura 2, la unidad (180) de decisión de modo de codificador examina cada valor (202) de QP y cada modo (204) de codificación válido con el fin de minimizar el coste de tasa de distorsión de codificar el bloque de video actual. Para cada QP y para cada modo de codificación, se forman el bloque o bloques de predicción y el bloque o bloques residuales (206). El bloque residual es entonces transformado y cuantificado (208), y se calcula el coste de tasa resultante, distorsión, y el coste Lagrangiano asociados con el bloque de video actual (210). El modo de codificación actual y los parámetros de QP son marcados y almacenados (214) si confieren una reducción en el coste de tasa de dispersión; eventualmente, los parámetros de codificación óptimos (modo de codificación y QP) para el bloque de video actual son enviados a la unidad (108) de codificación por entropía para ser codificados por entropía y empaquetados en el flujo de bits (120) de video.
Tal y como se puede apreciar a partir de la figura 2, debido al bucle (202) de QP adicional utilizado en RDOQ, el proceso de codificación global se hace más largo. Si se utiliza la búsqueda por fuerza bruta (una búsqueda que intenta de forma exhaustiva todas las combinaciones posibles de modos, el vector de movimiento, la referencia, el QP y el ajuste de coeficiente, entre otros) para el modo de codificación óptimo y el QP óptimo, entonces el proceso de codificación puede hacerse significativamente más lento. Sobre todo, el tiempo de codificación para no utilizar y utilizar RDOQ pueden aproximarse mediante las ecuaciones (2) y (3), respectivamente:
jRDOQoff -fof-t (2)
TRDOOon ^NM (l + S) t (3)
donde t es el tiempo medio utilizado para evaluar un modo de codificación para cada bloque, N es el número de valores de QP ensayados, M es el número de modos de codificación, y 8 es el tiempo de codificación adicional incurrido mediante el uso del proceso de cuantificación basada en entramado con respecto al uso de un proceso de cuantificación escalar no basado en entramado en la caja (208).
Debería señalarse que se utiliza un número de aproximaciones y simplificaciones para derivar las ecuaciones (2) y (3). Por ejemplo, se asume que el tiempo necesario para evaluar cada modo de codificación es el mismo (en realidad algunos modos son más complejos de evaluar, y diferentes procesos de codificación por entropía también pueden tener un impacto muy diferente en el proceso de evaluación). También se asume que el tiempo necesario para realizar la cuantificación es el mismo independientemente del valor de QP (en realidad, QP más pequeños resultan en más coeficientes no nulos y por lo tanto un proceso de cuantificación más largo). También se asume que se utiliza un proceso de decisión de modo básico (por ejemplo, una decisión de modo exhaustiva). Teniendo en cuenta estas suposiciones y simplificaciones, el incremento en el tiempo de codificación debido a la utilización del algoritmo RDOQ es por lo tanto aproximadamente igual a:
■pRDOQtin j y RDOQoff __ jy q _j_
Asumiendo que se evalúan 5 valores de QP (N=5) para cada macrobloque y que el tiempo de sobrecarga debido a un proceso de cuantificación más sofisticado en la etapa (208) (por ejemplo, la cuantificación basada en entramado utilizada en RDOQ) es 8=20%, entonces el tiempo de codificación global aumenta debido a que el algoritmo RDOQ es aproximadamente 6 veces. Por lo tanto, aunque el algoritmo RDOQ pueda conferir ganancias de rendimiento decodificación significativas, el tiempo de codificación significativamente prolongado (si se utiliza un enfoque de búsqueda de fuerza bruta) puede hacerlo no utilizable para la mayoría de las aplicaciones de codificación de video.
Algunos algoritmos de aceleración para decisión de QP ya existen en el software JM y JMKTA (véanse las referencias 7 y 8). Ellos incluyen las siguientes técnicas:
De acuerdo con una primera técnica, los parámetros de predicción intra e inter (modos intra, predicción intra con respecto a bi-predictivo con respecto a una compensación de movimiento uni-predictiva, tamaño de partición de movimiento, índices de fotograma de referencia, vectores de movimiento, etcétera) pueden permanecer prácticamente los mismos independientemente del valor de QP. Por lo tanto, la búsqueda del movimiento y la búsqueda de la partición intra se pueden realizar sólo una vez durante los bucles de codificación de la figura 2. Esto reduce significativamente la complejidad debido a la predicción intra o estimación del movimiento en unidades tales como la unidad (160) de predicción espacial y la unidad (162) de predicción del movimiento.
De acuerdo con una segunda técnica, durante el bucle de QP (202), no todos los valores de QP necesitan ser evaluados. Por ejemplo, los valores de QP de bloques de video vecinos se pueden utilizar para predecir el valor de
QP para el bloque de video actual; y sólo valores de QP dentro de un rango estrecho del QP predicho basado en los QP vecinos se puede evaluar durante el bucle de QP (202) en la figura 2, véase también la referencia 9. Esto reduce el número de QP evaluados para cada bloque de video durante el bucle de QP (202), por tanto el tiempo de codificación.
5 Se señala que el modo de codificación óptimo elegido para el primer valor QP como mejor_modo_primero. De acuerdo con una tercera técnica, cuando se evalúan valores de QP posteriores, sólo se evalúa el mejor_modo_primero dentro del bucle (204) de modo de codificación, mientras que todos los otros modos de codificación no son permitidos (véase la referencia 7). De esta manera, se realiza una decisión de modo total sólo una vez para el primer valor de QP. Para todos los valores de QP posteriores, la predicción, la trasformación, la cuantificación y el cálculo de los costes de tasa 10 de producción son realizados sólo para un modo de codificación (mejor_modo_primero). Sin embargo, dado que el mejor modo de codificación global (mejor_modo_global) puede que no emerja en el primer valor de QP, se puede penalizar de forma significativa el rendimiento decodificación.
De acuerdo con una cuarta técnica, la finalización temprana del bucle de QP (202) se puede invocar cuando se cumplen ciertas condiciones. Por ejemplo, si el mejor modo de codificación encontrado por ahora contiene coeficientes 15 residuales no nulos (patrón_bloque_codificado = 0), entonces el bucle de QP puede finalizarse antes (véase la referencia 7).
Las simulaciones muestran que las técnicas de aceleración de RDOQ disponibles actualmente pueden no siempre ofrecer el mejor tiempo de codificación con respecto al compromiso de rendimiento decodificación. Por ejemplo, pueden ofrecer una reducción del tiempo de codificación insuficiente y/o pueden incurrir en demasiada penalización 20 del rendimiento decodificación. WO2009/080928 A1 da a conocer un método de codificación de paso dual basado en macrobloques.
Breve descripción de los dibujos
Los dibujos que acompañan, que son incorporados en y constituyen una parte de esta memoria descriptiva, ilustran uno o más modos de realización de la presente divulgación y, junto con la descripción detallada y los ejemplos, sirven 25 para explicar los principios e implementaciones de la divulgación.
La figura 1 muestra un diagrama de bloques de un sistema de codificación de video basado en bloques genérico.
La figura 2 muestra un diagrama de flujo de un modo de codificación y de un proceso de decisión de parámetro de cuantificación que puede utilizar un codificador de video en una unidad (180) lógica de la figura 1.
La figura 3 muestra un ejemplo de una máquina de estado de transición de modo para un codificador H.264/AVC.
30 La figura 4 muestra un diagrama de flujo donde se aplica una técnica de re-cuantificación de coeficiente.
La figura 5 muestra un ejemplo de una máquina de estado de transición de modo de un sub-macrobloque.
La figura 6 muestra un diagrama de flujo donde se aplica un bucle de parámetro de cuantificación (QP) reducido.
Las figuras 7-9 muestran máquinas de estado de transición de modo de ejemplo para I-, P- y B- fotogramas/diapositivas, respectivamente.
35 Las figuras 10(a) y 10(b) muestran una máquina de estado más restringida para regiones menos importantes y una máquina de estado más relajada para regiones más importantes, respectivamente.
Las figuras 11 y 12 muestran diagramas de flujo en los que se realiza un proceso de re-codificación.
Descripción de modos de realización de ejemplo
La invención es definida en el conjunto de reivindicaciones adjuntas.
40 Modos de realización de la presente divulgación se refieren a métodos y sistemas para una cuantificación optimizada de tasa de distorsión y un modo de codificación y una decisión de parámetro de cuantificación.
En un modo de realización, se proporciona un método de selección de un modo de codificación y un parámetro de cuantificación para una unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprenden: realizar un primer proceso de cuantificación durante una evaluación de 45 N modos de codificación posibles; basándose en el primer proceso de cuantificación, seleccionar M mejores modos de codificación de acuerdo con un criterio de codificación predefinido, en donde N>M=1; realizar un segundo proceso de cuantificación para los M mejores modos de codificación; y seleccionar un mejor modo de codificación basándose en los resultados del primer proceso de cuantificación y del segundo proceso de cuantificación.
De acuerdo con otro modo de realización, se proporciona un codificador para codificar una señal de video de acuerdo 50 con el método citado anteriormente.
5
10
15
20
25
30
35
40
45
50
55
De acuerdo con un modo de realización más, se proporciona un medio legible por ordenador que contiene un conjunto de instrucciones que provocan que un ordenador realice el método enumerado anteriormente.
De acuerdo con un modo de realización más, se proporciona el uso del método enumerado anteriormente para codificar una señal de video.
En un ejemplo, se proporciona un método de selección de un modo de codificación y de un parámetro de cuantificación para una unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende: seleccionar un parámetro de cuantificación inicial y un mejor modo de codificación para el parámetro de cuantificación inicial; evaluar modos de codificación para parámetros de cuantificación posteriores de acuerdo con una máquina de estado de transición de modo de codificación que comprende estados de modo de codificación y transiciones entre estados de modo de codificación, en donde cada estado de la máquina de estado de transición de modo de codificación corresponde a un modo de codificación y una puntuación de probabilidad de transición de modo asignada a la transición entre un par de estados de modo de codificación; y seleccionar un modo de codificación óptima y un parámetro de cuantificación óptimo entre los modos de codificación y los parámetros de cuantificación evaluados.
De acuerdo con un ejemplo adicional, se proporciona un método de selección de un modo de codificación y de un parámetro de cuantificación para una unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende: seleccionar un parámetro de cuantificación inicial y un mejor modo de codificación para el parámetro de cuantificación inicial; y evaluar modos de codificación para parámetros de cuantificación posteriores, en donde evaluar los modos de codificación para parámetros de cuantificación comprende seleccionar una transformación óptima entre una pluralidad de transformaciones para codificar la unidad de codificación de imagen.
De acuerdo con otro ejemplo, un método de selección de un modo de codificación entre una pluralidad de modos de codificación y un parámetro de cuantificación entre una pluralidad de parámetros de cuantificación para una unidad de codificación que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende: omitir la evaluación de un subconjunto de la pluralidad de parámetros de cuantificación, en donde la evaluación de un parámetro de cuantificación actual es omitida si el parámetro de cuantificación óptima entre los parámetros de cuantificación evaluados previamente está asociado con bloques residuales todos nulos y si el valor del parámetro de cuantificación actual es más grande que el valor del parámetro de cuantificación óptimo.
De acuerdo con otro ejemplo más, se proporciona un método de selección de un modo de codificación entre una pluralidad de modos de codificación y un parámetro de cuantificación entre una pluralidad de parámetros de cuantificación para una unidad de codificación que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende: omitir la evaluación de un subconjunto de la pluralidad de parámetros de cuantificación, en donde la evaluación de un conjunto complementario de parámetros de cuantificación se omite si, durante la evaluación de un conjunto actual de parámetros de cuantificación, se obtienen mejores valores monotónicamente de un criterio de codificación preseleccionado.
De acuerdo con un ejemplo adicional, se proporciona un método de selección de un modo de codificación y un parámetro de cuantificación para unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende: seleccionar un parámetro de cuantificación inicial y un mejor modo de codificación para el parámetro de cuantificación inicial; y evaluar modos de codificación para parámetros de cuantificación posteriores, en donde: evaluar modos de codificación para parámetros de cuantificación comprende realizar una búsqueda de movimiento, y se realiza una búsqueda de movimiento más comprensiva para el parámetro de cuantificación inicial y se realiza una búsqueda de movimiento limitada para los parámetros de cuantificación posteriores, en donde la búsqueda de movimiento limitada se basa en el resultado de la búsqueda de movimiento más comprensiva para el parámetro de cuantificación inicial.
Ejemplos de la presente divulgación están dirigidos a técnicas de aceleración de RDOQ que ofrecen un mejor tiempo de codificación con respecto a un compromiso de rendimiento.
1) Máquina de estado de transición de modo
Tal y como se describió anteriormente, permitiendo solo un modo de codificación (mejor_modo_primero) en bucles de QP posteriores reduce de forma significativa el tiempo de codificación para la ecuación (3) a la siguiente,
r*0001 *(M + AT-l)(l + <5)/ (1)
donde t es un tiempo medio utilizado para evaluar un modo de codificación para cada bloque, N es el número de valores de QP ensayados, M es el número de modos de codificación, y 8 es el tiempo de codificación adicional incurrido por el uso de un proceso de cuantificación más sofisticado tal como la cuantificación basada en entramado. La ecuación (4) también es una aproximación de tiempo de codificación basándose en ciertas suposiciones y simplificaciones.
5
10
15
20
25
30
35
40
45
50
55
Sin embargo, un perfilado estadístico muestra que hay una alta probabilidad de que el mejor modo de codificación global mejor_modo_globlal no emerja durante el primer bucle de QP; es decir, hay una probabilidad significativa de que el mejor_modo_primero (el mejor modo de codificación elegido en el primer valor de QP) y el mejor_modo_global (el mejor modo de codificación global elegido después de que se hayan evaluado todos los valores de QP) son diferentes. En otras palabras, la probabilidad de la “transición de modo” (definida como mejor_modo_primero y mejor_modo_global siendo diferentes) es significativa. De forma más interesante, la probabilidad de un evento de “modo de transición” varía de forma significativa dependiendo de cuál sea el mejor_modo_primero. Por ejemplo, las siguientes observaciones se han hecho en referencia a la transición de modo dentro de un códec H.264/AVC:
• transición de modo modos inter de codificación y modos intra de codificación se compara menos probablemente con la transición de modo entre modos inter y entre modos intra en sí mismos.
• Transición de modo desde modo intra de codificación a modo inter de codificación es más posible que una transición de modo desde modo inter de codificación a modo intra de codificación. Las simulaciones muestran que para algunas secuencias, la probabilidad de modo de transición desde modo intra a modo inter puede que no sea trivial (por encima de 5-10%).
• Probabilidad de transición de modo entre particiones de movimiento de 16x8 y 8x16 es baja.
• Probabilidad de transición de modo desde P_OMITIR y B_DIRECTO es baja; simulaciones muestran que por encima del 95% del tiempo, si mejor_modo_primero=0 (P_OMITIR o B_DIRECTO), entonces mejor_modo_global=0.
• Probabilidad de transición de modo a P_OMITIR y B_DIRECTO residual nula es casi inexistente. Es decir, si mejor_modo_primero no es P_OMITIR o residual B_DIRECTO nulo, entonces es muy posible que mejor_modo_global tampoco será B_OMITIR o residual B_DIRECTO nulo.
• Probabilidad de transición de modo a residual B_DIRECTO no nulo es no trivial.
• La probabilidad acumulada de mejor_modo_global que aparece durante los primeros 2 valores de QP es alta (por encima de un 90%).
• Probabilidad de modo de transición entre 4x4 intra y 16x16 intra es baja.
A la vista de las observaciones anteriores, de acuerdo con algunos ejemplos de la presente divulgación, una “máquina de estado de transición de modo” está siendo utilizada para elegir los modos de codificación que serán evaluados para valores de QP posteriores después de que se haya elegido el mejor_modo_primero.
De forma específica, un ejemplo de una máquina de estado de transición de modo para un codificador H.264/AVC se representa en la figura 3. Entre cada par de estados, se asigna una puntuación de probabilidad de transición de modo. Una puntuación más alta es dada a un par de modos (modoA, modoB) donde la transición de modoA a modoB es más probable; y una puntuación más baja se da a un par de modos (modoC, modoD) donde la transición de modo desde un modoC a un modoD es menos probable. Por ejemplo, a una auto-transición de un modo dado se le da la puntuación de probabilidad más alta de “10”. Como otro ejemplo, a una transición de modo desde modos inter a modos intra se le da la puntuación de “1”, mientras que aún modo de transición desde modos intra a modos inter se le da una puntuación más alta de “2”.
Además, eventos de modo de transición con una probabilidad incluso más baja se pueden deshabilitar juntos. Por ejemplo, tal y como se muestra en la figura 3, no hay flechas que conecten 16x8 inter y 8x16 inter, lo que significa que la máquina de estado de transición de modo de la figura 3 dicta que el modo 16x8 inter no puede convertirse en 8x16 inter, o viceversa.
Un codificador de video más “inteligente” puede incluir una etapa de análisis previo que analiza las características de señales de video entrantes (véase la referencia 9). Las estadísticas recogidas a partir del proceso de análisis previo se pueden utilizar para ajustar de forma más exacta la máquina de estado de transición de modo. En particular, adicionalmente/en lugar de las observaciones generales referentes a los eventos de transición de modo listadas más arriba, podría ser ventajoso utilizar una comprensión específica del video entrante cuando se asignan las puntuaciones de probabilidad a los eventos de transición de modo. Por ejemplo, el proceso de análisis previo puede determinar que una cierta región de la señal de video es más “importante” ya que proporciona una información de predicción útil para la codificación de otros bloques del mismo fotograma y/u otros fotogramas. Por ejemplo, una región estática con una textura fina puede ser considerada importante ya que, si esta región en el primer fotograma es codificada con una calidad alta, entonces la región correspondiente en todos los fotogramas posteriores puede ser capaz de heredar su alta calidad. De acuerdo con los descubrimientos a partir de la etapa de análisis previo, se pueden utilizar diferentes máquinas de estado de modo de transición para codificar esta región es más o menos importantes. A partir de la región de ejemplo mencionada anteriormente, mientras se está aplicando el RDOQ, se puede utilizar una máquina de estado de la afición de modo relajado para proporcionar una calidad de codificación más alta dentro de esta región (con un coste de un aumento de complejidad). Un ejemplo de dicho escenario es dado en las figuras 10(a) y 10(b).
La figura 10(a) muestra una máquina de estado de transición de modo más restringida que contiene un menor número de elementos de transición de modo. Por ejemplo, la figura 10(a) no permite una transición de modo entre modos inter e intra, ni permite una transición de modo entre particiones de movimiento más grandes a particiones de movimiento más pequeñas para modos inter. La máquina de estado en la figura 10(a) puede ser más adecuada para la codificación de regiones menos importantes.
5
10
15
20
25
30
35
40
45
50
55
60
La figura 10(b) muestra una máquina de estado de transición más relajado que contiene un mayor número de eventos de transición de modo; dicha máquina de estado puede ser más adecuada para codificar las regiones más importantes ya que proporciona una mejor compresión y una mejor calidad de codificación para la región dada (con el coste de una complejidad de codificación más alta).
A medida que más transiciones de modo son deshabilitadas de acuerdo con la probabilidad de los eventos de transición de modo, se puede lograr una reducción en el tiempo de codificación (con una pérdida de rendimiento de codificación incremental). De esta manera, la “máquina de estado de transición de modo” proporciona una base muy flexible para ajustar de forma rotativa el compromiso entre el rendimiento de codificación y el tiempo de codificación. Para cada aplicación de video, de acuerdo con su provisión de tiempo de codificación, se puede aplicar un cierto umbral de probabilidad; y sólo se permiten eventos de transición de modo que tienen puntuaciones de probabilidad por encima del umbral dado. Es decir, se puede utilizar un umbral más bajo para una aplicación que no sea en tiempo real y/o que no limita el consumo de energía; aunque se puede dar un umbral más alto a una aplicación en tiempo real y/o limitada en energía (por ejemplo, una codificación de video móvil).
El uso de una máquina de estado de transición de modo puede incluir además los siguientes parámetros:
• Discriminación de tipo de fotograma/diapositiva (por ejemplo, I-fotograma/diapositiva, P-fotograma/diapositiva, o B-fotograma/diapositiva): algunos eventos de transición de modos se pueden permitir para un tipo de fotograma/diapositiva pero no para otro tipo de programa/diapositiva. Por ejemplo, un I-fotograma/diapositiva solo permite bloques intra codificados. Por lo tanto, la máquina de estado de transición de modo es mucho más simple para un I-fotograma/diapositiva; tal y como se muestra en la figura 3, sólo la porción que se asienta en el área sombreada corresponde a la máquina de estado de transición de modo de un I-fotograma/diapositiva. También, la línea de puntos en la figura 3 indica eventos de transición de modo que solo existen en un B-fotograma/diapositiva o en un P- fotograma/diapositiva; esto es debido a que, para un P-fotograma/diapositiva, estas líneas de puntos representan una transición de modo desde otros modos inter a un modo P-OMITIR que es un evento prácticamente inexistente. Para una claridad mejorada, las máquinas de estado de transición de modo de ejemplo para I-, P- o B-fotograma/diapositiva también se dan de forma separada en la figura 7, 8 y 9.
• Si se utiliza el fotograma/diapositiva como referencia para codificar otros fotogramas (por ejemplo, si el valor del elemento de sintaxis nal_referencia_idc en H.264/MPEG-4 AVC no es nulo): una máquina de estado de transición de modo más relajado (que permite más eventos de transición de modo) se puede utilizar para bloques de video que pertenecen a una imagen de referencia mientras que una máquina de estado de transición de modo más restringida (que permite menos eventos de transición de modo) se puede utilizar para bloques de video que pertenecen a una imagen no de referencia. De forma alternativa o de forma adicional, un umbral de probabilidad más alto se puede utilizar para una imagen no de referencia mientras que un umbral más bajo se puede utilizar para una imagen de referencia.
• Si un bloque o un grupo de bloques es importante para la predicción de otros bloques de video en los fotogramas actuales y/o futuros. Tal y como se mencionó anteriormente, algunos codificadores de video pueden incluir un proceso de análisis previo. Las estadísticas recogidas durante la etapa de análisis previo se pueden utilizar para determinar la importancia del bloque de video o grupo de bloques de video. Para el bloque de video considerado más importante para la codificación de otros bloques de video, se puede utilizar una máquina de estado de transición de modo más relajada; también se puede aplicar un umbral de probabilidad más bajo cuando se codifican los bloques de video más importantes.
De acuerdo con algunos ejemplos de la presente divulgación, en lugar de/adicionalmente ajustar el umbral de probabilidad para controlar el número de eventos de transición de modo permitidos, la máquina de estado de transición de modo en sí misma puede también ajustarse de forma dinámica durante la codificación. Por ejemplo, a medida que se han evaluado más valores de QP, el número de eventos de transición de modo permitidos se puede reducir estableciendo más puntuaciones de probabilidad en la máquina de estado acero o por debajo del umbral de probabilidad. De forma específica, la máquina de estado de transición de modo se puede ajustar de manera que sólo se permite una auto-transición después de un cierto punto; es decir, sólo el mejor modo encontrado hasta ahora será evaluado adicionalmente para los valores de QP restantes. Dicha decisión (de permitir sólo una auto-transición) puede hacerse después de que se haya evaluado un número dado de QP (por ejemplo 3 QP); y/o después de que se haya “establecido” el mejor modo de codificación (el mejor modo de codificación no cambia nunca más). Además, la máquina de estado de transición de modo puede ser ajustada de forma dinámica dependiendo de los bloques vecinos ya codificados. Por ejemplo, si los bloques vecinos son más “volátiles” (toma más tiempo establecer el modo de codificación óptima), entonces la máquina de estado de transición de modo para el bloque actual puede “relajarse” para permitir más eventos de transición de modo.
De forma más general, la similaridad de los vecinos (por ejemplo, bloque izquierdo, bloque superior, bloque superior izquierdo, lo que superior derecho, y/o vecinos temporales) con el bloque actual también se pueden tomar en cuenta durante la decisión de QP y/o modo. La utilidad de este enfoque mejora de forma adicional si se conoce que los bloques son similares. El conocimiento de la similaridad de bloques se puede obtener, por ejemplo, por medio de técnicas de segmentación tales como variación y/o computación Dc.
La aplicación de las técnicas del párrafo anterior puede acelerar el proceso de múltiples maneras. Por ejemplo, si todos los vecinos son similares al bloque actual y se seleccionó un cierto QP para todos estos vecinos, entonces ese
5
10
15
20
25
30
35
40
45
50
55
valor de QP puede utilizarse como el punto de partida del bloque actual. Si el rendimiento de la tasa de distorsión del bloque actual es similar a los vecinos, se puede o bien terminar o realizar un ensayo simple (posiblemente con un proceso de codificación de una complejidad menor) si cualquiera de los otros modos pudiesen proporcionar cualquier ayuda. Si, por ejemplo, el coste Lagrangiano del bloque actual es más pequeño o lo suficientemente próximo a los de sus vecinos, no hay necesidad de realizar cálculos adicionales, asumiendo sólo la similaridad entre bloques. La probabilidad de optimización de dicha elección podría ser alta. Si, sin embargo, hay diferencias entre los valores de QP seleccionados de bloques vecinos, una posible solución podría ser comprobar sólo los valores de QP utilizados en bloques vecinos, que se considera que tienen la similaridad más alta con el bloque actual, o examinar de forma alternativa sólo estos valores de QP dentro de un rango cerrado alrededor de ellos. Mientras se codifican, podría ser posible relacionar el proceso de codificación del bloque actual con cómo fueron codificados los vecinos y adaptar la(s) máquina(s) de estado de nuevo dada dicha información.
El experto en la técnica entenderá que las máquinas de estado de transición de modo mostradas en las figuras 3, 7, 8 y 9 son meramente de ejemplo. Se pueden aplicar muchas modificaciones diferentes dentro del alcance de la divulgación. Por ejemplo, las máquinas de estado de transición de modo mostradas en las figuras 3, 7, 8 y 9 también se pueden combinar con métodos de “decisión de modo rápido” que sólo evalúan un subconjunto limitado de modos de codificación, por tanto acelerando adicionalmente el proceso de QP y de decisión de modo. También se pueden hacer ciertas extensiones y modificaciones directas a la máquina de estado de transición de modo dada para aplicar la máquina de estado a otro sistema de codificación y estándares de codificación tales como el estándar VC-1 (véase la referencia 2). Dichas extensiones y modificaciones también deberían considerarse que caen dentro del alcance de esta divulgación.
Además, las máquinas de estado de transición de modo de ejemplo en las figuras 3, 7, 8 y 9 todas ellas utilizan el tipo de macrobloque definido en H.264/AVC como modos de codificación. Una definición más precisa de modos de codificación se puede utilizar en su lugar. Por ejemplo, la máquina de estado de transición de modo puede especificar la probabilidad de transmisión de dos modos 16x16 inter, uno uni-predictivo y el otro bi-predictivo, considerándolos como dos modos distintos. Otro conjunto extendido o reducido de modos de codificación también se puede definir y utilizar en la máquina de estado de transición de modo.
2) Coeficiente de re-cuantificación después de la decisión de modo.
Como se muestra en la figura 2, la transformación y cuantificación (208) son realizadas dentro del bucle (204) de modo. Cuando el lugar de un proceso de cuantificación escalar simple, se utiliza un proceso de cuantificación basada en entramado en la caja (208), se puede incurrir en una sobrecarga de tiempo 8 de codificación adicional cada vez que se aplica la cuantificación del tiempo. Se ha observado que, independientemente del proceso de cuantificación utilizado, el resultado de la decisión de modo (mejor modo elegido) a menudo permanece igual. Por lo tanto, se puede utilizar un proceso de cuantificación más barato y más rápido durante la decisión de modo entre M(M>1) modos de codificación posibles. Entonces, después de que se ha completado la decisión de modo y sea elegido el mejor modo (o los Mi mejores modos, M>Mi>1), los coeficientes para el mejor modo o los M mejores modos de codificación se pueden re-cuantificar utilizando un proceso de cuantificación más sofisticado (por ejemplo, una cuantificación basada en entramado) para mejorar adicionalmente el rendimiento de la tasa de distorsión o para optimizar adicionalmente cualquier otro criterio de codificación predefinido, tal como un criterio de codificación que considera la optimización conjunta de no sólo la tasa y la distorsión, sino también del consumo de energía, la complejidad de implementación, y/o el coste de implementación.
La figura 4 muestra un diagrama de flujo cuando se aplica una técnica de re-cuantificación de coeficiente. En la figura 4, durante la decisión de modo, se aplica un proceso de cuantificación escalar simple en la etapa (408). Después, al final del bucle de decisión de modo en la etapa (430), el proceso de cuantificación basada en entramado (o cualquier otro proceso de cuantificación que es más sofisticado que el proceso de cuantificación anterior) se aplica para re- cuantificar la predicción residual del modo de codificación último elegido para reducir adicionalmente el coste de tasa de distorsión o para optimizar cualquier otro criterio de codificación predefinido. En una alternativa, en lugar re- cuantificar sólo el residual de tradición del modo de codificación óptima, los residuales de predicción de los Mi mejores modos (Mi > 1) elegidos después de la decisión de modo también se pueden considerar. El que resulta en el mejor rendimiento después del proceso de re-cuantificación se selecciona como el modo óptimo final.
Asumiendo que se aplica el proceso de re-cuantificación a sólo el mejor modo después de la decisión de modo (Mi = 1), el tiempo de codificación para el proceso en la figura 4 puede ser aproximadamente como sigue:
TRDOQ2»NM-(l+S/M)t»NMt (2)
donde t es el tiempo medio utilizado para evaluar un modo de codificación para cada bloque, N es el número de valores de QP ensayados, M es el número de modos de codificación, y 8 es el tiempo de codificación adicional incurrido por el uso del proceso de cuantificación basada en entramado con respecto al uso de un proceso de cuantificación escalar sin entramado. Asumiendo 8/M << 1 (por ejemplo, 8=20%, M=8), la ecuación (5) muestra que la sobrecarga debido a la re-cuantificación del coeficiente puede ser despreciable.
5
10
15
20
25
30
35
40
45
50
55
Debería señalarse que el uso de una “cuantificación escalar simple” en (408) es meramente a modo de ejemplo; también se pueden utilizar otros procesos de cuantificación más rápidos (por ejemplo, una cuantificación que utilice un redondeado adaptativo) o una combinación de estos procesos de cuantificación diferentes. Tal y como se explicó anteriormente en esta divulgación, algún codificador puede elegir utilizar matrices de cuantificación en lugar de utilizar una cuantificación escalar simple con factores de escalado fijos para todos los coeficientes. Debería señalarse que las técnicas descritas en la presente divulgación aplican independientemente de si se utilizan matrices de cuantificación o no.
Debería señalarse además que, aunque en la figura 4 se representa el bloque (430) de re-cuantificación dentro del bucle de QP (402), el proceso de re-cuantificación también puede suceder en otros lugares durante el proceso de QP y de decisión de modo. Por ejemplo, podría realizarse fuera del bucle de QP (402). Se ha encontrado que la disposición en la figura 4 (colocación del bloque de re-cuantificación (430) dentro del bucle de QP (402)) logra un buen tiempo de codificación con respecto al compromiso del rendimiento de codificación, principalmente debido a que el proceso de cuantificación a menudo influye en el valor de QP óptimo elegido. Moviendo el bloque de re-cuantificación (430) fuera del bucle de QP (402) puede resultar en una aceleración adicional, sin embargo también puede incurrirse en una pérdida de rendimiento decodificación significativa. Por lo tanto, la figura 4 debería tomarse como ejemplo únicamente. Se pueden elegir diferentes modificadores de video para realizar el proceso de re-cuantificación de forma diferente para lograr la complejidad de codificación deseada y los requerimientos de rendimiento decodificación. Además, el proceso de re-cuantificación se puede aplicar de forma diferente para diferentes bloques de video, diferentes tipos de diapositiva de video, y/o diferentes regiones de video. Por ejemplo, para regiones de video y/o diapositivas de video más importantes (por ejemplo, diapositivas de video que serán utilizadas como una referencia futura), el proceso de re-cuantificación se puede aplicar de forma más frecuente; para regiones de video y/o diapositivas de video menos importantes (por ejemplo, diapositivas de video que no se utilizarán como una referencia futura), el proceso de re- cuantificación se puede aplicar menos frecuentemente o incluso nunca.
Otro punto adicional a señalar es que, debido a que el proceso de cuantificación basada en entramado utilizado en la etapa del re-cuantificación (430) puede que no sea óptimo (debido a las aproximaciones y simplificaciones utilizadas por el propio algoritmo) puede ser beneficioso para el codificador comparar el coste de tasa de distorsión del residual re-cuantificado y el del residual previo antes de la re-cuantificación y elegir el residual que da un coste de tasa de distorsión más pequeño como el residual final (etapa (432) en la figura 4).
Un punto adicional a señalar es que, en lugar de simplemente re-cuantificar la predicción, se podría llevar a cabo la re-codificación del bloque de video si el modo de codificación último elegido después de la etapa (416) es 4x4 intra o 8x8 intra. Esto es debido a que la re-cuantificación de un bloque 4x4/8x8 cambia el bloque residual reconstruido, lo cual a su vez cambia el bloque reconstruido, lo cual a su vez cambia los píxeles de predicción utilizados para predecir los bloques 4x4/8x8 vecinos.
La figura 11 utiliza un macrobloque 4x4 intra como un ejemplo para ilustrar el proceso de re-codificación de acuerdo con el ejemplo anterior. En lugar de simplemente re-cuantificar el residual de predicción en la etapa (430), este diagrama de flujo se podría realizar en lugar de la etapa (430) si el modo de codificación último elegido es 4x4 intra.
De forma alternativa, un proceso de re-codificación más complejo como el mostrado en la figura 12 se puede realizar en la etapa (430). En comparación al diagrama de flujo en la figura 11, este proceso de re-codificación más complejo también incluye evaluar los modos de predicción óptima para cada uno de los bloques 4x4 y el macrobloque 4x4 intra. Este último proceso de re-codificación puede ser beneficioso dado que los cambios en los píxeles de predicción a partir de los bloques regenerados pueden resultar en cambios en los modos de predicción óptima. La sobrecarga de tiempo de codificación adicional debido al proceso en la figura 12 es relativamente pequeña ya que los macrobloques 4x4 intra y 8x8 intra normalmente constituyen sólo una pequeña porción de los macrobloques en los P- y B- fotogramas/diapositivas. Además, el codificador puede utilizar los modos de predicción óptimos previamente elegidos después de la etapa (416) para reducir el número de modos de predicción evaluados para cada bloque en la figura
12. Por ejemplo, solo modos que son similares a los modos de predicción óptima elegidos después de la etapa (416) pueden ser evaluados en el bucle (1204) de modo de predicción en el proceso de re-codificación.
Señalar que las figuras 11 y 12 ambas utilizan macrobloques 4x4 intra como un ejemplo; pero se puede realizar una re-codificación del macrobloque 8x8 intra de la misma manera. De forma alternativa, un tipo de macrobloque (por ejemplo, 4x4 intra) puede utilizar un proceso de re-codificación más simple en la figura 11, y el otro tipo de macrobloque (por ejemplo, 8x8 intra) puede utilizar el proceso de re-codificación más complejo en la figura 12.
Debido a la relación próxima entre el valor de QP y el proceso de cuantificación basada en entramado, que ya ha sido aprendido durante el proceso de cuantificación basada en entramado por uno o más valores de QP previos, se puede utilizar para acelerar el proceso de cuantificación basada en entramado para el valor de QP actual. Por ejemplo, si el proceso de cuantificación basada en entramado para deltaQP=1 establece todos los coeficientes acero después del n-ésimo coeficiente, entonces el proceso de cuantificación basada en entramado para deltaQP=2 puede aplicarse sólo a los primeros (n-1) coeficientes; y todos los coeficientes residuales restantes pueden establecerse acero. Si más de un valor de QP ha sido evaluado, entonces el resultado del proceso de cuantificación para estos valores de QP se puede utilizar conjuntamente para ayudar a la aceleración del proceso de cuantificación para el QP actual.
5
10
15
20
25
30
35
40
45
50
55
Se pueden considerar valores que han sido ya cuantificados acero dentro de los primeros (n-1) coeficientes y también la probabilidad de algunos de los primeros (n-1) coeficientes en ese primer paso para cambiar acero. Por ejemplo, si el coeficiente k tiene el valor v, y es cuantificado a techo(v) = 1 para un QP dado, entonces hay una alta probabilidad de que el coeficiente k será cuantificado a 0 para cualquiera de los valores QP más grandes que el QP dado. Por lo tanto, para cualquier QP más grande que el QP dado, el valor cuantificado del coeficiente k puede establecerse directamente a 0 para acelerar el proceso de cuantificación.
De acuerdo con un ejemplo adicional de la presente divulgación, se puede utilizar una computación parcial en algunos casos. Si el coste Lagrangiano parcial después de la comprobación de N subparticiones es ya más grande o se espera que va a ser más grande (después de un cierto análisis) que el coste Lagrangiano total en un QP diferente, entonces no hay razón para proceder con la re-cuantificación.
3) Máquina de estado de transición de modo de sub-macrobloque
Para los bloques inter-codificados, H.264/AVC permite una descomposición de árbol cuádruple como un bloque de video 16x16 de entrada. Es decir, cada bloque 16x16 (un macrobloque) puede ser dividido en cuatro bloques 8x8 (sub- macrobloques o sub-MBs) con la posibilidad de dividir adicionalmente cada sub-macrobloque de tamaño 8x8 a bloques de 4x4. Por lo tanto, de forma similar al uso de la máquina de estado de transición de modo tal y como se remarcó en la sección 1 anteriormente, una máquina de estado de transición de modo de sub-MB puede implementarse para reducir el tiempo de codificación empleado en la decisión de modo de sub-MB.
La figura 5 da un ejemplo de una máquina de estado de transición de modo sub-MB. En la figura 5, la transición de modo entre 4x8 inter y 8x4 inter es deshabilitada. También las líneas de puntos en la figura 5 representan eventos de transición de modo de sub-MB que son permitidos sólo para los B-fotogramas/diapositivas. De forma alternativa, se puede utilizar también la mayoría de la máquina de estado de transición de modo de sub-MB restringida. La mayoría de la máquina de estado de transición de modo de sub-MB restringida permite sólo una auto-transición; es decir, durante la decisión de modo de sub-MB, sólo se permite el mejor_ modo_sub-MB-primero para valores de QP posteriores (esto es similar a permitir sólo el mejor_modo_primero para valores de QP posteriores).
4) Decisión de tamaño de transformación
En el perfil alto de H.264/MPEG-4 AVC, la transformación de número entero 8x8 y la transformación de número entero 4x4 son ambas soportadas. Ambas de estas transformaciones son también soportadas en otros perfiles “profesionales” en este estándar tal como Alto 10, Alto 4:2;2, y Alto Predictivo 4:4:4. El tamaño de transformación óptimo utilizado para codificar el bloque de video actual se puede seleccionar optimizando un criterio de codificación predefinido tal como minimizar el coste Lagrangiano de tasa de distorsión. El tamaño de trasformación óptimos seleccionado es entonces codificado por entropía y señalado como una parte del flujo de bits (120) de video de salida mostrado en la figura 1. Las simulaciones muestran que el tamaño de trasformación óptima no varía de forma importante durante el bucle de QP (202) de la figura 2. Por lo tanto, el tamaño de transformación óptimo seleccionado en el primer valor de QP, mejor_tamaño_transformado_primero, se puede utilizar para todos los valores de QP posteriores, evitando el tiempo de codificación necesario para seleccionar el tamaño de transformación óptimo de nuevo.
Como un ejemplo adicional de la presente divulgación, el tamaño de trasformación óptimo puede que no se decida y que se mantenga inmediatamente después de que el primer valor de QP haya sido evaluado; en su lugar, ambas transformaciones pueden aun así ser evaluadas durante unos pocos valores de QP adicionales, y se puede únicamente seleccionar y mantener la transformación óptima después de que esos valores de QP adicionales hayan sido evaluados. Como un ejemplo, asumiendo que se han evaluado un total de 5 valores de QP, la transformación óptima se puede decidir después del tercer valor de QP y mantener para los dos últimos valores de QP, en lugar de ser decidida después del primer valor de QP y mantenida para los cuatro valores de QP después del primero.
Además, esta técnica de aceleración no está limitada a sistemas de codificación de video que soportan dos transformaciones; es aplicable a cualquier sistema de codificación de video que soporta trasformaciones múltiples. Por ejemplo, una próxima generación de códec de video potencial que está siendo desarrollada utilizando el software JMKTa (véase la referencia 8), soporta la transformación 16x16, la transformación 16x8 y la transformación 8x16, adicionalmente a las transformaciones 4x4 y 8x8. La técnica de aceleración se puede extender fácilmente y utilizar para elegir cualquiera de estas transformaciones. En general, si un sistema de codificación de video soporta N transformadas, las N1 mejores transformadas pueden seleccionarse después de que se evalúe el primer valor de QP (N1 < N), y las N2 mejores transformadas se pueden seleccionar después de que se evalúe el segundo valor de QP (N2< N1), etcétera, hasta que sólo se seleccione la mejor transformación para un valor de QP y se mantenga para todos los valores de QP posteriores. A medida que más transformada son soportadas por un sistema de codificación de video (el valor de N se hace más grande), los ahorros en el tiempo de codificación debido a esta técnica de aceleración se hacen más significativos.
Señalar que puede haber también una relación cercana entre el proceso de cuantificación de la transformación 4x4 y el de la transformación 8x8 (o cualquier otra transformación). Por ejemplo, para un modo de codificación dado, si los n últimos coeficientes son cuantificados acero en un tamaño de transformación (por ejemplo, una transformación 8x8), entonces los m últimos coeficientes son posiblemente cuantificados acero en el otro tamaño de transformación (por
ejemplo, una transformación 4x4). Esta correlación entre los procesos de cuantificación de diferentes tamaños de transformación también se puede utilizar para acelerar el proceso de cuantificación y el proceso de decisión para el tamaño de transformación activo. Por ejemplo, si los n últimos coeficientes para la transformación 8x8 se establecen en cero después de la cuantificación, entonces, durante la cuantificación para la transformación 4x4, sólo los primeros 5 (16-m) coeficientes puede ser considerados (los m últimos coeficientes para la transformación 4x4 son
automáticamente establecidos a 0) por lo tanto ahorrando el tiempo empleado en la cuantificación para la transformación 4x4. En un ejemplo, m=n/4.
Se podrían hacer consideraciones similares cuando se codifica el macrobloque utilizando una codificación de campo de marco adaptativo (MBAFF). Por ejemplo, si los n últimos coeficientes son cuantificados acero en el modo de marco, 10 y si los n últimos coeficientes contienen coeficientes no nulos en el modo de campo (para el campo superior/inferior), entonces el codificador puede finalizar una evaluación adicional del modo de campo, ya que la probabilidad de que el modo de marco ofrezca un mejor rendimiento de tasa de distorsión es alta. Una suposición similar se podría hacer si la codificación de macrobloque de campo se realiza primero, seguida por una codificación de macrobloque de marco. Estas relaciones se fortalecen si ambos campos superior e inferior tienen características similares y/o si tienen 15 similaridad es en términos de la presencia de coeficientes nulos en su residual. Además, las características de los residuales después de la estimación de movimiento para el modo de marco y el modo de campo también se pueden aprovechar. Por ejemplo, si, después de la estimación de movimiento, la distorsión del bloque de campo superior, la distorsión del bloque de campo inferior, y la distorsión del macrobloque de marco son todas ellas muy similares, entonces la probabilidad de que la codificación del modo de marco ofrezca un mejor rendimiento de tasa de distorsión 20 es alta; y por tanto se puede omitir la consideración para la codificación de modo de campo.
5) Bucle de QP reducido
La finalización temprana del bucle de QP y la omisión de la evaluación de algunos valores de QP ahorra tiempo de codificación reduciendo el valor de N (el número de valores de QP evaluados) en las ecuaciones (3) hasta (5).
La figura 6 muestra el flujo de codificación modificado con estos mecanismos de aceleración (etapas (604) y (618)). 25 Para omitir el valor de QP actual (etapa (604)), se puede utilizar el siguiente criterio:
• si el mejor valor de QP encontrado hasta ahora tiene ya un residual nulo (patrón_bloque_codificado=0), por ejemplo, se asocia con todos los bloques residuales nulos, y si el valor de QP actual es más grande que el mejor valor de QP, entonces se omite el valor QP de actual.
Para una finalización temprana (etapa (618)), se puede utilizar el siguiente criterio:
30 • si el coste de tasa de distorsión (costerd) de todos los valores de delta QP positivos (o negativos) disminuyen
monotónicamente, entonces el bucle de QP se puede finalizar de forma temprana sin examinar los valores de delta QP negativos (o positivos) restantes. Por ejemplo, si se ensayan en total 5 valores de delta QP (0, 1, 2, -1, -2), y si costerd(deltaQP=0) > costerd(deltaQP=1) > costerd(deltaQP=2), entonces puede que no sea necesario examinar deltaQP=-1 ni deltaQP=-2. De forma más general, la evaluación de un conjunto complementario de parámetros de 35 cuantificación se puede omitir si, durante la evaluación de un conjunto actual de parámetros de cuantificación, se obtienen valores monotónicamente mejores de un criterio decodificación preseleccionado.
Cabe señalar que también puede ser útil ajustar el valor de QP de partida. El primer QP que el bucle de QP evalúa puede influir en el resultado final, especialmente cuando se utilizan técnicas de terminación temprana y/o de omisión para reducir el bucle de QP. De forma específica, si el primer QP está próximo al mejor QP global, entonces el bucle 40 de QP puede converger más rápido y terminar de forma temprana. Por lo tanto, en lugar de comenzar siempre desde el nivel de QP de marco, puede ser beneficioso utilizar el valor de QP predicho a partir de los valores de QP de bloques vecinos ya codificados. Debido a la correlación espacial que existe entre los bloques vecinos, el QP óptimo elegido por los bloques vecinos puede servir como una buena indicación del QP óptimo para el bloque actual. Por ejemplo, si los bloques vecinos tienen una alta textura y ha seleccionado un QP más pequeño, entonces será más probable que 45 el bloque actual también tenga una alta textura y que pueda encontrar un QP más pequeño, más beneficioso para el rendimiento de codificación. Por lo tanto, en las figuras 2, 4 y 6, el bucle de QP es representado de una manera genérica; el orden específico de los valores de QP a evaluar QP y los valores de QP reales que se van a evaluar (algunos valores de QP puede que se omitan) es muy flexible.
6) Refinamiento de búsqueda de movimiento
50 Similar al modo de información (incluyendo el modo de codificación de bloque, el modo de codificación de sub-bloque, el tamaño de transformación, etcétera), la información de movimiento también puede alterarse de una manera limitada en los bucles de QP posteriores. En lugar de realizar una búsqueda de movimiento sólo una vez y utilizar la misma información de movimiento en los bucles de QP posteriores, se puede realizar una búsqueda de movimiento restringida para refinar el movimiento y lograr un mejor rendimiento, sin un aumento significativo en el tiempo de búsqueda de 55 movimiento. Por ejemplo, si la búsqueda de movimiento en el primer valor de QP devuelve vectores de movimiento bi- predictivos, entonces solo la búsqueda de movimiento bi-predictivo puede realizarse en bucles de QP posteriores. Como otro ejemplo, si marcamos el mejor marco de referencia a partir de la primera búsqueda de movimiento (realizada en el primer valor de QP) como primer_ref_idx, entonces la búsqueda de movimiento en los bucles de QP
5
10
15
20
25
30
35
40
45
50
posteriores se puede realizar sólo para el mismo marco de referencia primer_ref_idx. En este sentido, una máquina de estado de transición de movimiento se puede emplear para realizar la búsqueda de movimiento limitado que puede incluir las siguientes consideraciones como unos pocos ejemplos:
• si los vectores de movimiento de la búsqueda de movimiento en la primera QP, primer_movimiento, indican una predicción del movimiento uni-predictiva/uni-predictiva hacia atrás/bi-predictiva, entonces sólo se puede realizar una predicción del movimiento uni-predictiva/uni-predictiva hacia atrás/bi-predictiva en la búsqueda de movimiento para valores de QP posteriores.
• Una búsqueda de movimiento posterior se puede realizar para sólo el marco de referencia primer_ref_idx, el mejor marco de referencia identificado después de la primera búsqueda de movimiento.
• Una búsqueda de movimiento posterior se puede realizar alrededor del mejor vector de movimiento previo utilizando un rango de búsqueda limitado. Además, también se puede considerar un criterio determinación temprana dado el rendimiento, por ejemplo, la distorsión, de los pases de codificación previos.
• En un ejemplo alternativo, si cambia el predictor de vector de movimiento (debido al cambio en los vectores de movimiento vecinos, y/o en las particiones de bloque vecinas en bucles de QP posteriores), entonces se puede realizar la búsqueda de movimiento posterior alrededor del nuevo predictor de vector de movimiento.
La presente divulgación se puede referir a uno o más de los ejemplos enumerados a continuación.
1. Un método para seleccionar un modo de codificación y un parámetro de cuantificación para una unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende:
seleccionar un parámetro de cuantificación y un mejor modo de codificación para el parámetro de cuantificación inicial;
evaluar modos de codificación para parámetros de cuantificación posteriores de acuerdo con una máquina de estado de transición de modo de codificación que comprende estados de modo de codificación y transiciones entre estados de modos de codificación, en donde cada estado de la máquina de estado de transición de modo de codificación corresponde a un modo de codificación y una puntuación de probabilidad de transición de modo es asignada a la transición entre un par de estados de modo de codificación; y
seleccionar un modo de codificación óptimo y un parámetro de cuantificación óptimo entre los modos de codificación y los parámetros de cuantificación evaluados.
2. El método del ejemplo 1 enumerado, en donde la puntuación de probabilidad de transición de modo es más alta si una transición entre los estados de modo de codificación es más probable y es más baja si la transición entre los estados de modo de codificación es menos probable.
3. El método del ejemplo 1 enumerado, en donde la puntuación de probabilidad de transición de modo es asignada de acuerdo con características de la unidad de codificación de imagen.
4. El método del ejemplo 3 enumerado, en donde la característica de la imagen es analizada y determinada mediante el análisis previo de imagen antes de codificar la imagen.
5. El método del ejemplo 1 enumerado, en donde la puntuación de probabilidad de transición de modo es asignada de acuerdo con el tipo de transición entre modos de codificación.
6. El método del ejemplo 5 enumerado, en donde el tipo de transición entre modos de codificación comprende: transición de un modo de codificación al mismo modo de codificación, transición de un modo intra de codificación a un modo intra de codificación, transición de un modo inter de codificación a un modo inter de codificación, transición de un modo intra de codificación a un modo inter de codificación y transición de un modo inter de codificación a un modo intra de codificación.
7. El método del ejemplo 1 enumerado, en donde el número de transiciones entre estados de modo de codificación es controlable.
8. El método del ejemplo 7 enumerado, en donde el número de transiciones entre estados de modo de codificación es seleccionado de acuerdo con la importancia de la unidad de codificación de imagen que se va a codificar, de manera que un número alto de transiciones es seleccionado para unidades de codificación de imagen más importantes.
9. El método del ejemplo 7 enumerado, en donde el número de transiciones entre estados de modo de codificación es seleccionado de acuerdo con un umbral de probabilidad de transición, de manera que sólo las transiciones entre modos de codificación que tienen una puntuación de probabilidad de transición por encima del umbral de probabilidad de transición son permitidos.
10. El método del ejemplo 9 enumerado, en donde el umbral de probabilidad de transición para unidades de codificación de imágenes no de referencia es más alto que el umbral de probabilidad para unidades de codificación de imagen de referencia.
5
10
15
20
25
30
35
40
45
50
11. El método del ejemplo 9 enumerado, en donde el umbral de probabilidad de transición para una unidad de codificación de imagen menos importante es más alta que el umbral de probabilidad de transición para una unidad de codificación de imagen más importante.
12. El método del ejemplo 1 enumerado, en donde la presencia o ausencia de transiciones entre los estados de modo de codificación es seleccionada de acuerdo con el tipo de unidad de codificación de imagen que está siendo codificada.
13. El método del ejemplo 12 enumerado, en donde la unidad de codificación de imagen que está siendo codificada incluye fotogramas o diapositivas.
14. El método del ejemplo 13 enumerado, en donde los fotogramas o diapositivas comprenden I-fotogramas o diapositivas, P-fotogramas o diapositivas y B-fotogramas o diapositivas.
15. El método del ejemplo 14 enumerado, en donde sólo estados intra de codificación y transiciones entre estados intra de codificación son permitidos para I-fotogramas o diapositivas.
16. El método del ejemplo 1 enumerado, en donde la presencia o ausencia de transiciones entre estados de modo de codificación es seleccionada de acuerdo con sí la unidad de codificación de imagen es una unidad de codificación de imagen de referencia o una unidad de codificación de imagen no de referencia.
17. El método del ejemplo 1 enumerado, en donde la presencia o ausencia de transiciones entre estados de modo de codificación es seleccionada de acuerdo con la aplicación de codificación de imagen y la provisión de complejidad disponible asociada con la aplicación de codificación de imagen.
18. El método del ejemplo 1 enumerado, en donde la máquina de estado de transición de modo es una máquina de estado de transición de modo ajustable de forma dinámica.
19. El método del ejemplo 18 enumerado, en donde el número de transiciones permitidas en la máquina de estado de transición de modo de codificación depende del número de parámetros de cuantificación evaluados.
20. El método del ejemplo 19 enumerado, en donde sólo una auto-transición se permite después de que se haya evaluado un cierto número de parámetros de cuantificación.
21. El método del ejemplo 20 enumerado, en donde para un parámetro de cuantificación determinado sólo se permite una auto-transición siguiendo a la falta de cambio en el mejor modo de codificación para un número de parámetros de cuantificación antes del parámetro de cuantificación determinado.
22. El método del ejemplo 18 enumerado, en donde el ajuste de la máquina de estado de transición de modo depende de las unidades de codificación de imagen vecinas ya codificadas.
23. El método del ejemplo 22 enumerado, en donde se aplica una máquina de estado de transición de modo de codificación más relajada a una unidad de codificación de imagen dada si las unidades de codificación de imagen vecinas ya codificadas de la unidad de codificación de imagen dada utilizan máquinas de estado de transición de modo más relajadas, y se aplica una máquina de estado de transición de modo de codificación menos relajada a una unidad de codificación de imagen dada si las unidades de codificación de imagen vecinas ya codificadas de una unidad de codificación de imagen dada utilizan máquinas de estado de transición de modo más relajadas.
24. El método del ejemplo 23 enumerado, en donde sí una máquina de estado de transición de modo específico aplicada a una unidad de codificación de imagen dada es más relajada o menos relajada depende de un grado de similaridad entre unidades de codificación de imagen vecinas ya codificadas.
25. El método del ejemplo 1 enumerado, en donde la unidad de codificación de imagen es un bloque de video, un grupo de bloques de video, una región de una imagen, una imagen completa.
26. El método del ejemplo 1 enumerado, en donde la máquina de estado de transición de modo de codificación es una máquina de estado de transición de modo de macrobloque o de modo de sub-macrobloque.
27. Un método de selección de un modo de codificación y de un parámetro de cuantificación para una unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende:
realizar un primer proceso de cuantificación durante la evaluación de M modos de codificación posibles;
basándose en el primer proceso de cuantificación seleccionar los M1 mejores modos de codificación de acuerdo con un criterio de codificación predefinido, donde M > M1 > 1;
realizar un segundo proceso de cuantificación para los M1 mejores modos de codificación; y
seleccionar un mejor modo de codificación basándose en los resultados del primer proceso de cuantificación y del segundo proceso de cuantificación.
5
10
15
20
25
30
35
40
45
28. Un método del ejemplo 27 enumerado, en donde el primer proceso de cuantificación es un tipo de cuantificación más rápida y el segundo proceso de cuantificación es un tipo de cuantificación más lenta.
29. El método del ejemplo 28 enumerado, en donde el primer proceso de cuantificación es una cuantificación escalar simple y el segundo proceso de cuantificación es una cuantificación basada en entramado.
30. El método del ejemplo 27 enumerado, en donde el primer proceso de cuantificación y el segundo proceso de cuantificación se repiten para cada parámetro de cuantificación.
31. El método del ejemplo 30 enumerado, en donde la información sobre las posiciones y magnitudes de los coeficientes de transformación cuantificados de uno o más parámetros de cuantificación es utilizado durante el proceso de cuantificación de parámetros de cuantificación posteriores.
32. El método del ejemplo 27 enumerado, en donde el segundo proceso de cuantificación es aplicado sólo al mejor modo de codificación entre los M modos de codificación posibles, o de forma equivalente, M1 = 1.
33. El método del ejemplo 27 enumerado, en donde el mejor resultado se selecciona
comparando i), el valor del criterio de codificación predefinido de un residual cuantificado con el primer proceso de cuantificación con ii) el valor del criterio de codificación predefinido de un residual cuantificado con el segundo proceso de cuantificación; y
seleccionando el residual que ofrece el mejor valor del criterio de codificación predefinido.
34. El método del ejemplo 27 enumerado, que además comprende re-codificar la unidad de codificación de imagen después de que se haya seleccionado el modo de codificación óptimo después del proceso de codificación inicial.
35. El método del ejemplo 34 enumerado, en donde el segundo proceso de cuantificación se realiza mientras se realiza la re-codificación de la unidad de codificación de imagen.
36. El método del ejemplo 35 enumerado, en donde la re-codificación comprende evaluar modos de medición óptimos.
37. El método del ejemplo 36 enumerado, en donde un subconjunto de modos de medición son evaluados durante el proceso de re-codificación.
38. El método del ejemplo 37 enumerado, en donde el subconjunto de modos de predicción evaluados durante el proceso de re-codificación es seleccionado basándose en los modos de predicción óptimos elegidos después del proceso de codificación inicial.
39. El método del ejemplo 34 enumerado, en donde el modo de codificación óptimo seleccionado eso bien 4x4 intra o 8x8 intra.
40. Un método de selección de un modo de codificación y de un parámetro de cuantificación para una unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende:
seleccionar un parámetro de cuantificación inicial y un mejor modo de codificación para el parámetro de cuantificación inicial; y
evaluar modos de codificación para parámetros de cuantificación posteriores,
en donde evaluar los modos de codificación para parámetros de cuantificación comprende seleccionar una transformación óptima entre una pluralidad de transformaciones para codificar la unidad de codificación de imagen.
41. El método del ejemplo 40 enumerado, en donde seleccionar una transformación óptima comprende seleccionar un subconjunto no incremental de transformaciones entre la pluralidad de transformaciones de acuerdo con un criterio de codificación predefinido para cada parámetro de cuantificación, hasta que se seleccione sólo una transformación óptima para un parámetro de cuantificación determinado y después se guarde para todos los parámetros de cuantificación posteriores después del parámetro de cuantificación determinado.
42. El método del ejemplo 41 enumerado, en donde sólo la transformación óptima es seleccionada para el parámetro de cuantificación inicial y después guardada para todos los parámetros de cuantificación posteriores.
43. El método del ejemplo 40 enumerado, en donde la información sobre posiciones y magnitudes de coeficientes de transformación cuantificados de una transformación es utilizada durante el proceso de cuantificación de otra transformación de la pluralidad de transformaciones.
44. El método del ejemplo 40 enumerado, en donde el proceso de codificación de la unidad de codificación de imagen comprende un proceso de codificación de campo de marco adaptativo (MBAFF) y en donde la información sobre la
5
10
15
20
25
30
35
40
45
unidad de codificación de imagen desde la codificación de modo de marco es utilizada durante la codificación de modo de campo, o viceversa.
45. El método del ejemplo 44 enumerado, en donde la información sobre la unidad de codificación de imagen de la codificación del modo de marco y de la codificación del modo de campo incluye información sobre el residual de predicción y las posiciones y magnitudes de los coeficientes de transformación cuantificados.
46. Un método de selección de un modo de codificación entre una pluralidad de modos de codificación y un parámetro de cuantificación entre una pluralidad de parámetros de cuantificación para una unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende:
omitir la evaluación de un subconjunto de la pluralidad de parámetros de cuantificación,
en donde la evaluación de un parámetro de cuantificación actual es omitida si el parámetro de cuantificación óptimo entre los parámetros de cuantificación evaluados previamente es asociado con bloques residuales todos nulos y si el valor del parámetro de cuantificación actual es más grande que el valor del parámetro de cuantificación óptimo.
47. Un método de selección de un modo de codificación entre una pluralidad de modos de codificación y un parámetro de cuantificación entre una pluralidad de parámetros de cuantificación para una unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende:
omitir la evaluación de un subconjunto de la pluralidad de parámetros de cuantificación,
en donde la evaluación de un conjunto complementario de parámetros de cuantificación se omite si, durante la evaluación del conjunto actual de parámetros de cuantificación, se obtienen valores monotónicamente mejores de un criterio de codificación preseleccionado.
48. El método del ejemplo 46 o 47 enumerado, en donde el valor del parámetro de cuantificación inicial de la unidad de codificación actual es ajustable.
49. El método del ejemplo 46 o 47 enumerado, en donde el valor del parámetro de cuantificación inicial de la unidad de codificación actual es predicho a partir de valores de parámetros de cuantificación de unidades de codificación de imagen vecinas ya codificadas.
50. Un método de selección de un modo de codificación y de un parámetro de cuantificación para una unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende:
seleccionar un parámetro de cuantificación inicial y un mejor modo de codificación para el parámetro de cuantificación inicial; y
evaluar los modos de codificación para parámetros de cuantificación posteriores, en donde:
evaluar modos de codificación para parámetros de cuantificación comprende realizar una búsqueda de movimiento, y se realiza una búsqueda de movimiento más comprensiva para el parámetro de cuantificación inicial y se realiza una búsqueda de movimiento limitada para los parámetros de cuantificación posteriores, en donde la búsqueda de movimiento limitada se basa en el resultado de la búsqueda de movimiento más comprensiva para el parámetro de cuantificación inicial.
51. Un codificador para codificar una señal de video de acuerdo con el método citado en uno o más de los ejemplos 1, 27, 40, 46, 47 o 50 enumerados.
52. Un aparato para codificar una señal de video de acuerdo con el método citado en uno o más de los ejemplos 1, 27, 40, 46, 47 o 50 enumerados.
53. Un sistema para codificar una señal de video de acuerdo con el método citado en uno o más de los ejemplos 1, 27, 40, 46, 47 o 50 enumerados.
54. Un medio legible por ordenador que contiene un conjunto de instrucciones que provocan que un ordenador realice el método citado en uno o más de los ejemplos 1, 27, 40, 46, 47 o 50 enumerados.
55. Uso del método citado en uno o más de los ejemplos 1, 27, 40, 46, 47 o 50 enumerados para codificar una señal de video.
Los ejemplos establecidos anteriormente son proporcionados para dar a los expertos en la técnica una divulgación y descripción completa de cómo realizar y utilizar las técnicas de aceleración para la cuantificación optimizada de tasa de dispersión de la divulgación, y no están destinados a limitar el alcance de lo que los inventores consideran como
5
10
15
20
25
30
35
40
45
50
55
su divulgación. Se pueden utilizar modificaciones de los modos descritos anteriormente para llevar a cabo la divulgación por expertos en la técnica del video.
La presente divulgación es escrita utilizando sistemas de codificación de video basados en bloques como un ejemplo del sistema de codificación de vídeo subyacente para demostrar cómo implementar los conceptos novedosos divulgados en el presente documento. Sin embargo, debería señalarse que muchos de los ejemplos cubiertos en esta divulgación también se pueden aplicar a otros tipos de sistemas de codificación de video. En general, cualquier sistema de codificación de video (basado en bloques, basado en región, basado en tren de ondas, etcétera) que incluyen un proceso de cuantificación y/o permiten una variación del parámetro de cuantificación dentro de una unidad de codificación de imagen, en donde una unidad de codificación de imagen podría ser una secuencia de fotogramas, un fotograma o imagen de video, un bloque de video, un grupo de bloques de video, una diapositiva de video, una región, una imagen completa, etcétera, pueden beneficiarse de las enseñanzas de la presente divulgación. Los parámetros de cuantificación también podrían variarse para cada componente de color, aunque la variación también se puede aplicar a diferentes coeficientes de frecuencia o niveles de muestreo a través del uso de matrices y/o desplazamientos de cuantificación. Por lo tanto, las explicaciones y demostraciones en la presente divulgación, escritas utilizando un sistema de codificación basado en bloques como el sistema de codificación subyacente, deberían tomarse como un ejemplo y no deberían entenderse que limitan el alcance de esta divulgación a solo sistemas de codificación de video basados en bloques.
El coste Lagrangiano de tasa de dispersión es utilizado en la divulgación meramente como un ejemplo. Se pueden utilizar otros criterios de codificación. Además, la distorsión métrica no está limitada a métricas de calidad objetiva tales como SSE o SAD; también se pueden utilizar medidas de calidad subjetiva. También señalar que en las figuras 4 y 6, por ejemplo, el bucle de QP es mostrado como una capa exterior del bucle de modo de codificación sólo como un ejemplo; el orden de estos bucles se puede intercambiar sin desviarse del alcance de la presente divulgación.
Debería señalarse que toda las técnicas descritas en la presente divulgación son aplicables independientemente de si se utilizan o no matrices de cuantificación y desplazamientos de cuantificación.
El experto en la técnica también entenderá que los métodos de acuerdo con la presente divulgación no necesitan restringirse solo utilizando los tres valores del algoritmo de cuantificación basada en entramado, sino en su lugar considerar valores (o estados) posibles adicionales, tales como el valor de 1, suelo(v) - k, donde k es un número entero con valor k > 0, etcétera, cuando se realiza el proceso de decisión de entramado.
Los métodos y sistemas descritos en la presente divulgación se pueden implementar en hardware, software, programación almacenada en chip, o combinaciones de las mismas. Características descritas como bloques, módulos o componentes se pueden implementar juntos (por ejemplo, en un dispositivo lógico tal como un dispositivo lógico integrado) o de forma separada (por ejemplo, cómo dispositivos lógicos conectados separados). La porción de software de los métodos de la presente divulgación puede comprender un medio legible por ordenador que comprende instrucciones que, cuando se ejecutan, realizan, al menos en parte, los métodos descritos. Los medios legibles por ordenador pueden comprender, por ejemplo, una memoria de acceso aleatorio (RAM), y/o una memoria de sólo lectura (ROM). Las instrucciones se pueden ejecutar mediante un procesador (por ejemplo, un procesador de señal digital (DSP), un circuito integrado de aplicación específica (ASIC), o una matriz de puertas programables por campo (FPGA)).
Todas las patentes y publicaciones mencionadas en la memoria descriptiva pueden ser indicativas de los niveles de destreza de los expertos en la técnica a la que pertenece la divulgación.
Ha de entenderse que la divulgación no está limitada a los métodos y sistemas particulares, los cuales pueden, por supuesto, variar. También se ha de entender que la terminología utilizada en el presente documento tiene el propósito de describir modos de realización particulares, únicamente, y no está destinada a ser limitativa. Tal y como se utiliza en esta memoria descriptiva y en las reivindicaciones anexas, las formas singulares “un/uno/una” incluyen referentes plurales a menos que el contenido dicte claramente lo contrario. El término “pluralidad” incluye dos o más referentes a menos que el contenido dicte claramente lo contrario. A menos que se defina lo contrario, todos los términos técnicos y científicos utilizados en el presente documento tienen el mismo significado que el que los entendidos comúnmente por el experto medio en la técnica a la cual pertenece esta divulgación.
Se han descrito varios modos de realización de la divulgación. Sin embargo, se entenderá que se pueden realizar varias modificaciones sin alejarse del alcance de la presente divulgación. Por consiguiente, otros modos de realización están dentro del alcance de las siguientes reivindicaciones.
Lista de referencias
[1] ITU-T Rec. H.264 and ISO/IEC 14496-10 AVC, "Advanced video coding for generic audiovisual services, Noviembre de 2007
[2] SMPTE 421M, "VC-1 Compressed Video Bitstream Format and Decoding Process," Abril 2006
[3] G.J. Sullivan and T. Wiegand, "Rate-distortion optimization for video compression," IEEE Signal Processing Magazine, vol. 15, issue 6, Noviembre de 1998.
[4] A. Bilgin, P. J. Sementilli, and M. W. Marcellin, "Progressive image coding using trellis coded quantization," IEEE Transactions on Image Processing, vol. 8, no. 11, pp. 1638-1643, Noviembre de 1999.
5 [5] M. Karczewicz, Y. Ye, and I. Chong, "Rate distortion optimized quantization," VCEG-AH21, Antalya, Turquía, Enero
de 2008.
[6] M. Karczewicz, Y. Ye, and P. Chen, "Rate distortion optimized quantization," ITU-T/SG16/Q.6 document C.462, Geneva, Suiza, Abril de 2008.
[7] JVT reference software version JM14.2,
http://iphome.hhi.de/suehring/tml/download/, Diciembre de 2008.
10 [8] VCEG/KTA reference software JM11.0KTA2.3,
http://iphome.hhi.de/suehring/tml/download/KTA/, Abril de 2009.
[9] A. Leontaris and A. Tourapis, "Scene/Picture Complexity Classification using SpatioTemporal (Motion- Compensated) Analysis," Solicitud de publicación US 2009/0086814.
[10] G. Sullivan, "Adaptive quantization encoding technique using an equal expected-value rule," JVT-N011, Hongkong, Enero, 2005.
15 [11] Guobin Shen, Alexis M. Tourapis, Ming L. Liou: Syntax-constrained rate-distortion optimization for DCT-based
image encoding methods. VCIP 2000: 86-94.

Claims (12)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    REIVINDICACIONES
    1. Un método de selección de un modo de codificación y de un parámetro de cuantificación para una unidad de codificación de imagen que se va a codificar y a cuantificar en un proceso de codificación de imagen, el cual comprende:
    (a) realizar un primer proceso de cuantificación (408) que tiene un primer tipo de técnica de cuantificación durante la evaluación de M modos de codificación posibles;
    (b) basándose en el primer proceso de cuantificación (408), seleccionar los M1 mejores modos de codificación de acuerdo con el criterio de codificación predefinido, en donde M > M1 > 1;
    (c) después de que se hayan realizado las etapas (a) y (b) para cada uno de los M modos de codificación posibles, realizar un segundo proceso de cuantificación (430) que tiene un segundo tipo de técnica de cuantificación para los M1 mejores modos de codificación; y
    (d) seleccionar un mejor modo (432) de codificación basándose en los resultados del primer proceso de cuantificación (408) y el segundo proceso de cuantificación (430);
    el primer proceso de cuantificación (408) que tiene el primer tipo de técnica de cuantificación que es un tipo de cuantificación más rápida y el segundo proceso de cuantificación (430) que tiene el segundo tipo de técnica de cuantificación que es un tipo de cuantificación más lenta;
    el primer proceso de cuantificación (408) y el segundo proceso de cuantificación (430) que se repiten para cada parámetro de cuantificación.
  2. 2. El método de la reivindicación 1, en donde la información sobre las posiciones y magnitudes de los coeficientes de transformación cuantificados de uno o más parámetros de cuantificación se utilizan durante los procesos de cuantificación de parámetros de cuantificación posteriores.
  3. 3. El método de la reivindicación 1, en donde el segundo proceso de cuantificación (430) se aplica sólo al mejor modo de codificación entre los M modos de codificación posibles, o de forma equivalente, M1 = 1.
  4. 4. El método de la reivindicación 1, en donde los mejores resultados se seleccionan (432)
    comparando i) el valor del criterio de codificación predefinido de un residual cuantificado con el primer proceso de cuantificación (408) con ii) el valor del criterio de codificación predefinido de un residual cuantificado con el segundo proceso de cuantificación (430); y
    seleccionando el residual que ofrece el mejor valor del criterio de codificación predefinido.
  5. 5. El método de la reivindicación 1, que además comprende una re-codificación de la unidad de codificación de imagen después de que haya sido seleccionado el modo de codificación óptimo después del proceso de codificación inicial.
  6. 6. El método de la reivindicación 5, en donde el segundo proceso de cuantificación (430) se realiza mientras se realiza la re-codificación de la unidad de codificación de imagen.
  7. 7. El método de la reivindicación 6, en donde la re-codificación comprende modos de predicción óptima de evaluación.
  8. 8. El método de la reivindicación 7, en donde un subconjunto de modos de predicción es evaluado durante el proceso de re-codificación.
  9. 9. El método de la reivindicación 8, en donde el subconjunto de modos de predicción evaluado durante el proceso de re-codificaciones seleccionado basándose en los modos de predicción óptimos elegidos después del proceso de codificación inicial.
  10. 10. Un codificador (180) para codificar una señal de video de acuerdo con el método citado en la reivindicación 1.
  11. 11. Un medio legible por ordenador que contiene un conjunto de instrucciones que provoca que un ordenador realice el método enumerado en la reivindicación 1.
  12. 12. Uso del método enumerado en la reivindicación 1 para codificar una señal de video.
ES10763484.2T 2009-09-10 2010-09-07 Técnicas de aceleración para una cuantificación optimizada de tasa de distorsión Active ES2681209T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US24113009P 2009-09-10 2009-09-10
US241130P 2009-09-10
PCT/US2010/048029 WO2011031692A2 (en) 2009-09-10 2010-09-07 Speedup techniques for rate distortion optimized quantization

Publications (1)

Publication Number Publication Date
ES2681209T3 true ES2681209T3 (es) 2018-09-12

Family

ID=43414706

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10763484.2T Active ES2681209T3 (es) 2009-09-10 2010-09-07 Técnicas de aceleración para una cuantificación optimizada de tasa de distorsión

Country Status (11)

Country Link
US (4) US9729888B2 (es)
EP (5) EP3402188A1 (es)
JP (1) JP5579852B2 (es)
CN (1) CN102648627B (es)
DK (1) DK2476255T3 (es)
ES (1) ES2681209T3 (es)
HK (4) HK1257746A1 (es)
HU (1) HUE039661T2 (es)
PL (1) PL2476255T3 (es)
PT (1) PT2476255T (es)
WO (1) WO2011031692A2 (es)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9888817B2 (en) 2014-12-17 2018-02-13 Omachron Intellectual Property Inc. Surface cleaning apparatus
DK2476255T3 (en) 2009-09-10 2018-08-06 Guangdong Oppo Mobile Telecommunications Corp Ltd ACCELERATION TECHNIQUES FOR DISTORTION GRADE OPTIMIZED QUANTIZATION
KR20110068792A (ko) * 2009-12-16 2011-06-22 한국전자통신연구원 적응적 영상 부호화 장치 및 방법
KR101885258B1 (ko) * 2010-05-14 2018-08-06 삼성전자주식회사 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
PL4024865T3 (pl) 2010-06-10 2024-05-06 Interdigital Vc Holdings, Inc. Sposoby i urządzenie do określania elementów predykcji parametrów kwantyzacji z wielu sąsiadujących parametrów kwantyzacji
US8824558B2 (en) * 2010-11-23 2014-09-02 Mediatek Inc. Method and apparatus of spatial motion vector prediction
US20120189052A1 (en) * 2011-01-24 2012-07-26 Qualcomm Incorporated Signaling quantization parameter changes for coded units in high efficiency video coding (hevc)
JP6327435B2 (ja) 2011-03-03 2018-05-23 サン パテント トラスト 画像符号化方法、画像復号方法、画像符号化装置、及び、画像復号装置
US20130022108A1 (en) * 2011-06-30 2013-01-24 General Instrument Corporation Quantization parameter derivation from qp predictor
MX350245B (es) * 2011-07-12 2017-08-31 Nec Corp Método de codificación de parámetro de cuantificación de imágenes y método de descodificación de parametro de cuantificación de imágenes.
WO2013030833A1 (en) 2011-08-29 2013-03-07 I.C.V.T. Ltd. Controlling a video content system
WO2013111126A2 (en) * 2012-01-23 2013-08-01 I.C.V.T Ltd. Method and system for controlling video frame encoding
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
CN102625101B (zh) * 2012-03-16 2014-02-12 北京航空航天大学 一种基于随机像素法的h.264帧间预测模式快速选择方法
US9270986B2 (en) * 2012-04-13 2016-02-23 Qualcomm Incorporated Level decision in rate distortion optimized quantization
US9077965B2 (en) * 2012-10-12 2015-07-07 Mediatek Inc. Method and apparatus for performing lossy image compression through source quantization and lossless compression kernel, and related method and apparatus for image decompression
FR2998078A1 (fr) * 2012-11-09 2014-05-16 I Ces Innovative Compression Engineering Solutions Procede pour limiter la memoire necessaire a l'enregistrement d'un fichier audio, image ou video cree grace a un appareil dans ledit appareil.
CN104104947B (zh) * 2013-04-02 2016-10-19 腾讯科技(深圳)有限公司 一种视频编码方法和装置
KR102161741B1 (ko) * 2013-05-02 2020-10-06 삼성전자주식회사 HEVC(high efficiency video coding)에서 코딩 유닛에 대한 양자화 파라미터를 변화시키는 방법과 장치, 및 시스템
GB2519070A (en) 2013-10-01 2015-04-15 Sony Corp Data encoding and decoding
TW201519637A (zh) * 2013-11-12 2015-05-16 Univ Nat Taiwan 位元率-誤差最佳化量化方法
US9794575B2 (en) * 2013-12-18 2017-10-17 Magnum Semiconductor, Inc. Apparatuses and methods for optimizing rate-distortion costs in video encoding
CN104954787B (zh) * 2014-03-27 2018-03-23 浙江大华技术股份有限公司 Hevc帧间预测模式选择方法及装置
JP6497100B2 (ja) * 2015-02-09 2019-04-10 沖電気工業株式会社 映像符号化装置、方法及びプログラム
US10356422B2 (en) * 2015-03-06 2019-07-16 Qualcomm Incorporated Fast rate-distortion optimized quantization
JP6502753B2 (ja) 2015-06-08 2019-04-17 キヤノン株式会社 画像符号化装置、画像処理装置、画像符号化方法
CN105282557B (zh) * 2015-09-28 2018-05-18 天津大学 一种预测运动矢量的h.264快速运动估计方法
CN105657421B (zh) * 2016-01-15 2018-08-31 珠海全志科技股份有限公司 8x8残差系数块编码方法及***
JP2017183910A (ja) * 2016-03-29 2017-10-05 富士通株式会社 画像符号化装置及び画像符号化方法
US10402932B2 (en) 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
US11013384B2 (en) 2018-08-13 2021-05-25 Omachron Intellectual Property Inc. Cyclonic air treatment member and surface cleaning apparatus including the same
US11006799B2 (en) 2018-08-13 2021-05-18 Omachron Intellectual Property Inc. Cyclonic air treatment member and surface cleaning apparatus including the same
US11192122B2 (en) 2018-08-13 2021-12-07 Omachron Intellectual Property Inc. Cyclonic air treatment member and surface cleaning apparatus including the same
US10893272B2 (en) * 2019-01-29 2021-01-12 Sony Corporation Image block coding based on pixel-domain pre-processing operations on image block
US11259035B2 (en) * 2019-03-15 2022-02-22 Ati Technologies Ulc Macroblock coding type prediction
CN110365975A (zh) * 2019-06-21 2019-10-22 武汉玉航科技有限公司 一种avs2视频编解码标准优化方案
US20220272342A1 (en) * 2019-07-05 2022-08-25 V-Nova International Limited Quantization of residuals in video coding
US11490083B2 (en) * 2020-02-05 2022-11-01 Qualcomm Incorporated Learned low-complexity adaptive quantization for video compression
CN111314703B (zh) * 2020-03-31 2022-03-08 电子科技大学 一种基于失真类型传播分析的时域率失真优化方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3093233B2 (ja) * 1990-03-16 2000-10-03 キヤノン株式会社 画像符号化装置及びその方法
JP2646921B2 (ja) * 1991-11-15 1997-08-27 日本ビクター株式会社 適応量子化装置
JPH10511532A (ja) 1995-10-18 1998-11-04 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ ビデオ画像符号化方法
US6037987A (en) * 1997-12-31 2000-03-14 Sarnoff Corporation Apparatus and method for selecting a rate and distortion based coding mode for a coding system
US6167162A (en) 1998-10-23 2000-12-26 Lucent Technologies Inc. Rate-distortion optimized coding mode selection for video coders
CN1206864C (zh) 2002-07-22 2005-06-15 中国科学院计算技术研究所 结合率失真优化的码率控制的方法及其装置
US7194035B2 (en) 2003-01-08 2007-03-20 Apple Computer, Inc. Method and apparatus for improved coding mode selection
GB2401502B (en) 2003-05-07 2007-02-14 British Broadcasting Corp Data processing
US7280597B2 (en) 2003-06-24 2007-10-09 Mitsubishi Electric Research Laboratories, Inc. System and method for determining coding modes, DCT types and quantizers for video coding
CN1934871B (zh) 2003-08-25 2011-08-10 新加坡科技研究局 在视频编码中对帧间预测进行模式判定的方法和***
EP1513350A1 (en) 2003-09-03 2005-03-09 Thomson Licensing S.A. Process and arrangement for encoding video pictures
ATE532270T1 (de) 2004-07-14 2011-11-15 Slipstream Data Inc Verfahren, system und computerprogramm für die optimierung von datenkomprimierung
JP2006080925A (ja) * 2004-09-09 2006-03-23 Toshiba Corp 動画符号化装置、動画符号化方法および動画符号化プログラム
US8155191B2 (en) 2004-11-04 2012-04-10 Thomson Licensing Method and apparatus for fast mode decision of B-frames in a video encoder
US20060098733A1 (en) 2004-11-08 2006-05-11 Kabushiki Kaisha Toshiba Variable-length coding device and method of the same
EP1727371A1 (en) 2005-05-27 2006-11-29 Thomson Licensing Method for controlling the encoder output bit rate in a block-based video encoder, and corresponding video encoder apparatus
US20090225829A2 (en) * 2005-07-06 2009-09-10 Do-Kyoung Kwon Method and apparatus for operational frame-layerrate control in video encoder
US7961783B2 (en) 2005-07-07 2011-06-14 Mediatek Incorporation Methods and systems for rate control in video encoder
US8107540B2 (en) * 2005-07-11 2012-01-31 Cheetah Technologies, L.P. Image complexity computation in packet based video broadcast systems
EP1761069A1 (en) 2005-09-01 2007-03-07 Thomson Licensing Method and apparatus for encoding video data using block skip mode
US7262719B2 (en) * 2006-01-30 2007-08-28 International Business Machines Corporation Fast data stream decoding using apriori information
EP1833257A1 (en) 2006-03-06 2007-09-12 THOMSON Licensing Method and apparatus for bit rate control in scalable video signal encoding using a Rate-Distortion optimisation
US8005140B2 (en) * 2006-03-17 2011-08-23 Research In Motion Limited Soft decision and iterative video coding for MPEG and H.264
EP1835750A1 (en) 2006-03-17 2007-09-19 THOMSON Licensing Rho domain rate control and coding mode selection for H.264
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
WO2008035842A1 (en) * 2006-09-20 2008-03-27 Electronics And Telecommunications Research Institute Apparatus and method for encoding and decoding using alternative converter according to the correlation of residual signal
GB0619570D0 (en) 2006-10-04 2006-11-15 Univ Bristol Complexity scalable video transcoder and encoder
US8467448B2 (en) 2006-11-15 2013-06-18 Motorola Mobility Llc Apparatus and method for fast intra/inter macro-block mode decision for video encoding
US8594187B2 (en) 2007-03-02 2013-11-26 Qualcomm Incorporated Efficient video block mode changes in second pass video coding
CN103124354B (zh) 2007-09-28 2016-01-20 杜比实验室特许公司 处理视频信息
US8077772B2 (en) 2007-11-09 2011-12-13 Cisco Technology, Inc. Coding background blocks in video coding that includes coding as skipped
FR2925819A1 (fr) 2007-12-21 2009-06-26 Thomson Licensing Sas Procede de codage double passe par macrobloc
WO2009080133A1 (en) 2007-12-21 2009-07-02 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive intra mode selection
US8542730B2 (en) * 2008-02-22 2013-09-24 Qualcomm, Incorporated Fast macroblock delta QP decision
US8902972B2 (en) * 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
US8379718B2 (en) * 2009-09-02 2013-02-19 Sony Computer Entertainment Inc. Parallel digital picture encoding
DK2476255T3 (en) 2009-09-10 2018-08-06 Guangdong Oppo Mobile Telecommunications Corp Ltd ACCELERATION TECHNIQUES FOR DISTORTION GRADE OPTIMIZED QUANTIZATION

Also Published As

Publication number Publication date
EP3402188A1 (en) 2018-11-14
DK2476255T3 (en) 2018-08-06
EP3410707A1 (en) 2018-12-05
EP2476255A2 (en) 2012-07-18
EP3399745A1 (en) 2018-11-07
JP5579852B2 (ja) 2014-08-27
EP2476255B1 (en) 2018-06-13
US11039152B2 (en) 2021-06-15
US10602162B2 (en) 2020-03-24
US9729888B2 (en) 2017-08-08
HUE039661T2 (hu) 2019-01-28
HK1257750A1 (zh) 2019-10-25
HK1257757A1 (zh) 2019-10-25
US11190780B2 (en) 2021-11-30
HK1257746A1 (zh) 2019-10-25
PT2476255T (pt) 2018-07-31
WO2011031692A3 (en) 2011-09-15
CN102648627B (zh) 2015-03-04
JP2013504934A (ja) 2013-02-07
US20180027245A1 (en) 2018-01-25
EP3399748A1 (en) 2018-11-07
WO2011031692A2 (en) 2011-03-17
US20120177109A1 (en) 2012-07-12
HK1257758A1 (zh) 2019-10-25
PL2476255T3 (pl) 2019-03-29
CN102648627A (zh) 2012-08-22
US20200177896A1 (en) 2020-06-04
US20200177897A1 (en) 2020-06-04

Similar Documents

Publication Publication Date Title
ES2681209T3 (es) Técnicas de aceleración para una cuantificación optimizada de tasa de distorsión
JP5713415B2 (ja) ビデオ符号器におけるbフレームの高速モード決定のための方法および装置
JP5074924B2 (ja) インタフレームのための高速モード決定方法及び装置
ES2715703T3 (es) Dispositivo de decodificación de vídeo, procedimiento de decodificación de vídeo y programa de decodificación de vídeo
KR100977691B1 (ko) 점진적인 채널 전환을 위한 방법 및 장치
WO2022117089A1 (zh) 预测方法、编码器、解码器以及存储介质
WO2022116113A1 (zh) 一种帧内预测方法、装置及解码器和编码器
CN110365975A (zh) 一种avs2视频编解码标准优化方案
JP2024501929A (ja) 動画予測符号化の方法および装置
KR100669897B1 (ko) H.264/avc에서의 고속 매크로블록 모드 선택 방법
WO2022140905A1 (zh) 预测方法、编码器、解码器以及存储介质
Zhang et al. Video coding using spatially varying transform
KR20110103276A (ko) H.264/avc에서 매크로 블록의 부호화 모드 고속 결정방법
KR20140043014A (ko) 영상 부호화 방법 및 장치
KR100996452B1 (ko) H.264 동영상 부호화기 및 H.264 동영상 부호화기의 16x16 인트라 예측 제어 방법
Mamatha et al. BIT RATE REDUCTION FOR H. 264/AVC VIDEO BASED ON NOVEL HEXAGON SEARCH ALGORITHM.
KR102183366B1 (ko) 부호화 모드 결정 방법 및 그 장치
JP2007184846A (ja) 動画像符号化装置
Wu et al. Fast intra prediction mode decision based on statistics for AVS-M
KR101654963B1 (ko) 화면내 예측 부호화 방법 및 이를 수행하는 영상 부호화 장치
KR20100090519A (ko) 영상 부호화 장치에서 매크로블록 모드 결정 방법 및 그 장치
KR20100068108A (ko) H.264/avc에서 움직임 벡터 맵을 이용한 적응적 부호화모드 결정 방법