MXPA06002494A - Transformacion plegada condicional. - Google Patents

Transformacion plegada condicional.

Info

Publication number
MXPA06002494A
MXPA06002494A MXPA06002494A MXPA06002494A MXPA06002494A MX PA06002494 A MXPA06002494 A MX PA06002494A MX PA06002494 A MXPA06002494 A MX PA06002494A MX PA06002494 A MXPA06002494 A MX PA06002494A MX PA06002494 A MXPA06002494 A MX PA06002494A
Authority
MX
Mexico
Prior art keywords
overlap
transformation
edges
frame
filter
Prior art date
Application number
MXPA06002494A
Other languages
English (en)
Inventor
Sridhar Srinivasan
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA06002494A publication Critical patent/MXPA06002494A/es

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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • 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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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
    • 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/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/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/16Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display 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/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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Abstract

Un codificador/descodificador de contenido de medios digitales (por ejemplo, imagen, video, audio, etc.) emplea un parametro espacialmente variable para condicionar la aplicacion de un pre-proceso y post-proceso de traslape a los bordes de bloque de la transformacion adyacente para la transformacion plegada de dominio espacial. Esta aplicacion condicional de la transformacion plegada a sub-bloques de los medios digitales se puede indicar en un borde, bloque, macrobloque u otra granularidad. Ademas, una restriccion sobre el uso de la transformacion plegada condicional con base en un parametro de cuantificacion a nivel de cuadro u otro parametro relacionado con la velocidad de bits minimiza el impacto de la informacion indicada a bajas velocidades de bits de codificacion.

Description

TRANSFORMACION PLEGADA CONDICIONAL CAMPO TECNICO La presente invención se refiere a técnicas para digitalmente codificar, descodificar y procesar señales de contenido de medios (por ejemplo, audio, video, imagen, texto, discurso, etc.). La invención más particularmente se refiere a codees (codificador/descodificador) de medios digitales en transformaciones plegadas.
ANTECEDENTES La codificación de transformaciones es una técnica de compresión utilizada en muchos sistemas de compresión de audio, imagen, y video. Las imágenes y videos digitales no comprimidos típicamente se representan o capturan como muestras de elementos de fotografías o colores en lugares en un cuadro de imagen o video organizado en una cuadrícula bidimensional. Por ejemplo, un formato típico para imágenes consiste de una corriente de muestras del elemento de fotografía de color de 24 bits organizadas en una cuadrícula. Cada muestra es un número representando componentes de color en un lugar del píxel en la cuadrícula dentro de un espacio de color, tal como RGB, o YIQ, entre otros. Varios sistemas de imágenes y video pueden utilizar diferentes resoluciones de color, espaciales y de tiempo de muestreo. Las señales de imagen y video digitales no comprimidas pueden consumir una capacidad de almacenamiento y transmisión considerable. La codificación de la transformación reduce el tamaño de las imágenes y video digitales a través de la transformación de la representación del dominio espacial de la señal en una representación del dominio de frecuencia (u otro dominio de transformación similar), y después reduciendo la resolución de ciertos componentes de frecuencia generalmente menos perceptibles de la representación del dominio de la transformación. Esto generalmente produce una degradación mucho menos perceptible de la señal digital comparada con la reducción de la resolución del color o espacial de las imágenes o video en el dominio espacial. Más específicamente, una técnica de codificación de la transformación típica 100 mostrada en la Figura 1 divide los pixeles de la imagen digital descomprimida en bloques bidimensionales de tamaño fijo. Una transformación lineal 110 que hace el análisis de frecuencia espacial se aplica a cada bloque, el cual convierte la muestras espaciadas dentro del bloque en un grupo de coeficientes de frecuencia (o transformación) generalmente representando la fuerza de la señal digital en las bandas de frecuencia correspondientes sobre el intervalo del bloque. Para la compresión, los coeficientes de la transformación se pueden selectivamente subdividir en cantidades que se pueden medir (es decir, reducidas en resolución, tal como a través de la declinación de los bis menos significativos de los valores del coeficiente o por el contrario representando los valores en un grupo de números de resolución más altos a una resolución más baja), y también la entropía o codificación de longitud variable dentro de una corriente de datos comprimida a través del sub-d ivisor/codificador de entropía 120. Después de descodificar la subdivisión/codificación de entropía 130, los coeficientes de la transformación inversamente se transformarán 140 para estrechamente reconstruir la señal de imagen/video muestreada de color/espacial original. Mientras se comprime una imagen fija (o un cuadro intra-codificado en una secuencia de video), los estándares más comunes tales como MPEG-2, MPEG-4 y Windows Media dividen la imagen en mosaicos cuadrados y los aplican a una transformación de bloque para cada mosaico de la imagen. Los coeficientes de transformación en una partición dada (comúnmente conocida como un bloque) están influenciados solamente por los componentes de datos brutos dentro del bloque. Las operaciones reversibles o perdidas en el lado del codificador tal como la cuantificación causan que los objetos aparezcan en la imagen descodificada. Estos objetos son independientes de los bloques y producen un efecto visualmente molesto conocido como el efecto de bloqueo. Igualmente para datos de audio, cuando los bloques no traslapados son transformaciones independientemente codificadas, los errores de la cuantificación producirán discontinuidades en la señal en los límites del bloque una vez hecha la reconstrucción de la señal de audio en el descodificador. Para audio, se escucha un efecto de pulsación periódico.
Transformación Plegada de Dominio Espacial Con el fin de minimizar el efecto de bloque, se pueden explotar las correlaciones de bloque cruzadas. Una forma de lograr la correlación de bloque cruzada es a través del uso de una transformación plegada como se describe en H. Malvar, "Signal Processing with Lapped Transforms," Artech House, Norwood MA, 1992. Una transformación plegada es una transformación cuya captura extiende, aparte de los elementos de datos en el bloque actual, unos cuantos elementos adyacentes en los bloques cercanos. Igualmente, en el lado de la reconstrucción, la transformación inversa tiene influencia en todos los puntos de datos en los bloques cercanos. Para el caso de datos bidimensionales (2D), la transformación plegada 2D es una función del bloque actual, junto con los elementos seleccionados de bloques a la izquierda, parte superior, derecha, parte inferior, y posiblemente superior izquierda, superior derecha, inferior izquierda o inferior derecha. El número de puntos de datos en los bloques cercanos que se utilizan para calcular la transformación actual son referidos como el traslape. La transformación plegada se puede implementar en el dominio de la transformación, como un paso que agrupa las cantidades del dominio de la transformación después de una transformación de bloque convencional. Si no se puede implementar en el dominio espacial a través de un etapa de pre-procesamiento que se aplica a los píxeles dentro del rango del traslape. Estas dos implementaciones están matemáticamente relacionadas y por consiguiente son equivalentes. Como se muestra en la Figura 2, la transformación plegada de dominio especial (SDLT) 200 es una transformación plegada que se implementa según los pasos antes y después del procesamiento 210, 220 antes la transformación de bloque hacia adelante 110, y subsiguiente a la transformación de bloque inversa 140, respectivamente. (Ver, por ejemplo, Srinivasan y otros, "!mprovements to the Spatial-Domain Lapped Transform in Digital Media Compression, "Solicitud de Patente de E.U.A. No. 10/620,744, presentada el 15 de Julio del 2003 [de aquí en adelante "Solicitud de Patente SDLT Mejorada"]. La transformación plegada de dominio espacial por lo general se utiliza adaptar la transformación de bloque existente con base en técnicas de compresión con el fin de mejorar la eficiencia.
COMPENDIO DE LA INVENCION .
Cuando se aplica SDDT a todas las partes de una imagen (tal como un cuadro en una secuencia de video) del contenido de los otros medios digitales que se está codificando en una forma no pronosticada (es decir, intra), surgen ciertos aspectos limitantes: 1. El pre-filtro es expansivo en cuanto al rango; por consiguiente ciertas áreas de la imagen se pueden saturar o recortar después del prefiltrado en el lado del codificador. Igualmente, puede haber sobre flujo en el lado del descodificador. 2. El prefiltro se acentúa. La efectividad de la codificación de ciertas áreas de una imagen con el contenido de alta frecuencia local (especialmente los bordes de la imagen alineadas con los bordes del bloque) por consiguiente disminuirán como un resultado de la transformación plegada. La transformación plegada condicional que se implementa utilizando el procesamiento de señal de medios digitales y las técnica de codificación/descodificación y sistemas descritos aquí logran un mejor control del proceso de traslape para conducir estos aspectos. Esta transformación plegada condicional permite la flexibilidad especial en la selección o aplicación de los pre- y postfiltros de una transformación plegada. En otras palabras, la transformación plegada condicionalmente se aplica a diferentes áreas del contenido de medios digitales (por ejemplo, bloques de una imagen separados). Por ejemplo, una implementación de la transformación plegada condicional descrita aquí utiliza un parámetro del modo espacialmente variable para especificar la aplicación y extensión del traslape del post-filtro que se aplicará sobre la descodificación. En un codee de video, por ejemplo, este parámetro en el modo espacialmente variable especifica en cuales bordes del bloque en una imagen el pos-filtro de la transformación plegada se va a aplicar. En una implementación, el parámetro del modo es más eficientemente codificado y transmitido para cuadros intra-codificados de una secuencia de video como una bandera Booieana con granularidad de macrobloque, que es más eficiente que la codificación del parámetro del modo por borde del bloque. Además, esta implementación impone una restricción en el modo de traslape condicional con base en un parámetro de cuantificación relacionado con el la velocidad binaria, para así minimizar el impacto de llevar a cabo una transformación plegada condicional con velocidades binarias bajas. Las características y ventajas adicionales de la invención serán aparentes a partir de la siguiente descripción detallada de las modalidades que siguen con referencia a los dibujos que las acompañan.
BREVE DESCRIPCION DE LOS DIBUJOS La Figura 1 es un diagrama de bloque de una técnica de codificación de transformación típica en la técnica anterior. La Figura 2 es un diagrama de bloque de un sistema de codificación/descodificación basado en la transformación plegada de dominio espacial en la técnica anterior. La Figura 3 es un diagrama de bloque de un codificador de video que emplea la transformación plegada condicional descrita aquí. La Figura 4 es un diagrama de bloque de un descodificador de video que emplea la transformación plegada condicional descrita aquí. La Figura 5 es un diagrama de bloque de un codificador que implementa la transformación plegada condicional con la señalización del modo de traslape por borde de bloque adyacente. La Figura 6 es un diagrama de sintaxis , de secuencia-nivel utilizado en un codificador/descodificador de acuerdo con una segunda implementación de la transformación plegada condicional con señalización del modo de traslape por macrobloque y basado en la velocidad de bits. La Figura 7 es un diagrama de la sintaxis de cuadro-nivel utilizada en el codificador/descodificador de acuerdo con una segunda implementación de la transformación plegada condicional con señalización del modo de traslape por macrobloque y basado en la velocidad de bits. La Figura 8 es un diagrama de flujo que ilustra la señalización del modo de traslape por macrobloque y basado en la velocidad de bits de una bandera en el modo de traslape en una segunda implementación de la transformación plegada condicional. La Figura 9 es un diagrama que ilustra los bordes del macrobloque adyacentes en los cuales se aplica el filtro de traslape para un ejemplo de banderas en el modo de traslape señalizados para un grupo de macrobloques en una imagen.
La Figura 10 es un diagrama de bloque de un entorno de computación adecuado para el codificador/descodificador de video de las Figuras 3 y 4.
DESCRIPCION DETALLADA La siguiente descripción está dirigida a implementaciones de la transformación plegada condicional, en donde los filtros de borde de bloque asociados con la transformación plegada son condicionalmente aplicados en una base espacialmente variable sobre el contenido de medios digitales. Una aplicación ilustrativa de la transformación plegada condicional es en un codificador y descodif icador de imagen o video. Sin embargo, esta forma condicional de la transformación plegada de dominio espacial no está limitada a los codees de la imagen o del video, y se puede aplicar a otros sistemas de codificación, descodificación y/o procesamiento. Por consiguiente, ia transformación plegada condicional se describe en el contexto de un codificador y descodificador de imagen o video generalizado, pero alternativamente se puede incorporar en varios tipos de sistemas de codificación, descodificación y/o procesamiento de señales de medios (por ejemplo, audio, video, imagen, etc.) que emplean filtros de traslape de transformaciones plegadas sobre bases condicionales o espacialmente variables en el domino espacial o dominio de la transformación. 1. Codificador y Descodif icador de Video Generalizados La Figura 3 es un diagrama de bloque de un codificador de video generalizado (300) y la Figura 4 es un diagrama de bloque de un descodificador de video generalizado (400), en donde se pueden incorporar las transformaciones WMV9/VC-9. Las relaciones mostradas entre los módulos dentro del codificador y descodificador indican el flujo principal de información en el codificador y descodificador; otras relaciones no se muestran por el bien de la simplicidad. En particular las Figuras 3 y 4 usualmente no muestran la información secundaria indicando la configuración del codificador, modos, cuadros, etc., utilizados para una secuencia de video, cuadro, macrobloque, bloque, etc. Dicha información secundaria se envía en la corriente de bits de salida, típicamente después de la codificación de entropía de la información secundaria. El formato de la corriente de bits de salida puede ser un formato de Windows Media Video u otro formato. El codificador (300) y el descodificador (400) están basados en bloques y utilizan un formato de macrobloque 4:2:0 con cada macrobloque incluyendo 4 bloques de luminancia de luminancia de 8 x 8 (algunas veces tratados como un macrobloque de 16 x 16) y dos bloques de colorido de 8 x 8. Alternativamente, el codificador (300) y el descodificador (400) se basan en el objeto, utilizan un formato de macrobloque o bloque diferente, o llevan a cabo operaciones sobre grupos de píxeles de diferente tamaño o configuración que los macrobloques de 8 x 8 y de 16 x 16.
Dependiendo de la implementación y el tipo de compresión deseada, los módulos del codificador o descodificador se pueden agregar, omitir, dividir en múltiples módulos, combinar con otros módulos, y/o reemplazar con módulos similares. En modalidades alternativas, el codificador o descodificador con diferentes módulos y/o configuraciones de módulos llevan a cabo una o más de las técnicas descritas. A. Codificador de Video La Figura 3 es un diagrama de bloque de un sistema codificador de señal (300). El sistema codificador (300) recibe una secuencia de cuadros de video incluyendo un cuadro actual (305), y produce información de video comprimida (395) como salida. Las modalidades particulares de los codificadores de video típicamente utilizan una variación o versión complementaria del codificador generalizado (300). El sistema codificador (300) comprime los cuadros pronosticados y los cuadros clave. Por el bien de la presentación, la Figura 3 muestra una trayectoria para los cuadros clave a través del sistema codificador (300) y una trayectoria de cuadros pronosticados hacia delante. Muchos de los componentes del sistema codificador (300) se utilizan para comprimir ambos, los cuadros clave y los cuadros pronosticados. Las operaciones exactas llevadas a cabo por esos componentes pueden variar dependiendo del tipo de información que se está comprimiendo. Un cuadro pronosticado [también llamado p-cuadro, para la predicción bidireccional, o cuadro inter-codificado) se representa en términos de predicción (o diferencia) de uno o más de otros cuadros. Un residuo diferencial es la diferencia entre lo que se pronosticó y el cuadro original. En contraste, un cuadro clave [también llamado cuadro intra-codificado, i-cuadro] se comprime sin referencia a otros cuadros. Si el cuadro actual (305) es un cuadro pronosticado hacia delante, un estimador del movimiento (310) estima el movimiento de los macrobloques u otros grupos de píxeles del cuadro actual (305) con respecto a un cuadro de referencia, el cual es el cuadro previo reconstruido (325) guardado en el almacén de cuadros (320). En modalidades alternativas, el cuadro de referencia es un último cuadro o el cuadro actual que es bidireccionalmente pronosticado. El estimador del movimiento (310) da salida a la información de movimiento de información secundaria (315) tal como los vectores de movimiento. Un compensador de movimiento (330) aplica la información de movimiento (315) al cuadro previo reconstruido (325) para formar un cuadro actual de movimiento compensado (335). El pronóstico es raramente perfecto, sin embargo, y la diferencia entre el cuadro actual de movimiento compensado (335) y el cuadro actual original (305) es el residual de la predicción (345). Alternativamente, un estimador de movimiento y el compensador del movimiento aplican otro tipo de estimación/compensación de movimiento. Un transformador de frecuencia (360) convierte la información de video de los datos de domino espacial en dominio de frecuencia (es decir, espectro). Para cuadros de video basados en bloques, el transformador de frecuencia (360) aplica una transformación descrita en las siguientes secciones que tiene propiedades similares con la transformación de coseno discreta ["DCT"]. En modalidades alternativas, el transformador de frecuencia (360) aplica una transformación de frecuencia a bloques de residuales de la predicción espacial para los cuadros clave. El transformador de frecuencia (360) puede aplicar una transformación de frecuencia de tamaño 8 x 8, 8 x 4, 4 x 8, u otro tamaño. Un cuantifícador (370) entonces subdivide en cantidades que se pueden medir los bloques de los coeficientes de datos de espectro. El cuantifícador aplica una cuantificación uniforme, escalar a los datos del espectro con un paso de tamaño que varía sobre bases de cuadro a cuadro u otras bases. Alternativamente, el cuantifícador aplica otro tipo de cuantificación a los coeficientes de los datos del espectro, por ejemplo un vector no uniforme o cuantificación adaptable, o directamente cuantifica los datos del dominio espacial en un sistema de codificador que no utiliza las transformaciones de frecuencia. Además de la cuantificación adaptable, el codificador (300) puede utilizar la declinación de cuadros, la filtración adaptable, u otras técnicas para el control de la velocidad . Cuando un cuadro actual reconstruido es necesario para una subsiguiente estimación/compensación del movimiento, un cuantifícador inverso (376) lleva a cabo la cuantificación inversa sobre los coeficientes de los datos de espectro subdivididos en cantidades que se pueden medir. Un transformador de frecuencia inverso (366) entonces lleva a cabo la inversa de las operaciones del transformador de frecuencia (360), produciendo un residual de pronóstico reconstruido (para un cuadro pronosticado) o un cuadro clave reconstruido. Si el cuadro actual (305) fue un cuadro clave, el cuadro clave reconstruido es tomado como el cuadro actual reconstruido (no mostrado). Si el cuadro actual (305) fue un cuadro pronosticado, el residual de la predicción reconstruida se agrega al cuadro actual de movimiento compensado (335) para formar el cuadro actual reconstruido. El almacén de cuadros (320) guarda en memoria el cuadro actual reconstruido para uso en la predicción del siguiente cuadro. En algunas modalidades, el codificador aplica un filtro de desbloqueo a cuadro reconstruido para adaptablemente compensar las discontinuidades en los bloques del cuadro. El codificador de entropía (380) comprime la salida del cuantificador (370) así como cierta información secundaria (por ejemplo, información del movimiento (315), cuantif icación del paso de tamaño). Las técnicas de codificación de entropía incluyen la codificación aritmética, la codificación diferencial, la codificación de Fuman, la codificación de longitud en operación, la codificación LZ, la codificación de diccionario, y combinaciones de las anteriores. El codificador de entropía (380) típicamente utiliza diferentes técnicas de codificación para diferentes clases de información (por ejemplo, coeficientes DC, coeficientes AC, diferentes clases de información secundaria), y puede seleccionar de entre múltiples cuadros de códigos dentro de una técnica de codificación particular. El codificador de entropía (380) pone la información de video comprimida (395) en la memoria intermedia (390). Un indicador del nivel de memoria intermedia es retroalimentado para los módulos adaptables de velocidad binaria. La información de video comprimida (395) se reduce de la memoria intermedia (390) a una velocidad binaria constante o relativamente constante y se almacena para la subsiguiente transmisión ininterrumpida a esa velocidad binaria. Alternativamente, el sistema codificador (300) transmite la información de video inmediatamente después de la compresión. Antes o después del guardado en memoria (390), la información de video comprimida (395) puede ser codificada en el canal para la transmisión a través de la red. La codificación del canal puede aplicar la detección de error y los datos de corrección a la información de video comprimida (395). B. Descodif icador de Video La Figura 4 es un diagrama de bloque de un sistema descodificador de video (400). El sistema descodificador (400) recibe la información (495) para una secuencia comprimida de cuadros de video'y produce la salida incluyendo un cuadro reconstruido (405). Las modalidades particulares de descodificadores de video típicamente utilizan una variación o versión complementaria del descodificador generalizado (400). El sistema de descodificador (400) descomprime los cuadros pronosticados y los cuadros clave. Por el bien de la presentación, la Figura 4 muestra una trayectoria de los cuadros clave a través del sistema descodif icador (400) y una trayectoria de los cuadros pronosticados hacia delante. Muchos de los componentes del sistema descodificador (400) se utilizan para comprimir ambos, los cuadros clave y los cuadros pronosticados. Las operaciones exactas llevadas a cabo por esos componentes pueden variar dependiendo del tipo de información que se está comprimiendo. Una memoria intermedia (490) recibe la información (495) para la secuencia de video comprimida y hace la información recibida disponible para el descodificador de entropía (480). La memoria intermedia (490) típicamente recibe la información a una velocidad que es bastante constante a través del tiempo, e incluye una memoria intermedia con pequeñas variaciones rápidas para compensar las variaciones a corto plazo en el ancho de banda o transmisión. La memoria intermedia (490) puede incluir una memoria intermedia de reproducción y otras memorias intermedias también. Alternativamente, la memoria intermedia (490) recibe la información a una velocidad variable. Antes o después de la memoria intermedia (490), la información de video comprimida puede codificarse en el canal y procesarse para la detección y corrección de errores. El descodificador de entropía (480) descodificad los datos cuantif icados codificados de entropía así como la información secundaria codificada en entropía (por ejemplo, información del movimiento, el tamaño del paso de cuantificación), típicamente aplicando la inversa de la codificación de entropía realizado en el codificador. Las técnicas de descodifícación de entropía incluyen descodificación aritmética, descodificación diferencial, descodificación de Huffman, descodificación de longitud de corrida, descodificación LZ, descodificación de diccionario, y combinaciones de las anteriores. El descodificador de entropía (480) frecuentemente utilice diferentes técnicas de descodificación para diferentes clases de información, (por ejemplo, coeficientes DC, coeficientes AC, diferentes clases de información secundaria), y puede seleccionarse de entre diferentes cuadros de códigos dentro de una técnica de descodificación particular. Si el cuadro (405) que se va a reconstruir es un cuadro pronosticado hacia adelante, un compensador de movimiento (430) aplica la información de movimiento (415) a un cuadro de referencia (425) para formar una predicción (435) del cuadro (405) que se está reconstruyendo. Por ejemplo, el compensador de movimiento (430) utilice un vector de movimiento de macrobloque para encontrar un macrobloque en el cuadro de referencia (425). Una memoria intermedia de cuadro (420) almacena los cuadros previos reconstruidos para uso como cuadros de referencia. Alternativamente, un compensador de movimiento aplica otro tipo de compensación de movimiento. La predicción a través del compensador de movimiento es raramente perfecta, por lo que el descodificador (400) también reconstruye residuales de predicción. Cuando el descodificador necesita un cuadro reconstruido para la subsiguiente compensación del movimiento, el almacén de cuadros (420) guarda en memoria intermedia el cuadro reconstruido para uso en el siguiente cuadro pronosticado. En algunas modalidades, el codificador aplica un filtro de desbloqueo al cuadro reconstruido para de manera adaptable compensar las discontinuidades en los bloques del cuadro. Un cuantif icador inverso (470) cuantifica los datos descodificados por entropía. En general, el cuantificador inverso aplica la cuantificación inversa escalar, uniforme a los datos descodificados por entropía con un tamaño de paso que varía sobre bases de cuadro por cuadro u otras bases. Alternativamente, el cuantificador inverso aplica otro tipo de cuantificación inversa a los datos, por ejemplo, un vector no uniforme, o cuantificación adaptable, o directamente los datos de dominio espacial cuantificados inversos en un sistema descodificador que no utiliza" transformaciones de frecuencia inversa. Un transformador de frecuencia inverso (460) convierte los datos de dominio de frecuencia en información de video de domino espacial. Para cuadros de video basados en bloques, el transformador de frecuencia inversa (460) aplica una transformación inversa descrita en las siguientes secciones. En algunas modalidades, el transformador de frecuencia inversa (460) aplica una transformación de frecuencia inversa a los bloques de los residuales de predicción espacial para los cuadros clave. El transformador de frecuencia inverso (460) puede aplicar transformaciones de frecuencia inversas de 8x8, 8x4, 4x8, u otros tamaños. 2, Transformación Plegada Condicional Con referencia otra vez a la Figura 2, las etapas de filtro del pre-proceso o post-proceso 210, 220 se aplican a todos (os bordes de los bloques adyacentes de una imagen cuando la transformación plegada de domino espacial típica anterior se realiza sobre la imagen a través de un codificador/descodificador 200. Una imagen de tamaño de MxN píxeles, codificada utilizando bloques de 8x8, tiene bordes casi distintos de M*N/32 entre los bloques de 8x8 adyacentes para su canal de luminancia solo. Cuando el codificador/descodificador 200 de la técnica anterior aplica la transformación plegada de dominio espacial a una imagen, las etapas de filtro 210,220 se aplican a cada uno los bordes de estos bloques adyacentes de la imagen. A. Señalización en Modo de Traslape Por Borde de Bloque Adyacente En una primera implementación de la transformación plegada condicional mostrada en la Figura 5, el codificador envía un símbolo distinto (símbolo en el modo de traslape 510) correspondiente a cada borde de bloque adyacente, definiendo la elección del filtro de traslape (Mn) 520-522 (el cual puede ser un filtro de pasar a través de, es decir, no se está aplicando ningún filtro), como se muestra en la Figura 5 para el codificador. En el codificador, la elección de filtro se puede hacer con base en varios criterios, incluyendo si cualquier resultado del filtro está fuera de rango, una prueba de finura, un criterio de optimización del grado de distorsión, y combinaciones de estos criterios, entre otros. Este cambio es referido como el "modo" de filtro de traslape, y el modo determina una "condición" bajo la cual se aplican el pre- y post-filtro. La Figura 5 muestra un parámetro del modo de traslape que determina la configuración del cambio, siendo enviada a cada borde de bloque que se está filtrando.
Una desventaja de permitir que cada pre y post-filtro sea independientemente marcado con banderas es el incremento en la información adjuntada asociados con el modo de filtrado. Por ejemplo, asumir que un video de tamaño 320x240 está siendo codificado a 30 f/s. Además, asumir que un l-cuadro (cuadro intra-codificado) se envía cada segundo. De esta forma hay alrededor de 3600 bordes de intra bloques de 8x8 en el video cada segundo. (Este número es aproximado, ya que algunos bloques pueden estar en los límites de la imagen, y de esta forma no son bordes de bloque adyacentes). Aún cuando se envía un símbolo de modo de traslape de bit individual (información adjuntada de 1 bit) para cada borde, esto da como resultado una tasa de bit en exceso de 3.6 kbps en la corriente de bits codificada (información de video comprimida 195 de la Figura 3), la cual no es insignificante. B. Señalización en el Modo de Traslape Basada en Velocidad de Bits y Por Bloque En otra implementación de ejemplo, el códec logra una información adjunta menor para la señalización del modo de traslape utilizando un esquema de señalización que está basado en la velocidad de bits de codificación, y utiliza un símbolo del modo de traslape por bloque. Este esquema de señalización utiliza los siguientes elementos de sintaxis: un parámetro de cuantificación a nivel de cuadro (QP), una bandera de traslape a nivel de cuadro, y una bandera en el modo de traslape a nivel de macrobloque. En los codees utilizando otra sintaxis de codificación de video, el modo de la transformación plegada condicional para bordes de bloque individuales, o grupos de bordes de bloque, se pueden utilizar utilizando otros esquemas de sintaxis y elementos. Por ejemplo, se puede utilizar otro elemento de sintaxis relacionado con la velocidad de bits de la codificación o cuantificación del cuadro. Con referencia a las Figuras 6 y 7, la corriente de bits del video comprimido 195 (Figura 3) incluye información para una secuencia de cuadros de video progresivos comprimidos u otras fotografías. La corriente de bits se organiza dentro de varias capas jerárquicas que están descodificadas a través de un descodificador tal como el descodificador (400) de la Figura 4. La capa más alta es la capa de la secuencia, la cual tiene información para las secuencias globales de los cuadros. Adicionalmente, cada cuadro de video comprimido se forma de datos que están estructurados dentro de las tres capas jerárquicas. De la capa superior a la inferior están: la fotografía, el macro boque y el bloque. La Figura 6 es un diagrama de sintaxis para la capa de la secuencia 600, que incluye un encabezado de secuencia 610 seguido por datos para la capa particular (Ver Figura 7). El encabezado de la secuencia incluye varios elementos a nivel de secuencia que son procesados a través del descodificador y se utilizan para descodificar la secuencia, incluyendo la cuantificación del macrobloque (DQUANT) 620, el elemento del especificador del cuantificador (CUANTIFICADOR) 630, y el elemento de la bandera de la transformación traslapada (TRASLAPE) 640. DCUANT 620 es un campo de 2 bits que indica si el tamaño del paso de cuantificación puede o no puede variar dentro de un cuadro. Existen tres valores posibles para DCUANT. Si DCUANT = 0, entonces solamente el tamaño de paso de cuantificación uno (es decir, el tamaño del paso de cuantificación del cuadro) se puede utilizar por cuadro. Si DCUANT = 1 o 2, entonces es posible cuantificar cada uno de los macrobloques en el cuadro de forma diferente. El CUANTIFICADOR 630 es un campo del código de longitud fija de 2 bits ["FLC"] que indica el cuantificador utilizado para la secuencia. Los tipos de cuantificador se codifican de acuerdo con el siguiente Cuadro 1.
CUADRO 1 Especificación del Cuantif ¡cador Bandera de la Transformación Traslapada (TRASLAPE) (1 bit) El TRASLAPE 640 es una bandera de 1 bit que indica si se utilizan las transformaciones traslapadas, como se discute más adelante. Si TRASLAPE = 1, entonces se utilizan las transformaciones traslapadas, de lo contrario no se utilizan. La Figura 7 es diagrama de la sintaxis para la capa de la fotografía 700 para un cuadro intra-codificado entrelazado ["entrelace l-cuadro"]. Los diagramas de sintaxis para otras fotografías, tales como los l-cuadros progresivos, P-fotog rafias y B-macros tienen similares elementos de sintaxis. La fotografía 700 incluye un encabezado de fotografía 710 seguido por los datos de la capa del macrobloque. El encabezado de la fotografía 710 incluye varios elementos a nivel de fotografía que son procesados a través del descodificador y utilizados para descodificar el cuadro correspondiente. Algunos de estos elementos solamente están presentes si su presencia se indica o implica mediante un elemento a nivel de secuencia o un elemento a nivel de fotografía precedente. En la sintaxis de corriente de bits ilustrada, el parámetro de cuantificación a nivel de cuadro (QP) está en la forma de una escala del cuantificador de la fotografía (PCUANT), que puede ser indicado implícitamente o explícitamente en la sintaxis de la capa de la fotografía, según especificado por el elemento de la sintaxis a nivel de secuencia, el CUANTIFICADOR descrito anteriormente. En cualquier caso, la escala del cuantificador de la fotografía (PCUANT) se traducido de un elemento del índice cuantificador de la fotografía (PCINDICE) 720. PCINDICE 720 es un campo de 5 bits que indica el índice de la escala del cuantificador para el cuadro completo. Está presente en todos los tipos de fotografías. Si se utiliza el cuantificador implícito entonces PCINDICE especifica ambos, la escala del cuantificador de la fotografía (PCUANT) y el cuantificador ((3QP o 5QP de zona muerta) utilizados para el cuadro. El Cuadro 2 muestra cómo PCINDICE se traduce a PCUANT y el cuantificador para el modo implícito.
CUADRO 2 PCINDICE para la Traducción de PCUANT/Zona Muerta del Cuantificador (Cuantificador Implícito) Si el cuantificador está explícitamente indicado en la secuencia o nivel de cuadro, entonces PCINDICE se traduce al tamaño del paso del cuantificador de la fotografía como se indica en el Cuadro 3.
CUADRO 3 Traducción de PCINDICE a PCUANT (Cuantifícador Explícito) Alternativamente, en lugar de la traducción mostrada en el Cuadro 3, PCUANT es igual a PCINDICE para todos los valores de PCINDICE del 1 al 31 cuando el cuantifícador se indica explícitamente en la secuencia o nivel de cuadro. El encabezado de la fotografía además incluye un elemento bandera del traslape condicional (CONDSOBRE) 730 y el elemento de las banderas del patrón del macrobloque de traslape condicional (SOBRE BANDERAS) 740. Este elemento de Bandera de Traslape Condicional está presente solamente en las fotografías I, y solamente cuando TRASLAPE está activado y PCUANT está dentro de un cierto rango, como se discute más adelante. El elemento de sintaxis SOBREBANDERAS está presente solamente en fotografías 1, y solamente cuando CONDSOBRE tiene el valor binario 11. SOBREBANDERAS se codifica como un plano de bits, el cual en modo original requiere que cada macrobloque llevé su información local, SOBREBANDERAMB. Reglas del Modo de Traslape En esta segunda implementación de ejemplo de la transformación plegada condicional, el codificador (Figura 5) limita la información colocando algunas restricciones en la bandera del modo de traslape en intra-cuadros, como se lista a continuación: 1. El modo de traslape se configura como siendo una cantidad binaria. El valor FALSO indica que el filtrado del traslape no está aplicado (es decir, los pre y post-filtros se pasan a través de filtros) y VERDADERO indica que las etapas de filtración del traslape se aplican como se define para la transformación plegada del dominio espacial en la Solicitud de Patente SDLCT Mejoradas referenciada anteriormente. En otras implementaciones, el número de modos de filtro de traslape pueden ser más grande como se ¡lustra en la Figura 5, con el costo de información adicional por macrobloque. 2. Para ciertos valores de un parámetro de cuantificación basado en cuadro (QP) (por ejemplo, la escala de cuantificador de fotografía (PCUANT) determinado a partir del Cuadro 2 o 3) mayor que un umbral de cuantificación (QTH) o QP > QTH (es decir, de velocidades binarias bajas a muy bajas), la condición del traslape se configura como VERDADERA para todos los bordes entre los bloques. En la implementación ilustrada, se utiliza un umbral de cuantificación de 8, pero en ¡mplementaciones alternativas se puede utilizar un umbral de cuantificación diferente. 3. De lo contrario, para un cierto cuadro basado en los valores del parámetro de cuantificación QP < QTH (es decir, de velocidades binarias de alta a muy altas), cada macrobloque intra en un cuadro está asociado con una bandera del modo de traslape binario. Las reglas de filtro del traslape asociadas con esta bandera se enumeran más adelante. Para intra-bloques y macrobloques en cuadros codificados de forma predictiva (P-cuadros), el modo de traslape implícitamente se deriva del parámetro de cuantificación (QP) solo. Esto es razonable, ya que los cuadros P permiten un grado más alto de libertad en la elección del modo de codificación que como lo hacen los cuadros I. Como se muestra en el diagrama de flujo de la Figura 8, la bandera en el modo de traslape se codifica y descodifica en esta segunda implementación como sigue: 1. No se envía ningún modo de traslape, y no se realiza ningún traslape (850) si la bandera del traslape a nivel de secuencia (TRASLAPE 640 en la Figura 6) en el primer bloque de decisión 810 está configurada como FALSA. 2. La bandera en el modo de traslape es implícitamente VERDADERA cuando QP>QTH en el bloque de decisión 820, y la bandera del traslape a nivel de secuencia (TARSLAPE 640) es VERDADERA en el bloque de decisión 810. En este caso, el traslape se realiza para todos los bordes de bloque adyacentes en la fotografía (870). 3. Cuando QP<QTH en el bloque de decisión 820, una bandera a nivel de cuadro (CONDSOBRE 730 en la Figura 7) indica que se envía una de tres posibilidades ((a, b o c), y las operaciones se llevan a cabo como se indica: a. Ningún traslape para el cuadro (850) b. Todos los macrobloques traslapados en el cuadro (870) c. "Traslape condicional" por bandera en el modo de traslape de macrobloque (SOBREBANDERAS 740 en la Figura 7) enviado (860). Esto se divide en dos decisiones binarias en el diagrama de flujo para facilitar el entendimiento. 4. Cuando se indica el traslape condicional, la bandera en el modo de traslape es una bandera binaria que se envía para cada intra macrobloque en un intra cuadro (es decir, el elemento de sintaxis SOBREBANDERAS) Traslape Condicional Ya que el modo de traslape está indicado por el macrobloque, se hace referencia a múltiples bordes por cada bandera de traslape condicional. En la implementación ilustrada, el tamaño del macrobloque es de 16x16 píxeles (para el canal de luminancia), y el tamaño del bloque de transformación es de 8x8 píxeles. El canal de colorido tiene la mitad de ía resoíución espacial para un tamaño de bloque de 8x8. Por consiguiente, los bordes pueden ser internos a un macrobloque (es decir, los bordes entre cada uno de los bloques de la transformación en un macrobloque para el canal de luminancia), o montando dos macrobloques (por alrededor de la mitad de lo bordes del canal de luminancia, y todos los bordes del canal de colorido). Como se ilustra a través del ejemplo de las banderas del modo de traslape indicadas para los macrobloques ilustrados en la figura 9, se enumeran a continuación las reglas para determinar si aplicar o no aplicar el pre/post filtro a un borde: 1. No se aplica ningún pre o post-filtro a los bordes internos de macrobloque de un macrobloque cuya bandera del modo de traslape es FALSO, o un macrobloque que no está intra-codificado. 2. Todos los bordes de los intra bloques de 8x8 están pre/post-filtrados si el macrobloque está intra codificado, y la bandera del modo de traslape correspondiente es VERDADERO. 3. Los bordes del bloque de 8x8 montados sobre dos macrobloques se filtran solamente si a. Los dos bordes de los bloques de 8x8 son intra bloques, y b. Ambas banderas del modo de traslape de los dos macrobloques son VERDADERAS. Indicación del Modo de Traslape Todos los macrobloques de los intra cuadros en esta segunda implementación ilustrada de la transformación plegada condicional son intra. Ya que el modo de traslape se envía con base al parámetro de cuantificaclón a nivel de cuadro QP, la bandera del modo de traslape se envía ya sea para todos los macrobloques, o para ningún macrobloque. Cuando se envían para todos los macrobloques, las banderas en el modo de traslape constituyen un plano de bits de tamaño (M/16)*(N/16) para una imagen MxN (M, N se asumen como siendo múltiplos de 16). La implementación de la transformación plegada condicional utiliza un mecanismo de codificación eficiente (llamado codificación de "plano de bits", descrito más adelante) para enviar las banderas del modo de traslape por macrobloque. Esto se basa en suposición de que la representación del plano de bits de las banderas en el modo de traslape tiene un alto grado de correlación espacial, es decir, los bits adyacentes en la dirección vertical u horizontal son se evalúan igual que una alta probabilidad. Está suposición se encuentra como verdadera para la bandera del traslape, es razonable esperar que para imágenes y video del mundo real, hay suficiente continuidad espacial que es aparente en las banderas en el modo de traslape también. El mecanismo de codificación del plano de bits (descrito más completamente más adelante) se utiliza para codificar la señalización del modo de traslape para intra cuadros. Las banderas del modo de traslape para el cuadro completo se codifican enlazadas al nivel del cuadro utilizando uno de una colección de cuadros de mosaicos y códigos, excepto para el caso en donde están codificadas "originales" como un bit por macrobloque enviado junto con el encabezado del macrobloque. Codificación de Plano de Bits En la codificación del plano de bits, la información binaria específica del macrobloque tales como las banderas de traslape condicionales por macrobloque, pueden ser codificadas en un símbolo binario por macrobloque. En estos casos, el estado de todos los macrobloques en un campo o cuadro se puede codificar como un plano de bits y transmitirse en el campo o el encabezado del cuadro. Una excepción para esta regla es si el modo de codificación del plano de bits está configurado como Modo Original, en cuyo cayo el estado de cada macrobloque se codifica como un bit por símbolo y se transmite junto con otros elementos de sintaxis a nivel del macrobloque. La codificación del plano de bits a nivel de campo/cuadro se utiliza para codificar los arreglos binarios bidimensiónales. El tamaño de cada arreglo es filaMB x colMB, en donde filaMB y colMB son el número de filas y columnas el macrobloque, respectivamente, en el campo o cuadro en cuestión. Dentro de la corriente de bits, cada arreglo está codificado como un grupo de bits consecutivos. Uno de los siete modos se utiliza para codificar cada arreglo. Los siete modos son: 1. Información codificada en el modo original como un bit por símbolo y transmitida como parte de la sintaxis a nivel MB; 2. dos símbolos codificados conjuntamente en el modo normal 2; 3. codificación diferencial en el modo 2 diferencial del plano de bits, seguido por codificación de dos símbolos residuales conjuntamente; 4. Seis símbolos codificados conjuntamente en el modo normal 6; 5. Codificación diferencial en el modo diferencial 6 del plano de bits, seguido por la codificación de 6 símbolos residuales conjuntamente; 6. Modo de salto de fila- salto de un bit para indicar las filas sin bits establecidos; 7. modo de salto de columnas- salto de un bit para indicar columnas sin bits establecidos; La sintaxis de los elementos para un plano de bits al nivel del campo o del cuadro está en la siguiente secuencia: INVERTIR, IMODO y DATABITS.
Bandera Invertir (INVERTIR) El elemento de la sintaxis INVERTIR es un valor de 1 bit, el cual si se establece indica que el plano de bits tiene más bits establecidos que cero bits. Dependiendo de INVERTIR y el modo, el descodificador deberá invertir el plano de bits interpretado para recrear el original. Observar que el valor de este bit deberá ser ignorado cuando se utiliza el modo original. La descripción de cómo el valor INVERTIR se utiliza en la descodificación del plano de bits es provee a continuación.
Modo de Codificación (¡MODO) El elemento de sintaxis es un valor de longitud variable que indica el modo de codificación utilizado para codificar el plano de bits. El cuadro 4 muestra el cuadro de códigos utilizados para codificar el elemento de sintaxis IMODO. La descripción de cómo el valor IMODO se utiliza en la descodificación del plano de bits se provee a continuación.
CUADRO 4 Cuadro de Códiqos VLC de IMODO Bits de Codificación de Plano de Bits (DATOSBITS) El elemento de la sintaxis de DATOSBITS es el elemento de la sintaxis variable en tamaño que codifica la corriente de símbolos para el plano de bits. El método utilizado para codificar el plano de bits se determina a través del valor de IMODO. Los modos de siete codificaciones se describen en las siguientes secciones.
Modo Original En este modo, el plano de bits se codifica como un bit por símbolo explorado en orden de exploración de área rectangular de los macrobloques, y se envía como parte de la capa del macrobloque. Alternativamente, la información se codifica en el modo original en el nivel del campo o cuadro y DATOSBITS es de filaMB x col B bits en longitud.
Modo Normal-2 Si fila MB x colMB es impar, el primer símbolo se codifica original. Los símbolos subsecuentes se codifican en pares, en un orden de exploración natural. El cuadro VLC binario en el Cuadro 5 se utiliza para codificar pares de símbolos.
CUADRO 5 Cuadro de Código Norm-2/D¡f-2 Modo Dif-2 El método NormaI-2 se utiliza para producir el plano de bits como se describió anteriormente, y después la operación Dif" se aplica al plano de bits como se describe a continuación.
Modo Normal-6 En los modos Normal-6 y Dif-6, el plano de bits se codifica en grupos de seis píxeles. Estos píxeles se agrupan dentro mosaicos ya sea de 2x3 o de 3x2. El plano de bits se coloca en mosaicos en grado máximo utilizando un grupo de reglas, y los píxeles restantes se codifican utilizando un variante de los modos saltar-columna y saltar-fila. Se utilizan mosaicos "verticales" de 2x3 si y solamente si filaMB es un múltiplo de 3 y col B no lo es. De lo contrario, se utilizan mosaicos "horizontales" de 3x2. Para un plano en mosaicos con mosaicos lineales a lo largo de los bordes superiores y de la izquierda de la fotografía, el orden de la codificación sigue el siguiente patrón. Los mosaicos de 6 elementos se codifican primero, seguidos por los mosaicos lineales de saltar-columna y saltar-fila. Si el tamaño del arreglo es un múltiplo de 2x3 o de 3x2, los últimos mosaicos lineales no existen y el plano de bits está perfectamente en mosaicos. Los mosaicos rectangulares de 6 elementos se codifican utilizando un código de prefijo incompleto, es decir, un código de prefijo que no utiliza todos los nodos extremos para la codificación. Dejar que N sea el número de grupos de bits en el mosaico, es decir, 0 £ N <6. Para N<3, se utiliza un VLC para codificar el mosaico. Para N = 3, un escape de longitud fija es seguido por un código de longitud fija de 5 bits, y para N>3, un escape de longitud fija es seguido por el código del complemento del mosaico. El mosaico rectangular de 6 bits contiene información. Dejar que k sea el código asociado con el mosaico, en donde k=b¡2', b¡ es el valor binario del bit iavo en el orden de exploración natural dentro del mosaico. Por lo tanto 0 <k < 64. Una combinación de códigos VLC y de escape más códigos de longitud fija se utilizan para indicar k.
Modo Dif-6 El método Normal-6 se utiliza para producir el plano de bits como se describe anteriormente, y después se aplica la operación Diff"1 al plano de bits como se describe más adelante.
Modo de salto de fila En el modo de codificación de salto de fila, todas las filas con cero se saltan con una información de un bit. La sintaxis es como sigue: para cada fila, un solo bit FILASALTAR indica su una fila está saltada; si la fila está saltada, el bit FILASALTAR para la siguiente fila es siguiente; de lo contrario (la fila no está saltada), los bits FILASALTAR (un bit por cada macrobíoque en la fila) están después. De esta, forma si la fila completa es cero, un bit cero se envía como el símbolo FILASALTAR, y FILABITS se salta. Si hay un grupo de bits en la fila, FILASALTAR se establece como 1, y la fila completa es enviada original (FILABITS). Las filas se exploran desde la parte superior a la inferior en el campo o cuadro.
Modo de saltar columna Columnasaltar es el traslado de filasaltar. Las columnas se exploran de la izquierda a la derecha del campo o cuadro.
Dif-1 ::descodificación diferencial inversa Si se utilizan cualquier modo diferencial ((Dif-2 o Dif-6), primero se descodifica un plano de bits de "bits diferenciales" utilizando los modos normales correspondientes (Norm-2 o Norm-6 respectivamente). Los bits diferenciales se utilizan para regenerar el plano de bits original. El proceso de regeneración es un DPCM 2-D en un alfabeto binario. Con el fin de regenerar el bit en el lugar (i,j}, el indicador bp (i, j) se genera como sigue (de bits b (i, j) en la posiciones (i, j)): A i= J = 0, or b(i, j-V)? b(i - 1, j) 6(0, *=0 b(i — l, j) de otro modo Para el modo de codificación diferencial, el proceso de inversión a nivel de bits basado en INVERTIR no se lleva a cabo. Sin embargo, la bandera INVERTIR se utiliza en una capacidad diferente para indicar el valor del símbolo A para la derivación del indicador mostrado anteriormente. Más específicamente, A es igual a 0 si INVERTIR es igual a 0 y A es igual a 1 si INVERTIR es igual a 1. El valor actual del plano de bits se obtiene a través xor'ando el indicador con el valor del bit diferencial descodificado. En la ecuación anterior, b(ij) es el bit en la posición ijava después de la descodificación final (es decir, después de hacer Norm-2/Norm-6, seguido por la diferencial xor con este indicador).
Ejemplo de Filtro de Traslape En un ejemplo del modo de filtro de traslape utilizado en la segunda implementación de la transformación plegada condicional, la remoción de las irregularidades del traslape se lleva a cabo en la reconstrucción de 16 bits no sujetada del descodificador cuando se indica. Esto es necesario porque el proceso de envío asociado con la remoción de las irregularidades del traslape puede dar como resultado en la expansión del rango mas allá del rango de 9 bits permitido para valores del píxel. El resultado de la remoción de las irregularidades del traslape se sujeta a 9 bits, en línea con el restantes de los píxeles no tocados por la remoción de las irregularidades del traslape. Los bordes verticales (píxeles aO, a1, b1, bO en el ejemplo anterior) se filtran primero, seguido por los bordes horizontales (píxeles pO, p1, q1, qO). El resultado intermedio después de la primera etapa de filtrado (remoción de irregularidades del borde vertical) se almacena en 16 bits. Los filtros núcleo aplicados a los cuatro píxeles montados en cualquier borde se dan a continuación: Los píxeles originales que se están filtrando son (xO, x1, x2, x3). rO y r1 son parámetros de redondeo, que tomar los valores alternativos de 3 y 4 para asegurar el redondeo estadísticamente imparcial. Los valores originales se filtran a través de la matriz con entradas que son claramente fáciles de implementar. A estos valores, después de agregar los factores de redondeo, les intercambian los bits mediante tres bits para dar la salida filtrada (yO, y1, y2, y3). Para ambos, los filtros de borde horizontal y vertical, los valores de redondeo son r0=4, r1=3 para columnas indexadas impares. El filtrado se define como una operación de 16 bits en el lugar, de esta forma los píxeles originales se sobre escriben después de la remoción de las irregularidades. Para el filtrado del borde vertical, los píxeles (aO, a1, b1, bO) corresponden a (xO, x1, x2, x3), los cuales a su vez se filtran a (yO, y 1 , y2, y3). Igualmente, para el filtrado del borde horizontal, la correspondencia es con (pO, p1, q1, qO) respectivamente. Los píxeles en la esquina de 2x2 de un bloque, se filtran en ambas direcciones. El orden del filtrado determina sus valores finales, y por consiguiente es importante mantener el filtrado de los bordes en el orden vertical seguido por el filtrado del borde horizontal para la precisión de los bits. Conceptualmente, la sujeción se va a realizar subsiguiente a las dos etapas de filtración direccionales, en todos los píxeles que se filtran. Sin embargo, puede haber alguna desventaja computacional para combinar la sujeción con el filtrado, esto es un aspecto de la implementación mientras se hace cuidadosamente para generar la salida correcta. 3. Entorno de Computación Las implementaciones anteriormente descritas de la transformación plegada condicional se pueden llevar a cabo en cualquiera de una variedad de dispositivos en donde el procesamiento de la señal de la imagen y del video se llevan a cabo, incluyendo entre otros ejemplos, computadoras; la grabación de imagen y video, equipo para la transmisión y recepción; reproductores de video portátiles; conferencias de video; aplicaciones de transmisión ininterrumpida de video Web; etc. Las técnicas de codificación de imagen y video se pueden implementar en circuitos de hardware (es decir, circuitos de un ASIC, FPGA, etc.), así como en software para el procesamiento de imagen y video ejecutándose dentro de una computadora u otro entorno de computación (ya sea ejecutado en la unidad de procesamiento central (CPU), o un procesador de gráficos dedicado, tarjeta de video o similar), tal como se muestra en la Figura 10. La Figura 10 ilustra un ejemplo generalizado de un entorno de computación adecuado (1000) en el cual se puede implementar la transformación plegada condicional descrita. El entorno de computación (1000) no pretende sugerir ninguna limitación al alcance de uso o funcionalidad de la invención, ya que la presente invención se puede implementar en diversos entornos de computación de propósito general o propósito especial. Con referencia a la Figura 10, el entorno de computación (1000) incluye por lo menos una unidad de procesamiento (1010) y una memoria (1020). En la Figura 10, esta configuración más básica (1030) se incluye dentro de una línea punteada. La unidad de procesamiento (1010) ejecuta instrucciones ejecutables por computadora y puede ser un procesador real o virtual. En un sistema de multi-procesamiento, las unidades de multi-procesamiento ejecutan instrucciones ejecutables por computadora para incrementar el poder del procesamiento. La memoria (1020) puede ser volátil (por ejemplo, registros, memoria caché, RAM), memoria no volátil (por ejemplo ROM, EEPRO , memoria no volátil, etc.) o alguna combinación de las dos. La memoria (1020) almacena software (1080) implementando la transformación plegada condicional descrita. Un entorno de computación puede tener características adicionales. Por ejemplo, el entorno de computación (1000) incluye almacenamiento (1040), uno o más dispositivos de entrada (1050), uno o más dispositivos de salida (1060), y una o más conexiones de comunicación (1070). Un mecanismo de interconexión (no mostrado) tal como un conductor común, controlador o red interconecta los componentes del entorno de computación (1000). Típicamente, el software del sistema operativo (no mostrado) provee un entorno operativo para otro software que se ejecuta en el entorno de computación (1000), y coordina las actividades de los componentes del entorno de computación (1000). El almacenamiento (1040) puede ser removióle o no removible, e Incluye discos magnéticos, cintas magnéticas o casetes, CD-ROMs, CD-RWs, DVDs, o cualquier otro medio que pueda ser utilizado para almacenar información y que puede ser accedido dentro del entorno de computación (1000). El almacenamiento (1040) instrucciones para el software (1080) implementando el codificador de audio que genera comprime las matrices de cuantificación. El dispositivo(s) de entrada (1050) puede ser un dispositivo de entrada sensible al tacto tal como un teclado, ratón, pluma, segulbola, un dispositivo de entrada de voz, un dispositivo de exploración, u otro dispositivo que provee la captura al entorno de computación (1000). Para el audio el dispositivo(s) de entrada (1050) puede ser una tarjeta de sonido o dispositivo similar que acepta entradas de audio en una forma análoga o digital, o un lector de CD-ROM que provee muestras de audio para el entorno de computación. El dispositivo(s) de salida (1060) puede ser una pantalla, impresora, bocinas, lector de CD, u otro dispositivo que provee la salida del entorno de computación (1000). La conexión(es) de comunicación (1070) habilitan la comunicación a través de un medio de comunicación a otra entidad de computación. El medio de comunicación transmite la información tales como instrucciones ejecutables por computadora, información de video o audio comprimida, u otros datos en una señal de datos modulada. Una señal de datos modulada tiene una o más de sus características establecidas o cambiadas en tal forma que codifican la información en la señal. A manera de ejemplo, y no limitación, los medios de comunicación incluyen técnicas cableadas o inalámbricas implementadas con un portador eléctrico, óptico, RF, infrarrojo, acústico u otro portador. Las técnicas para la transformación y codificación/descodificación de la presente se pueden describir en el contexto general de medios legibles por computadora. Los medios legibles por computadora con cualquier medio disponible que puede ser accedido dentro de un entorno de computación. A manera de ejemplo, y no limitación, con el entorno de computación (1000), los medios legibles por computadora incluyen la memoria (1020), el almacenamiento (1040), medios de comunicación, y combinaciones de cualquiera de los anteriores. La transformación plegada condicional de la presente se puede describir en el contexto general de instrucciones ejecutables por computadora, tales como aquellas incluidas en los módulos de programa, siendo ejecutadas en un entorno de computación en un procesador real objetivo o virtual. Generalmente, los módulos de programa incluyen rutinas, programas, colecciones, objetos, clases, componentes, estructuras de datos, etc. que llevan a cabo tareas particulares o implementan tipos de datos abstractos. La funcionalidad de los módulos de programa se puede combinar o dividir entre módulos de programa según se desee en varias modalidades. Las instrucciones ejecutables por computadora para los módulos de programa se pueden ejecutar dentro de un entorno de computación local o distribuida. Por el bien de la presentación, la descripción detallada utiliza términos tales como "determina", "genera", "ajusta" y "aplica" para describir operaciones de computadora en un entorno de computación. Estos términos son abstracciones de alto nivel para operaciones realizadas a través de una computadora, y no deberán confundirse con acciones realizadas por un ser humano. Las operaciones de computadora actuales correspondientes a estos términos varían dependiendo de la implementación. En vista de las muchas posibles modalidades a las cuales se pueden aplicar los principios de la invención, reclamamos como nuestra invención todas dichas modalidades según caen dentro del alcance y espíritu de las siguientes reivindicaciones y equivalentes de la misma.

Claims (20)

REIVINDICACIONES
1. Un método para transformar contenido de medios digitales mediante codificación/descodificación, que comprende: transformar bloques mediante codificación/descodificación del contenido de medios digitales; y condicionalmente aplicar un filtro de traslape a un subgrupo de bordes entre los bloques de la transformación del contenido de medios digitales antes/después de la transformación mediante codificación/descodificación en una base espacialmente variable.
2. El método de acuerdo con la reivindicación 1, en donde la aplicación condicional de un filtro de traslape comprende: intercambiar entre una pluralidad de modos de filtro de traslape aplicados a los bordes de los bloques de transformación adyacentes del contenido de medios en una base espacialmente variable.
3. El método de acuerdo con la reivindicación 1, en donde la pluralidad de modos de filtros de traslape incluye el filtrado no de traslape.
4. El método de acuerdo con la reivindicación 2 que comprende intercambiar el modo de filtro de traslape aplicado a los bordes entre los bloques de transformación adyacentes de los bordes en una secuencia de video con granularidad a nivel de cuadro.
5. El método de acuerdo con la reivindicación 2 que comprende intercambiar el modo de filtro de traslape aplicado a los bordes entre los bloques de transformación adyacentes de los bordes en una secuencia de video con granularidad a nivel de macrobloque.
6. El método de acuerdo con la reivindicación 2 que comprende intercambiar el modo de filtro de traslape aplicado a los bordes entre los bloques de transformación adyacentes de los bordes en una secuencia de video con una granularidad a nivel de1 borde de bloque de la transformación.
7. El método de acuerdo con la reivindicación 2 que comprende: indicar el modo de filtro de traslape a partir del codificador al descodificador del contenido de medios digitales en una base por borde de bloque de transformación adyacente.
8. El método de acuerdo con la reivindicación 2 que comprende: indicar el modo de filtro de traslape del codificador al descodificador del contenido de medios digitales en una base por macrobloque.
9. Un método para descodificar una corriente de bits de video codificada, que comprende: descodificar los datos del bloque de una pluralidad de bloques codificados de un cuadro en la corriente de bits del video codificado; llevar a cabo la des-cuantificación de los datos de bloque codificados; llevar a cabo una transformación inversa de los bloques de la transformación de los datos del boque descodificados; determinar un modo de traslape para grupos de por lo menos un borde del bloque de la transformación adyacente de por lo menos un elemento de la sintaxis de la corriente de bits del video codificado; intercambiar entre filtros de traslape plurales de acuerdo con el modo de traslape determinado para un grupo; y aplicar el filtro de traslape respectivo al grupo.
10. El método de acuerdo con la reivindicación 9, en donde por lo menos un elemento de la sintaxis comprende una bandera del modo de traslape por borde de bloque de transformación adyacente.
11. El método de acuerdo con la reivindicación 9, en donde por lo menos un elemento de la sintaxis comprende un elemento de sintaxis relacionado con una velocidad de bits de la corriente de bits del video codificado.
12. El método de acuerdo con la reivindicación 11, en donde el elemento de la sintaxis relacionado con la velocidad de bits de la corriente de bits del video codificado es un parámetro de cuantificación a nivel de cuadro.
13. El método de acuerdo con la reivindicación 9, en donde el por lo menos un elemento de sintaxis comprende un grupo de banderas del modo de traslape que tiene granularidad de macrobloque.
14. El método de acuerdo con la reivindicación 13, en donde el grupo de banderas del modo de traslape se codifica utilizando la codificación de plano de bits.
15. El método de acuerdo con la reivindicación 9, en donde el por lo menos un elemento de la sintaxis comprende un parámetro de traslape a nivel de cuadro, un parámetro relacionado con la velocidad de bits con base en el cuadro, y un parámetro de modo espacialmente variable, el método además comprende: si el parámetro relacionado con la velocidad de bits relacionada indica una baja velocidad de bits, determina aplicar un filtro de traslape a los bordes del bloque de la transformación adyacentes dentro del cuadro respectivo; de lo contrario si el parámetro de traslape a nivel de cuadro no especifica un traslape, determina no aplicar el filtro de traslape a los bordes del bloque de la transformación adyacente dentro de los cuadros respectivos; de lo contrario, si el parámetro de traslape a nivel de cuadro especifica un traslape condicional, determina aplicar el filtro de traslape especificado por el parámetro del modo espacialmente variable de un grupo a los bordes del bloque de la transformación adyacente dentro del grupo; y de lo contrario, determina aplicar el filtro de traslape a los bordes del bloque de la transformación adyacente dentro del cuadro respectivo.
16. El método de acuerdo con la reivindicación 15, en donde el por lo menos un elemento de la sintaxis comprende además un parámetro de traslape a nivel de secuencias, el método además comprende: si el parámetro del traslape a nivel de secuencia no especifica ningún traslape, determinar no aplicar ningún filtro de traslape a los bordes del boque de transformación adyacentes dentro de todos los cuadros de la secuencia.
17. Por lo menos un programa legible por computadora que lleva medios que tienen un módulo de software en el mismo, que es ejecutable a través de una unidad de procesamiento para realizar un método de codíficación/descodificación de una corriente de video codificada utilizando una transformación plegada condicional, el método comprende: determinar una condición de traslape que tiene por lo menos un estado de no traslape en donde no se aplica ningún filtro de traslape a los bordes del boque adyacente, y un estado de traslape en donde el filtro de traslape se aplica a los bordes del boque adyacente, en donde ia condición de traslape varía espacialmente a través de las fotografías en la secuencia de video; y aplicar el filtro de traslape a los bordes del boque adyacente cuando la condición de traslape está en el estado de traslape.
18. El por lo menos un programa legible por computadora que lleva medios de acuerdo con la reivindicación 17, en donde el método además comprende: restringir la determinación y aplicación del filtro de traslape con base en un parámetro relacionado con la velocidad de bits.
19. El por lo menos un programa legible por computadora que lleva medios de acuerdo con la reivindicación 18, en donde el parámetro relacionado con la velocidad de bits es un parámetro de cuantificación a nivel de cuadro.
20. El por lo menos un programa legible por computadora que lleva medios de acuerdo con la reivindicación 17, en donde la condición de traslape es indicada en la corriente de bits del video a través de una bandera de traslape por macrobloque, y dicha determinación y aplicación además comprenden: aplicar el filtro de traslape a los bordes de los intra bloques de un macrobloque cuya condición de traslape se indica como estando en el estado de traslape; aplicar el filtro de traslape a los bordes del bloque entre los macrobloques adyacentes, ambos cuya condición de traslape está indicada como estando en el estado de traslape.
MXPA06002494A 2003-09-07 2004-09-02 Transformacion plegada condicional. MXPA06002494A (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US50108103P 2003-09-07 2003-09-07
US10/931,885 US7369709B2 (en) 2003-09-07 2004-08-31 Conditional lapped transform
PCT/US2004/028969 WO2005027492A2 (en) 2003-09-07 2004-09-02 Conditional lapped transform

Publications (1)

Publication Number Publication Date
MXPA06002494A true MXPA06002494A (es) 2006-06-20

Family

ID=34228800

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA06002494A MXPA06002494A (es) 2003-09-07 2004-09-02 Transformacion plegada condicional.

Country Status (8)

Country Link
US (1) US7369709B2 (es)
EP (1) EP1661387B1 (es)
JP (1) JP4986622B2 (es)
KR (1) KR101028955B1 (es)
CN (1) CN1998152B (es)
ES (1) ES2773751T3 (es)
MX (1) MXPA06002494A (es)
WO (1) WO2005027492A2 (es)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE352826T1 (de) * 2002-05-02 2007-02-15 Fraunhofer Ges Forschung Arithmetische codierung von transformationskoeffizienten
US7590059B2 (en) * 2004-05-21 2009-09-15 Broadcom Corp. Multistandard video decoder
JP5342777B2 (ja) * 2004-09-29 2013-11-13 トムソン リサーチ ファンディング コーポレイション Rru映像符号化及び復号化方法及び装置
US9118923B2 (en) * 2005-04-27 2015-08-25 Broadcom Corporation Reconstruction and overlap transform system and method supporting VC-1 decoding
US7953161B2 (en) * 2005-04-27 2011-05-31 Broadcom Corporation System and method for overlap transforming and deblocking
US20060288065A1 (en) * 2005-06-17 2006-12-21 Docomo Communications Laboratories Usa, Inc. Method and apparatus for lapped transform coding and decoding
US8625914B2 (en) 2013-02-04 2014-01-07 Sony Corporation Image processing system, image processing method and program
KR100791295B1 (ko) * 2006-01-12 2008-01-04 삼성전자주식회사 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치
EP1841237B1 (en) * 2006-03-29 2014-10-08 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method and apparatus for video encoding
US8139880B2 (en) * 2008-03-24 2012-03-20 Microsoft Corporation Lifting-based directional lapped transforms
US8275209B2 (en) * 2008-10-10 2012-09-25 Microsoft Corporation Reduced DC gain mismatch and DC leakage in overlap transform processing
US8527649B2 (en) 2010-03-09 2013-09-03 Mobixell Networks Ltd. Multi-stream bit rate adaptation
CN102939751B (zh) * 2010-03-31 2016-03-16 法国电信 通过向前运动补偿、对应的流和计算机程序实施预测的用于对图像序列进行编码和解码的方法和装置
US8832709B2 (en) 2010-07-19 2014-09-09 Flash Networks Ltd. Network optimization
CN105338364B (zh) * 2010-10-06 2018-07-24 株式会社Ntt都科摩 图像预测解码装置、图像预测解码方法
KR102034004B1 (ko) 2010-10-08 2019-10-18 지이 비디오 컴프레션, 엘엘씨 블록 분할 및 블록 병합을 지원하는 픽처 코딩
KR102287971B1 (ko) 2011-02-09 2021-08-09 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
US8688074B2 (en) 2011-02-28 2014-04-01 Moisixell Networks Ltd. Service classification of web traffic
JP6024654B2 (ja) * 2011-03-09 2016-11-16 日本電気株式会社 映像符号化装置、映像復号装置、映像符号化方法及び映像復号方法
GB2551290B (en) 2011-10-17 2018-09-19 Kt Corp Method and apparatus for encoding/decoding image
US10003817B2 (en) 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
WO2013109471A1 (en) * 2012-01-19 2013-07-25 Vid Scale, Inc. System and method of video coding quantization and dynamic range control
KR102259792B1 (ko) 2012-07-02 2021-06-02 엘지전자 주식회사 영상 정보 코딩 방법 및 이를 이용하는 장치
US9020262B2 (en) * 2012-07-31 2015-04-28 Hewlett-Packard Development Company, L.P. Symbol compression using conditional entropy estimation
US9313500B2 (en) 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information
US10043254B2 (en) * 2016-04-14 2018-08-07 Microsoft Technology Licensing, Llc Optimal image transformation based on professionalism score of subject
US10043240B2 (en) 2016-04-14 2018-08-07 Microsoft Technology Licensing, Llc Optimal cropping of digital image based on professionalism score of subject
WO2019009776A1 (en) * 2017-07-05 2019-01-10 Telefonaktiebolaget Lm Ericsson (Publ) DECODING VIDEO SAMPLE BLOCK
CN112020860B (zh) * 2018-02-26 2022-09-02 弗劳恩霍夫应用研究促进协会 用于选择性量化参数传输的编码器、解码器和其方法
US11563964B2 (en) * 2020-11-12 2023-01-24 Tencent America LLC Method and apparatus for video coding

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754492A (en) 1985-06-03 1988-06-28 Picturetel Corporation Method and system for adapting a digitized signal processing system for block processing with minimal blocking artifacts
US5297236A (en) 1989-01-27 1994-03-22 Dolby Laboratories Licensing Corporation Low computational-complexity digital filter bank for encoder, decoder, and encoder/decoder
JP2549479B2 (ja) 1991-12-06 1996-10-30 日本電信電話株式会社 動き補償フレーム間帯域分割符号化処理方法
KR0148130B1 (ko) 1992-05-18 1998-09-15 강진구 블럭킹아티팩트를 억제시키는 부호화/복호화 방법 및 그 장치
US5982459A (en) 1995-05-31 1999-11-09 8×8, Inc. Integrated multimedia communications processor and codec
FR2737931B1 (fr) * 1995-08-17 1998-10-02 Siemens Ag Procede destine au traitement de blocs d'images decodes d'un procede de codage d'images a base de blocs
US5796855A (en) 1995-10-05 1998-08-18 Microsoft Corporation Polygon block matching method
US5850294A (en) * 1995-12-18 1998-12-15 Lucent Technologies Inc. Method and apparatus for post-processing images
US5805739A (en) 1996-04-02 1998-09-08 Picturetel Corporation Lapped orthogonal vector quantization
JPH1070717A (ja) * 1996-06-19 1998-03-10 Matsushita Electric Ind Co Ltd 画像符号化装置及び画像復号化装置
US5973755A (en) 1997-04-04 1999-10-26 Microsoft Corporation Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms
WO1998056184A1 (en) 1997-06-05 1998-12-10 Wisconsin Alumni Research Foundation Image compression system using block transforms and tree-type coefficient truncation
US5859788A (en) 1997-08-15 1999-01-12 The Aerospace Corporation Modulated lapped transform method
US5913191A (en) * 1997-10-17 1999-06-15 Dolby Laboratories Licensing Corporation Frame-based audio coding with additional filterbank to suppress aliasing artifacts at frame boundaries
US6393156B1 (en) 1998-01-07 2002-05-21 Truong Q. Nguyen Enhanced transform compatibility for standardized data compression
US6393061B1 (en) 1998-05-15 2002-05-21 Hughes Electronics Corporation Method for reducing blocking artifacts in digital images
US6115689A (en) 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US6029126A (en) 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6073153A (en) 1998-06-03 2000-06-06 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6154762A (en) 1998-06-03 2000-11-28 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6253165B1 (en) 1998-06-30 2001-06-26 Microsoft Corporation System and method for modeling probability distribution functions of transform coefficients of encoded signal
US6421464B1 (en) 1998-12-16 2002-07-16 Fastvdo Llc Fast lapped image transforms using lifting steps
US6487574B1 (en) 1999-02-26 2002-11-26 Microsoft Corp. System and method for producing modulated complex lapped transforms
US6496795B1 (en) 1999-05-05 2002-12-17 Microsoft Corporation Modulated complex lapped transform for integrated signal enhancement and coding
US6370502B1 (en) 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US6771829B1 (en) 1999-10-23 2004-08-03 Fastvdo Llc Method for local zerotree image coding
CN1182726C (zh) * 1999-10-29 2004-12-29 皇家菲利浦电子有限公司 视频编码方法
US6865229B1 (en) * 1999-12-14 2005-03-08 Koninklijke Philips Electronics N.V. Method and apparatus for reducing the “blocky picture” effect in MPEG decoded images
US6771828B1 (en) 2000-03-03 2004-08-03 Microsoft Corporation System and method for progessively transform coding digital data
US7177358B2 (en) * 2000-06-27 2007-02-13 Mitsubishi Denki Kabushiki Kaisha Picture coding apparatus, and picture coding method
WO2002007438A1 (en) 2000-07-17 2002-01-24 Trustees Of Boston University Generalized lapped biorthogonal transform embedded inverse discrete cosine transform and low bit rate video sequence coding artifact removal
EP1320831A2 (en) 2000-09-12 2003-06-25 Koninklijke Philips Electronics N.V. Video coding method
US7200275B2 (en) * 2001-12-17 2007-04-03 Microsoft Corporation Skip macroblock coding
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US6763068B2 (en) 2001-12-28 2004-07-13 Nokia Corporation Method and apparatus for selecting macroblock quantization parameters in a video encoder
US7155065B1 (en) 2002-03-27 2006-12-26 Microsoft Corporation System and method for progressively transforming and coding digital data
US7006699B2 (en) 2002-03-27 2006-02-28 Microsoft Corporation System and method for progressively transforming and coding digital data
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US6728315B2 (en) 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US7227901B2 (en) * 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
US7167522B2 (en) * 2003-02-27 2007-01-23 Texas Instruments Incorporated Video deblocking filter
US7471726B2 (en) 2003-07-15 2008-12-30 Microsoft Corporation Spatial-domain lapped transform in digital media compression
US7305139B2 (en) 2004-12-17 2007-12-04 Microsoft Corporation Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform

Also Published As

Publication number Publication date
KR101028955B1 (ko) 2011-04-12
US20050053150A1 (en) 2005-03-10
WO2005027492A2 (en) 2005-03-24
WO2005027492A3 (en) 2006-11-23
CN1998152A (zh) 2007-07-11
JP2007506293A (ja) 2007-03-15
CN1998152B (zh) 2012-06-13
EP1661387A2 (en) 2006-05-31
JP4986622B2 (ja) 2012-07-25
KR20060131719A (ko) 2006-12-20
EP1661387B1 (en) 2019-11-20
EP1661387A4 (en) 2010-12-22
ES2773751T3 (es) 2020-07-14
US7369709B2 (en) 2008-05-06

Similar Documents

Publication Publication Date Title
US7412102B2 (en) Interlace frame lapped transform
EP1661387B1 (en) Conditional lapped transform
US10567753B2 (en) Skip macroblock coding
US7830963B2 (en) Decoding jointly coded transform type and subblock pattern information
JP5048146B2 (ja) Ac予測状態情報のためのビットプレーンコーディングおよびデコーディング

Legal Events

Date Code Title Description
FG Grant or registration