ES2373944T3 - Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable. - Google Patents
Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable. Download PDFInfo
- Publication number
- ES2373944T3 ES2373944T3 ES02803564T ES02803564T ES2373944T3 ES 2373944 T3 ES2373944 T3 ES 2373944T3 ES 02803564 T ES02803564 T ES 02803564T ES 02803564 T ES02803564 T ES 02803564T ES 2373944 T3 ES2373944 T3 ES 2373944T3
- Authority
- ES
- Spain
- Prior art keywords
- value
- variable length
- code
- series
- level
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/14—Digital recording or reproducing using self-clocking codes
- G11B20/1403—Digital recording or reproducing using self-clocking codes characterised by the use of two levels
- G11B20/1423—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
- G11B20/1426—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
- H03M5/145—Conversion to or from block codes or representations thereof
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/162—User input
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
- H04N19/69—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving reversible variable length codes [RVLC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/93—Run-length coding
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Image Processing (AREA)
Abstract
Un procedimiento para decodificar un valor de serie codificado para decodificar una imagen, en el que el valor de serie codificado se obtiene codificando un valor de serie, siendo el valor de serie un número de coeficientes de la transformada de valor cero continuo que preceden a un coeficiente de la transformada no cero, comprendiendo el procedimiento las siguientes etapas realizadas por un aparato decodificador: seleccionar una tabla de códigos de acuerdo con el número total de coeficientes de la transformada de valor cero no codificados en un bloque, en el que el coeficiente de la transformada de valor cero no decodificado indica un coeficiente de la transformada que tiene un valor de cero y no ha sido decodificado; decodificar por longitud variable el valor de serie codificado en el bloque usando la tabla de códigos seleccionada.
Description
Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable
La presente invención se refiere a un procedimiento de codificación de longitud variable y un procedimiento de decodificación de longitud variable y, más particularmente, a un procedimiento para convertir coeficientes plurales que se obtienen cuantificando los componentes de frecuencia de datos de imágenes (coeficientes de cuantificación) en datos codificados de acuerdo con un procedimiento de codificación de longitud variable, y un procedimiento para decodificar los datos codificados de acuerdo con un procedimiento de decodificación de longitud variable para reconstituir la pluralidad de coeficientes.
El documento EP 0 987 899 A2 describe un procedimiento de codificación/decodificación de longitud variable adaptativa que realiza una codificación y decodificación de longitud variable óptima dependiendo de una condición intra modo/inter modo, el tamaño de etapa de cuantificación y una posición del escáner de zigzag actual, de tal forma que se ajusten una pluralidad de tablas de codificación de longitud variable que tengan diferentes patrones de una región regular y una región de escape de acuerdo con las características estadísticas de los datos de serie y nivel. Una de las tablas de codificación de longitud variable se selecciona de acuerdo al modo, tamaño de etapa de cuantificación y posición de detección, y los coeficientes de la transformada ortogonal de acuerdo con la tabla de códigos de longitud variable seleccionada se codifican por longitud variable.
En años recientes, se ha dado la bienvenida a la era multimedia, en la que el audio, el vídeo y otros datos se manejan integralmente, y los medios de información convencionales (es decir, medios para transmitir información a personas), tales como periódicos, revistas, televisiones, radios y teléfonos se han adoptado como objetos multimedia. Generalmente, "multimedia" significa representar no sólo caracteres sino también diagramas, palabras y especialmente imágenes simultáneamente en relación entre sí. Con objeto de manejar los medios de información convencionales como los objetos multimedia, es esencial transformar la información a formato digital.
Cuando la cantidad de procedimientos de datos para cada medio de información que se ha descrito anteriormente se estima como la cantidad de datos digitales, en el caso de caracteres, la cantidad de datos para cada carácter es 1~2 bytes. Sin embargo, en el caso de palabras, la cantidad de datos es 64 kbits por segundo (calidad para telecomunicación) y, en el caso de cinematografía, es más de 100 Mbits por segundo (calidad para la radiodifusión televisiva actual). Así, en cuanto a los medios de información que se han descrito anteriormente, no es práctico manejar dichos datos masivos cuando están en el formato digital. Por ejemplo, los teléfonos visuales ya se han puesto en práctica por ISDN (Red Digital de Servicios Integrados) que tienen una velocidad de transmisión de 64 kbps~1,5 Mbps, pero es imposible transmitir una imagen de salida de una cámara de televisión que tiene una gran cantidad de datos cuando es a través de ISDN.
Así, se demandan tecnologías de compresión de datos. Por ejemplo, en el caso de teléfonos visuales, se emplean tecnologías de compresión de imágenes en movimiento estandarizadas como H.261 y H.263 por ITU-T (Unión Internacional de Telecomunicaciones-Sector de las Telecomunicaciones). Además, de acuerdo con la tecnología de compresión de datos en base a MPEG-1, es posible grabar datos de imágenes, junto con datos de audio, en un CD (disco compacto) de música ordinaria.
En este punto, MPEG (Grupo de Expertos en Imágenes en Movimiento) es un estándar internacional asociado con la compresión digital para señales de imagen de imágenes en movimiento. En MPEG-1, se comprime una señal de imagen de una imagen en movimiento a 1,5 Mbps, es decir, los datos de una señal de televisión se comprimen a aproximadamente 1/100. Puesto que la velocidad de transmisión a la que el MPEG-1 se dirige se limita principalmente a aproximadamente 1,5 Mbps, el MPEG-2 se estandariza para satisfacer las demandas de mayor calidad de imagen. En el MPEG-2, una señal de imagen de una imagen en movimiento se comprime a 2~15 Mbps.
Bajo las circunstancias existentes, la estandarización de MPEG-4 que tiene una velocidad de compresión mayor se ha realizado por el grupo de trabajo para la estandarización de MPEG-1 y MPEG-2 (ISO/IEC JTC1/SC29/WG11). El MPEG-4 no solamente posibilita la codificación a una baja velocidad de transferencia de bits con alta eficiencia, sino también realiza la introducción de una fuerte tecnología resistente al error que puede reducir un deterioro subjetivo de la calidad de imagen aún cuando aparece un error de línea de transmisión. Además, el ITU-T está desarrollando la estandarización de H.26L como un procedimiento de codificación de imágenes de la próxima generación, y el procedimiento de codificación más reciente en este momento de tiempo es un procedimiento llamado "Modelo de Prueba 8" (TML8).
La figura 30 es un diagrama de bloques que ilustra un aparato de codificación de imágenes convencional.
Este aparato de codificación de imágenes 201a tiene una unidad de bloqueo Blk para bloquear una señal de imagen de entrada Vin en las áreas de la unidad (bloques), comprendiendo cada una un número predeterminado de píxeles, y la transmisión de una señal de imagen bloqueada BlkS, y una unidad de transformación de frecuencia Trans para someter la BlkS de salida a transformación de frecuencia para transmitir los componentes de frecuencia TransS correspondientes a los respectivos bloques. En este punto, el bloque es un área de un tamaño predeterminado en una imagen (espacio de imagen), que es una unidad para un procedimiento de codificación de una señal de imagen, y está compuesto de un número predeterminado de píxeles. En este punto, la señal de imagen Vin corresponde a una imagen en movimiento que está compuesta de varias imágenes.
El aparato de codificación de imágenes 201a incluye adicionalmente una unidad de cuantificación Q para cuantificar las transmisiones (componentes de frecuencia) TransS de la unidad de transformación de frecuencia y para transmitir los componentes cuantificados (coeficientes de cuantificación) QS correspondientes a los respectivos bloques, y una unidad de codificación RLE0a para someter las transmisiones Qs (componentes cuantificados) de la unidad de cuantificación a un procedimiento de codificación de longitud variable.
A continuación, se describirá su funcionamiento.
Cuando una señal de imagen Vin se introduce al aparato de codificación de imágenes 201a, la unidad de bloqueo Blk divide la señal de imagen introducida Vin en señales de imagen correspondientes a la unidades de bloqueo, para generar una señal de imagen (señal de imagen bloqueada) BlkS correspondiente a cada bloque. La unidad de transformación de frecuencia Trans transforma la señal de imagen bloqueada BlkS en componentes de frecuencia TransS de acuerdo con DCT (Transformación de Coseno Discreta) o la transformación de ondícula. La unidad de cuantificación Q cuantifica los componentes de frecuencia TransS en una etapa de cuantificación predeterminada en base a un parámetro de cuantificación QP para transmitir componentes cuantificados QS, así como transmitir el parámetro de cuantificación QP. Después, la unidad de codificación RLE0a somete los componentes cuantificados QS a un procedimiento de codificación de longitud variable, y transmite una corriente codificada Str0a.
La figura 31 es un diagrama de bloques para explicar la unidad de codificación RLE0a que constituye el aparato de codificación de imágenes 201a.
Esta unidad de codificación RLE0a tiene un escáner en zigzag Scan para transformar las transmisiones (componentes cuantificados) QS de la unidad de cuantificación Q en una matriz bidimensional en el componente cuantificado Coef en una matriz unidimensional (es decir, orden predeterminado), y un codificador de longitud variable VLC para someter los componentes cuantificados Coef transmitidos por el escáner en zigzag Scan a un procedimiento de codificación de longitud variable.
Cuando los componentes cuantificados QS transmitidos por la unidad de cuantificación Q se introducen a la unidad de codificación RLE0a, el escáner en zigzag Scan transforma los componentes cuantificados QS en una matriz bidimensional de la unidad de cuantificación Q en componentes cuantificados Coef en una matriz unidimensional (orden predeterminado), y transmite los componentes cuantificados.
La figura 43 es un diagrama para explicar específicamente el procedimiento para transformar los componentes cuantificados QS por el escáner en zigzag Scan.
Como se muestra en la figura 43, los componentes cuantificados QS transmitidos por la unidad de cuantificación Q tienen una matriz bidimensional, es decir, una matriz en la que los componentes cuantificados QS se disponen en forma de matriz en una región de frecuencia de dos dimensiones Fr de acuerdo con la altura del componente de frecuencia horizontal y la altura del componente de frecuencia vertical.
El escáner en zigzag Scan realiza un procedimiento para explorar los componentes cuantificados QS en la matriz bidimensional en zigzag como se muestra por las flechas Y1 a Y7, para transformar los componentes en componentes cuantificados Coef en una matriz unidimensional. Es decir, en este procedimiento de exploración, se establece un orden predeterminado a lo largo del transcurso de la exploración con respecto a los varios componentes cuantificados QS en la matriz bidimensional.
Después, el codificador de longitud variable VLC asigna códigos a los componentes cuantificados Coef que se transmiten desde el escáner en zigzag Scan, usando una tabla de códigos que muestra una correlación entre los valores numéricos indicando los tamaños de los componentes cuantificados y los códigos (palabras de código), para transformar los componentes cuantificados en una corriente codificada Str0a correspondiente a cada bloque.
La figura 32 es un diagrama de bloques para explicar un aparato de decodificación de imágenes 202a correspondiente al aparato de codificación de imágenes 201a como se muestra en la figura 30.
Este aparato de decodificación de imágenes 202a decodifica la corriente codificada Str0a que se transmite desde el aparato de codificación de imágenes convencional 201a como se muestra en la figura 30.
El aparato de decodificación de imágenes 202a tiene una unidad de decodificación RLD0a para decodificar la corriente codificada Str0a que se transmite por el aparato de codificación de imágenes 201a, y una unidad de cuantificación inversa IQ para someter las transmisiones (componentes de cuantificación decodificados) QDS de la unidad de decodificación RLD0a a un procedimiento de cuantificación inversa.
El aparato de decodificación de imágenes 202a incluye adicionalmente una unidad de transformación de frecuencia inversa ITrans para someter las transmisiones (componentes de frecuencia decodificados) ITransS de la unidad de cuantificación inversa IQ a un procedimiento de transformación de frecuencia inversa, y una unidad de desbloqueo Deblk para generar una señal de imagen decodificada Vout correspondiente a cada imagen en base a las transmisiones (señales de imagen bloqueadas decodificadas) DBlkS de la unidad de transformación de frecuencia inversa ITrans.
A continuación, se describirá su funcionamiento.
Cuando la corriente codificada Str0a se introduce desde el aparato de codificación de imágenes 201a al aparato de decodificación de imágenes 202a, la unidad de decodificación RLD0a decodifica la corriente codificada Str0a y transmite los componentes cuantificados decodificados DQS. El funcionamiento de la unidad de decodificación RLD0a es lo inverso del funcionamiento de la unidad de codificación RLE0a.
La unidad de cuantificación inversa IQ realiza lo inverso del funcionamiento de la unidad de cuantificación Q, es decir, una operación para cuantificar inversamente los componentes cuantificados decodificados DQS con referencia al parámetro de cuantificación QP, y transmite los componentes de frecuencia decodificados ITransS. La unidad de transformación de frecuencia inversa ITrans realiza lo inverso del funcionamiento de la unidad de transformación de frecuencia Trans, es decir, una operación para someter los componentes de frecuencia decodificados ITransS a DCT inversa o transformación de óndula inversa, para reconstituir las señales de imagen decodificadas DBlkS correspondientes a los respectivos bloques. Después, la unidad de desbloqueo DeBlk integra las señales de imagen decodificadas DBlkS de los respectivos bloques para transmitir una señal de imagen decodificada Vout correspondiente a cada imagen (cuadro).
La figura 33 es un diagrama de bloques para explicar la unidad de decodificación RLD0a que constituye el aparato de decodificación de imágenes 202a.
La unidad de decodificación RLD0a tiene un decodificador de longitud variable VLD para someter la corriente codificada Str0a a un procedimiento de decodificación de longitud variable para decodificar el componente cuantificado Coef correspondiente a cada código incluido en la corriente codificada Str0a, y un escáner en zigzag inverso IScan para reconstituir los componentes cuantificados DQS en una matriz bidimensional de los componentes cuantificados decodificados Coef en una matriz unidimensional, que se transmiten por el decodificador de longitud variable VLD.
En esta unidad de decodificación RLD0a, el decodificador de longitud variable VLD decodifica la corriente codificada Str0a de acuerdo con la operación inversa al codificador de longitud variable VLC, y transmite los componentes cuantificados Coef correspondientes a los códigos (palabras de código). Después, el escáner en zigzag inverso IScan realiza la operación inversa para el escáner en zigzag Scan, para reconstituir los componentes cuantificados decodificados DQS en una matriz bidimensional de los componentes cuantificados Coef en una matriz unidimensional, que se transmiten desde el decodificador de longitud variable VLD, y transmite los componentes cuantificados decodificados DQS a la unidad de cuantificación inversa IQ.
La Solicitud de Patente Publicada Japonesa Nº Hei. 6-311534 describe un procedimiento en el que una señal de imagen se divide en una señal de luminancia y una señal de diferencia de color para someter las señales obtenidas a un procedimiento de codificación de longitud variable.
Los varios componentes cuantificados correspondientes a los respectivos bloques, a los que se ha establecido el orden predeterminado, son datos que incluyen una alta redundancia, es decir, datos en los cuales los muchos coeficientes cuyo valor es cero (coeficientes cero) continúan después de un coeficiente cuyo valor no es cero (coeficiente no cero). Para codificar dichos componentes cuantificados, se ha empleado un procedimiento en el que los componentes cuantificados se codifican con su información redundante borrada, por ejemplo, un procedimiento de codificación por longitud de series en el que los componentes cuantificados se codifican usando un valor de serie que indica el número de coeficientes cero sucesivos y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero.
En lo sucesivo en este documento, se describirá un aparato de codificación de imágenes convencional usando el procedimiento de codificación por longitud de series.
La figura 34 es un diagrama de bloques que ilustra un aparato de codificación de imágenes convencional que realiza la codificación por longitud de series.
Este aparato de codificación de imágenes 201b incluye, en lugar de la unidad de codificación RLE0a del aparato de codificación de imágenes 201a mostrado en la figura 30, una unidad de codificación por longitud de series RLE0b para someter las transmisiones (componentes cuantificados) QS transmitidas de la unidad de cuantificación Q a codificación por longitud de series y transmitir una corriente codificada Str0b. Los demás componentes son los mismos que los del aparato de codificación de imágenes 201a.
El funcionamiento del aparato de codificación de imágenes 201b es diferente del funcionamiento del aparato de codificación de imágenes 201a únicamente en el funcionamiento de la unidad de codificación RLE0b.
La figura 35 es un diagrama de bloques que ilustra una construcción específica de la unidad de codificación RLE0b en el aparato de codificación de imágenes 201b.
Esta unidad de codificación por longitud de series RLE0b tiene, de forma similar a la unidad de codificación RLE0a, un escáner en zigzag Scan para transformar las transmisiones (componentes cuantificados) QS de una matriz bidimensional de la unidad de cuantificación Q en componentes cuantificados Coef en una dimensión (es decir, un orden predeterminado).
Después, esta unidad de codificación por longitud de series RLE0b incluye adicionalmente una calculadora de serie RunCal para calcular el número de componentes cuantificados sucesivos cuyos valores son cero (coeficientes cero) Coef y transmitir un valor de serie Run que indica el número de coeficientes cero sucesivos, y una calculadora de nivel LevCal para calcular un valor de un componente cuantificado cuyo valor no es cero (coeficiente no cero), seguido de los coeficientes cero, y transmitir un valor de nivel Lev que indica el valor del coeficiente no cero.
La unidad de codificación por longitud de series RLE0b incluye adicionalmente un codificador de longitud variable LevVLC para someter el valor de nivel Lev que se transmite desde la calculadora de nivel LevCal a un procedimiento de codificación de longitud variable y transmitir una secuencia de códigos (secuencia de códigos de valor de nivel) LStr, un codificador de longitud variable RunVLC para someter el valor de serie Run que se transmite desde la calculadora de serie RunCal a un procedimiento de codificación de longitud variable y transmitir una secuencia de códigos (secuencia de códigos de valor de serie) RStr, y un multiplexor MUX para multiplexar la secuencia de códigos de valor de nivel LStr y la secuencia de códigos de valor de serie RStr para cada bloque y transmitir una corriente codificada multiplexada Str0b.
A continuación, se describirá su funcionamiento.
El escáner en zigzag Scan transforma los componentes cuantificados QS en una matriz bidimensional, que se transmiten desde la unidad de cuantificación Q, en componentes cuantificados Coef en una matriz unidimensional (orden predeterminado), y transmite los componentes cuantificados Coef. El procedimiento de transformación para los componentes cuantificados Qs por el escáner en zigzag Scan se realiza de la misma manera que en la unidad de codificación RLE0a del aparato de codificación de imágenes 201a.
La calculadora de serie RunCal calcula el número de coeficientes cero sucesivos en base a los componentes cuantificados Coef que se transmiten desde el escáner en zigzag Scan, y transmite un valor de serie Run que indica el número calculado. La calculadora de nivel LevCal calcula un valor de un coeficientes no cero seguido de los coeficientes cero sucesivos, en base a los componentes cuantificados Coef transmitidos desde el escáner en zigzag Scan, y transmite un valor de nivel Lev que indica este valor.
En este punto, la calculadora de serie RunCal genera un valor especial EOB (Final de Bloque) cuando detecta el componente de frecuencia más alto (el último coeficiente no cero) en el bloque objetivo que se va a procesar, para informar que todos los componentes de frecuencia mayor subsiguientes tienen valor cero.
Además, el codificador de longitud variable RunVLC somete el valor de serie Run que se transmite por la calculadora de serie RunCal a un procedimiento de codificación de longitud variable para asignar un código (palabra de código) al valor de serie de acuerdo con una tabla de códigos o una operación aritmética, y transmite una secuencia de códigos Rstr. El codificador de longitud variable LevVLC somete el valor de nivel Lev que se transmite desde la calculadora de nivel LevCal a un procedimiento de codificación de longitud variable para asignar un código (palabra de código) al valor de nivel de acuerdo con una tabla de códigos o una operación aritmética, y transmite una secuencia de códigos LStr.
El multiplexor MUX multiplexa la secuencia de códigos LStr y la secuencia de códigos RStr para cada bloque, y transmite una corriente codificada multiplexada Str0b.
En este punto, el procedimiento para multiplexar la secuencia de códigos LStr y la secuencia de códigos RStr se realiza para cada bloque, por ejemplo, de tal manera que la secuencia de códigos RStr correspondiente a todos los valores de serie para un bloque objetivo se sigue por la secuencia de códigos LStr correspondiente a todos los valores de nivel para el bloque objetivo, o la secuencia de códigos LStr correspondiente a todos los valores de nivel para un bloque objetivo se sigue por la secuencia de códigos RStr correspondiente a todos los valores de serie para el bloque objetivo.
El aparato de codificación de imágenes, como se ha descrito anteriormente para varios los coeficientes cuantificados de codificación en un orden predeterminado, usando el valor de serie Run que indica el número de componentes cuantificados cuyo valor es cero (coeficientes cero) Coef, y el valor de nivel Lev que indica un valor de un componente cuantificado cuyo valor no es cero (coeficiente no cero) Coef, seguido de los coeficientes cero, puede codificar los varios coeficientes cuantificados con una mayor eficiencia de codificación, mientras que elimina su información redundante.
La figura 36 es un diagrama de bloques para explicar un aparato de decodificación de imágenes 202b correspondiente al aparato de codificación de imágenes 201b como se muestra en la figura 34.
Este aparato de decodificación de imágenes 202b decodifica la corriente codificada Str0 que se transmite desde el aparato de codificación de imágenes convencional 201b como se muestra en la figura 34.
El aparato de decodificación de imágenes 202b tiene, en lugar de la unidad de decodificación RLD0a del aparato de decodificación de imágenes 202a mostrado en la figura 32, una unidad de decodificación por longitud de series RLD0b para someter la corriente codificada Str0b que se transmite desde el aparato de codificación de imágenes 201b a un procedimiento de decodificación por longitud de series. Los demás componentes son idénticos a los del aparato de decodificación de imágenes 202a.
El funcionamiento del aparato de decodificación de imágenes 202b es diferente a la del aparato de decodificación de imágenes 202a únicamente en el funcionamiento de la unidad de decodificación RLD0b.
La figura 37 es un diagrama de bloques que ilustra una construcción específica de la unidad de decodificación por longitud de series RLD0b en el aparato de decodificación de imágenes 202b.
Esta unidad de decodificación por longitud de series RLD0b tiene un desmultiplexor DMUX para desmultiplexar la corriente codificada multiplexada Str0b que se transmite desde el aparato de codificación de imágenes 201b para obtener la secuencia de códigos LStr correspondiente a los valores de nivel y la secuencia de códigos RStr correspondiente a los valores de serie, un decodificador de longitud variable LevVLD para someter la secuencia de códigos LStr a un procedimiento de decodificación de longitud variable para reconstituir los valores de nivel Lev, un decodificador de longitud variable RunVLC para someter la secuencia de códigos RStr a un procedimiento de decodificación de longitud variable para reconstituir los valores de serie Run, y un escáner en zigzag inverso IScan para reconstituir los componentes cuantificados decodificados DQS en una matriz bidimensional de los componentes cuantificados decodificados en una matriz unidimensional, que se representan por los valores de nivel Lev y los valores de serie Run.
A continuación, se describirá su funcionamiento.
En el aparato de decodificación de imágenes 202b, la unidad de decodificación por longitud de series RLD0b realiza la operación inversa a la unidad de codificación por longitud de series RLE0b. Es decir, la unidad de decodificación por longitud de series RLD0b desmultiplexa la corriente codificada multiplexada Str0b para obtener la secuencia de códigos Lstr correspondiente a los valores de nivel y la secuencia de códigos RStr correspondiente a los valores de serie.
Después, el decodificador de longitud variable LevVLD decodifica la secuencia de códigos LStr correspondiente a los valores de nivel por la operación inversa al codificador de longitud variable LevVLC, y transmite los valores de nivel Lev. El decodificador de longitud variable RunVLD decodifica la secuencia de códigos RStr correspondiente a los valores de serie por la operación inversa al codificador de longitud variable RunVLC, y transmite los valores de serie Run.
El escáner en zigzag inverso IScan reconstituye los componentes cuantificados decodificados DQS en una matriz bidimensional de los componentes cuantificados en una matriz unidimensional, que se representan por los valores de nivel Lev y los valores de serie Run, por la operación inversa al escáner en zigzag Scan, y transmite los componentes cuantificados decodificados a la unidad de cuantificación inversa IQ. Sin embargo, este escáner en zigzag inverso IScan (véase la figura 37) es diferente del escáner en zigzag inverso IScan como se muestra en la figura 33 en que el valor de nivel Lev y el valor de serie Run se introducen al mismo. Por lo tanto, el escáner en zigzag inverso IScan mostrado en la figura 37 tiene la función de convertir un coeficiente que se representa por el valor de nivel Lev y el valor de serie Run en unos componentes cuantificados Coef.
De acuerdo con el aparato de decodificación de imágenes que realiza un procedimiento de decodificación para decodificar varios coeficientes cuantificados en un orden predeterminado, usando el valor de serie Run que indica el número de componentes cuantificados cuyos valores son cero (coeficientes cero) Coef y el valor de nivel Lev que indica un valor de un componente cuantificado cuyo valor no es cero (coeficiente no cero) Coef, seguido de los coeficientes cero, se decodifican satisfactoriamente los datos codificados que se obtienen codificando los varios componentes cuantificados de acuerdo con la codificación por longitud de series eliminando su información redundante a una mayor eficiencia de codificación.
En lo sucesivo en este documento, se describirá otro ejemplo del aparato de codificación de imágenes convencional usando el procedimiento de codificación por longitud de series.
La figura 38 es un diagrama de bloques que ilustra otro ejemplo del aparato de codificación de imágenes que emplea la unidad de codificación por longitud de series. Casi todos los aparatos de codificación de imágenes convencionales, que acatan los estándares, tales como MPEG, o H.261 y H.263 (ITU), o un borrador del estándar H26L (TML8) ahora se planea que tengan una construcción como se muestra en la figura 38.
Este aparato de codificación de imágenes 201c realiza la codificación de los coeficientes cuantificados usando el valor de serie y el valor de nivel, similar al aparato de codificación de imágenes 201b mostrado en la figura 34, mientras que este aparato de codificación de imágenes 201c no realiza un procedimiento de codificación de longitud variable para el valor de serie y el valor de nivel separadamente similar al aparato de codificación de imágenes 201b, pero realiza un procedimiento de codificación de longitud variable para un par del valor de serie y el valor de nivel (par de serie-nivel).
Para ser más específicos, el aparato de codificación de imágenes 201c tiene, similar al aparato de codificación de imágenes 201b, una unidad de bloqueo Blk a la que se introduce una señal de imagen Vin, una unidad de transformación de frecuencia Trans para someter una transmisión Blks de la unidad de bloqueo a transformación de frecuencia, y una unidad de cuantificación Q para cuantificar las transmisiones (componentes de frecuencia) TransS de la unidad de transformación. El aparato de codificación de imágenes 201c incluye adicionalmente una unidad de codificación por longitud de series RLE0c para someter las transmisiones (componentes cuantificados) QS de la unidad de cuantificación a un procedimiento de codificación por longitud de series para transformar un par de serienivel que comprende un valor de serie y un valor de nivel en un código de longitud variable.
A continuación, se describirá su funcionamiento.
La unidad de bloqueo Blk divide la señal de imagen Vin en señales de imagen correspondientes a las unidades de bloque para generar componentes de valores de píxeles (señales de imagen bloqueadas) BlkS. La unidad de transformación de frecuencia Trans transforma los componentes de valores de píxeles BlkS en componentes de frecuencia TransS de acuerdo con DCT (Transformación de Coseno Discreta) o transformación de óndula. La unidad de cuantificación Q cuantifica los componentes de frecuencia TransS en base a un parámetro de cuantificación QP para transmitir los componentes cuantificados QS, así como transmite el parámetro de cuantificación Q. La unidad de codificación por longitud de series RLE0c somete los componentes cuantificados QS a la codificación por longitud de series, y transmite una corriente codificada Str0c.
En este punto, el bloque es un área de un tamaño predeterminado en la imagen (espacio de imagen), que es una unidad en un procedimiento de codificación para una señal de imagen, y compuesto de un número predeterminado de píxeles. La codificación por longitud de series es un procedimiento para la transformación de un par que comprende un valor de serie que indica el número de componentes cuantificados sucesivos cuyos valores son cero (coeficientes cero) y un valor de nivel que indica un valor de un componente cuantificado cuyo valor no es cero (coeficiente no cero), seguido de los coeficientes cero, en un código de longitud variable, en otras palabras, un procedimiento para asignar un código de longitud variable (palabra de código) a un par de un valor de serie y un valor de nivel (par de serie-nivel).
A continuación, se describirá específicamente la unidad de codificación por longitud de series RLE0c.
La figura 39 es un diagrama de bloques que ilustra una unidad de codificación por longitud de series convencional RLE0c.
Esta unidad de codificación por longitud de series RLE0c tiene, similar a la unidad de codificación por longitud de series RLE0b como se muestra en la figura 35, un escáner en zigzag Scan para transformar las transmisiones (componentes cuantificados) QS de una matriz bidimensional de la unidad de cuantificación Q, en componentes cuantificados Coef en una matriz unidimensional (es decir, un orden predeterminado); una calculadora de serie RunCal para calcular el número de componentes cuantificados sucesivos cuyos valores son cero (coeficientes cero) Coef y transmitir un valor de serie Run; y una calculadora de nivel LevCal para calcular un valor de un componente cuantificado cuyo valor no es cero (coeficiente no cero) Coef, seguido de los coeficientes cero, y transmitir un valor de nivel Lev.
La unidad de codificación por longitud de series RLE0c incluye adicionalmente un codificador de serie-nivel RunLevEnc para obtener un número de código Code correspondiente a un par del valor de nivel Lev y el valor de serie Run de acuerdo con una tabla de códigos o una operación aritmética en base a las transmisiones de la calculadora de serie RunCal y la calculadora de nivel LevCal; y un codificador de longitud variable VLC para asignar una palabra de código al número de código Code para generar una corriente codificada Str0c correspondiente a la señal de imagen Vin.
A continuación, se describirá su funcionamiento.
En la unidad de codificación por longitud de series RLE0c, similar a la unidad de codificación por longitud de series RLE0b, el escáner en zigzag Scan transforma los componentes cuantificados QS en una matriz bidimensional, que se transmiten desde la unidad de cuantificación Q, en componentes cuantificados Coef en una matriz unidimensional (orden predeterminado), y transmite los componentes cuantificados obtenidos.
La figura 43 es un diagrama para explicar específicamente un procedimiento para transformar los componentes cuantificados QS por el escáner en zigzag Scan.
Los componentes cuantificados QS transmitidos por la unidad de cuantificación Q tienen una matriz bidimensional como se muestra en la figura 43, es decir, una matriz en la que los componentes cuantificados QS se disponen en forma de matriz en una región de frecuencia de dos dimensiones Fr de acuerdo con el tamaño del componente de frecuencia horizontal y el tamaño del componente de frecuencia vertical.
El escáner en zigzag Scan realiza el procedimiento para explorar los componentes cuantificados QS en la matriz bidimensionales en zigzag, como se muestra por las flechas Y1 a Y7, para transformar los componentes cuantificados QS en componentes cuantificados Coef en una matriz unidimensional. Es decir, este procedimiento de exploración establece un orden predeterminado a lo largo del transcurso de la exploración, con respecto a los varios componentes cuantificados QS en la matriz bidimensional.
La calculadora de serie RunCal calcula el número de coeficientes cero sucesivos en base a los componentes cuantificados Coef transmitidos desde el escáner en zigzag Scan, y transmite un valor de serie Run que indica el número calculado. La calculadora de nivel LevCal calcula un valor de un coeficiente no cero seguido de los coeficientes cero sucesivos, en base a los componentes cuantificados Coef transmitidos desde el escáner en zigzag Scan, y transmite un valor de nivel que indica el valor calculado. En este punto, la calculadora de serie RunCal produce un valor específico EOB (Fin de Bloque) al detectar el componente de frecuencia más alta (el último coeficiente no cero) en un bloque objetivo que se va a procesar, para informar que todos los componentes de frecuencia mayores posteriores tienen valor cero.
Además, el codificador de serie-nivel RunLevEnc obtiene un número de código Code correspondiente a un par del valor de nivel Lev y el valor de serie Run en base a las transmisiones de la calculadora de serie RunCal y la calculadora de nivel LevCal, de acuerdo con una tabla de códigos o una operación aritmética. El codificador de longitud variable VLC codifica el número de código Code que se obtiene por el convertidor RunLevEnc, es decir, asigna una palabra de código (secuencia de bits) al número de código para generar una corriente codificada Str0.
La figura 42 muestra un ejemplo de una tabla de códigos que se emplea por la unidad de codificación por longitud de series RLE0c. La tabla de códigos (primera tabla de codificación) T1 mostrada en la figura 42 muestra una tabla de códigos correspondiente a los componentes de DC de una señal de diferencia de color que acata un borrador del estándar H.26L (TML8) que se está planeando actualmente.
Esta tabla de códigos T está compuesta de una parte regularmente generable que incluye números de código correspondientes a los pares de valores de nivel y valores de serie, que pueden calcularse de acuerdo con una operación aritmética usando valores de nivel y valores de serie (construir regularmente VLC), y una parte irregular que incluye números de código correspondientes a los pares de valores de nivel y valores de serie, que no pueden calcularse por la operación aritmética (consultar tabla para VLC) . Además, se asigna una secuencia de bits (no mostrada) para cada número de código Code como una palabra de código en una relación uno a uno. Se asigna una palabra de código más corta a un número de código Code que tiene un valor más pequeño.
A continuación, se describirá un aparato de decodificación convencional correspondiente al aparato de codificación de imágenes 201c.
La figura 40 es un diagrama de bloques que ilustra un aparato de decodificación de imágenes 202c que emplea una unidad de decodificación por longitud de series convencional RLD0.
Este aparato de decodificación de imágenes 202c decodifica la corriente codificada Str0c que se transmite desde el aparato de codificación de imágenes convencional 201c mostrado en la figura 39.
El aparato de decodificación de imágenes 202c decodifica los coeficientes cuantificados usando el valor de serie y el valor de nivel, como el aparato de decodificación de imágenes 202b en la figura 36, mientras que este aparato de decodificación de imágenes 202c no realiza la decodificación de longitud variable del valor de serie y el valor de nivel separadamente similar al aparato de decodificación de imágenes 202b, pero realiza la decodificación de longitud variable de un par que comprende el valor de serie y el valor de nivel (par de serie-nivel).
Para ser más específicos, el aparato de decodificación de imágenes 202c tiene una unidad de decodificación por longitud de series RLD0c que somete la corriente codificada Str0c transmitida desde el aparato de codificación de imágenes 201c a un procedimiento de decodificación por longitud de series usando un par de serie-nivel que comprende un valor de serie y un valor de nivel. El aparato de decodificación de imágenes 202c tiene adicionalmente, como el aparato de decodificación de imágenes 202b, una unidad de cuantificación inversa IQ para someter las transmisiones (componentes cuantificados decodificados) DQS por la unidad de decodificación por longitud de series RLDc a un procedimiento de cuantificación inversa; una unidad de transformación de frecuencia inversa ITrans para someter las transmisiones (componentes de frecuencia decodificados) ITransS por la unidad de cuantificación inversa IQ a un procedimiento de transformación de frecuencia inversa; y una unidad de desbloqueo DeBlk para generar una señal de imagen decodificada Vout correspondiente a cada imagen en base a las transmisiones (componentes de valores de píxeles decodificados) DBlkS de la unidad de transformación de frecuencia inversa ITrans.
A continuación, se describirá su funcionamiento.
En el aparato de decodificación de imágenes 202c, la unidad de decodificación por longitud de series RLD0c realiza lo inverso de la operación de la unidad de codificación por longitud de series RLE0c. Para ser más específicos, la unidad de decodificación por longitud de series RLD0c somete la corriente codificada Str0c a un procedimiento de decodificación por longitud de series para transmitir componentes cuantificados decodificados DQS. La unidad de cuantificación inversa IQ realiza la operación inversa a la unidad de cuantificación Q, es decir, una operación de cuantificar inversamente los componentes cuantificados decodificados DQS con referencia a un parámetro de cuantificación QP para transmitir componentes de frecuencia decodificados ITransS. La unidad de transformación de frecuencia inversa ITrans realiza la operación inversa a la unidad de transformación de frecuencia Trans, es decir, una operación para someter los componentes de frecuencia decodificados ITransS a la transformación DCT inversa
o de óndula inversa, para reconstituir una señal de valores de píxeles decodificada (señal de imagen bloqueada decodificada) DBlks correspondiente a cada bloque. La unidad de desbloqueo DeBl, integra los componentes de valores de píxeles de imágenes en los respectivos bloques, y transmite una señal de imagen decodificada Vout correspondiente a cada imagen (marco).
A continuación, se describirá específicamente la unidad de decodificación por longitud de series RLD0c.
La figura 41 es un diagrama de bloques para explicar una construcción específica de la unidad de decodificación por longitud de series RLD0c.
Esta unidad de decodificación por longitud de series RLD0c tiene un decodificador de longitud variable VLD para someter la corriente codificada Str0c a un procedimiento de decodificación de longitud variable para obtener un número de código Code correspondiente a cada código (palabra de código) incluido en la corriente codificada Str0c; un detector de serie-nivel RunLevDec para detectar un par de un valor de nivel Lev y un valor de serie Run, correspondientes al número de código Code; y un escáner de zigzag inverso IScan para reconstituir los componentes cuantificados decodificados DQS en una matriz bidimensional, que se representan por los valores de nivel Lev y los valores de serie Run, en base a los pared de los valores de nivel Lev y los valores de serie Run.
A continuación, se describirá su funcionamiento.
En esta unidad de decodificación por longitud de series RLD0c, el decodificador de longitud variable VLD decodifica la corriente codificada Str0c, y transmite un número de código Code correspondiente a una palabra de código (secuencia de bits) de acuerdo con la operación inversa al codificador de longitud variable VLC. El detector de serienivel RunLevDec se refiere a una tabla de códigos o realiza una operación aritmética para transmitir un par de un valor de nivel Lev y un valor de serie Run, correspondientes al número de código Code, de acuerdo con la operación inversa al codificador de serie-nivel RunLevEnc. El escáner en zigzag inverso IScan reconstituye los componentes cuantificados decodificados DQS en una matriz bidimensional de los componentes cuantificados en una matriz unidimensional que se representan por los pares de los valores de nivel Lev y los valores de serie Run de acuerdo con la operación inversa en el escáner en zigzag Scan, y transmite los componentes cuantificados decodificados DQS a la unidad de cuantificación inversa IQ.
La Solicitud de Patente Publicada Japonesa Nº Hei. 6-237184 describe un procedimiento de codificación por longitud de series en el que los varios coeficientes en un orden predeterminado se codifican usando un valor de serie Run que indica el número de componentes cuantificados cuyos valores son cero (coeficientes cero) Coef, y un valor de nivel Lev que indica un valor de un componente cuantificado cuyo valor no es cero (coeficiente no cero) Coef, seguido de los coeficientes cero.
La Patente Japonesa Nº 3144456 (que corresponde a la Solicitud de Patente Publicada Japonesa Nº Hei. 8-79088 y al documento US 5729620) describe un procedimiento por el que una tabla de codificación de longitud variable (tabla VLC) se cambia de acuerdo con el valor de un valor del vector de movimiento diferencial cuando el valor del vector de movimiento diferencial se codifica usando una tabla de codificación de longitud variable en un procedimiento para codificar de forma predecible datos de video digital.
Además, se conoce una codificación aritmética como otro procedimiento por el que los valores de píxeles se codifican por longitud variable, en el que la codificación de longitud variable se realiza de acuerdo con una operación aritmética usando la probabilidad en la que el valor de píxeles pueda tomar un valor predeterminado. De acuerdo con la codificación aritmética, se obtiene un código a partir de la probabilidad, de forma que una tabla de probabilidad en la que se describen las probabilidades correspondientes a las situaciones individuales, corresponde a la tabla VLC. En este punto, "All about MPEG-4" (primera edición, primera impresión, publicado el 20 de septiembre de 1998, escrito y editado por Miki Sukeichi, págs. 69-73, Kogyo Chosakai Publishing Co., Ltd.) describe un procedimiento por el que los valores de píxeles de los píxeles correspondientes a un objetivo de codificación se someten a la codificación aritmética cambiando una tabla de probabilidad en base a un procedimiento de predicción (contexto) para un píxel objetivo de codificación que se predice de los valores de píxeles de los píxeles circundantes.
La unidad de codificación RLE0a que se ha mencionado anteriormente del aparato de codificación de imágenes convencional 201a realiza la codificación de longitud variable para varios coeficientes cuantificados que se obtienen cuantificando los componentes de frecuencia de los datos de imagen, para cada unidad de procesamiento predeterminada (bloque). Esta unidad de codificación emplea una tabla de códigos predeterminada que indica las correspondencias entre la información de valor numérico que muestra el tamaño de cada coeficiente cuantificado y un código (palabra de código). En el procedimiento de codificación de longitud variable por la unidad de codificación, no se puede eliminar suficientemente información redundante incluida en el coeficiente cuantificado (datos que se van a procesar) y, por lo tanto, la velocidad de compresión puede mejorarse adicionalmente.
Además, en la unidad de codificación por longitud de series que realiza la codificación de longitud variable de varios coeficientes cuantificados usando un valor de serie que indica el número de componentes cuantificados cuyos valores son cero (coeficientes cero) Coef, y un valor de nivel que indica un valor de un componente cuantificado cuyo valor no es cero (coeficiente no cero) Coef, seguido de los coeficientes cero, similar a las unidades de codificación RLE0b o RLE0c en el aparato de codificación de imágenes convencional 201b o 201c, no se elimina lo suficiente la información redundante incluida en los coeficientes cuantificados en el procedimiento de codificación de longitud variable.
Además, la unidad de decodificación RLD0a del aparato de decodificación de imágenes convencional 202a o la unidad de decodificación por longitud de series RLD0b o RLD0c del aparato de decodificación de imágenes convencional 202b o 202c corresponde a una unidad de codificación que no puede eliminar suficientemente la información redundante incluida en los coeficientes cuantificados en el procedimiento de codificación de longitud variable para los coeficientes cuantificados.
Además, en cuanto al procedimiento mediante por el que se cambia una tabla de codificación de longitud variable (tabla VLC) de acuerdo con el valor de un valor del vector de movimiento diferencial cuando el valor del vector de movimiento diferencial se codifica usando una tabla de codificación de longitud variable en un procedimiento para codificar de manera predecible datos de vídeo digital, no se ha conocido un cambio eficaz de la tabla de codificación en un procedimiento de codificación de longitud variable para datos que tiene dichas características que los varios coeficientes cero siguen con éxito, similar a los coeficientes cuantificados que se obtienen cuantificando los componentes de frecuencia de una señal de imagen.
La presente invención se hace para resolver los problemas mencionados anteriormente, y esta invención tiene por su objeto, proporcionar un procedimiento de codificación de longitud variable y un procedimiento de decodificación de longitud variable, que pueden eliminar la información redundante incluida en los datos objetivo (coeficientes cuantificados) por un procedimiento de codificación de longitud variable, más eficazmente de acuerdo con las características de los coeficientes cuantificados y estados de un procedimiento de codificación para los componentes cuantificados, aumentando de esta manera adicionalmente la velocidad de compresión de una señal de imagen o similar.
De acuerdo con la presente invención, se proporciona un procedimiento de codificación de longitud variable para codificar datos de coeficientes, que están compuestos de varios coeficientes, incluyendo: una etapa de codificación para someter los respectivos coeficientes a un procedimiento de codificación de transformación de los datos de coeficientes en datos codificados que están compuestos de varios códigos, usando varias tablas de código que indican las correspondencias entre los valores de los coeficientes y los códigos, y esta etapa de codificación incluye: una etapa de selección de tabla de códigos para seleccionar la tabla de códigos de acuerdo con al menos una de la información acerca de un coeficiente codificado que se ha codificado, y un parámetro relacionado con el procedimiento de codificación de los coeficientes; y una etapa de asignación de códigos para asignar un código a un coeficiente no codificado que todavía no se ha codificado, usando la tabla de códigos seleccionada. Por lo tanto, la información redundante incluida en los datos de coeficientes, que se van a someter al procedimiento de codificación de longitud variable, se borra de forma eficaz por la selección de una tabla de códigos de acuerdo con las características de los coeficientes que constituyen los datos de coeficientes o estados de un procedimiento de codificación para los coeficientes, aumentando de esta manera en gran medida la eficiencia de la codificación del procedimiento de codificación de longitud variable para las señales de imagen o similares.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, los coeficientes se obtienen cuantificando los componentes de frecuencia de datos de imagen de acuerdo con una etapa de cuantificación correspondiente a los datos de imagen, y en la etapa de selección de tabla de códigos, la tabla de códigos que se usa en la etapa de asignación de códigos se selecciona de acuerdo con un valor de la etapa de cuantificación. Por lo tanto, siempre puede emplearse una tabla de códigos que se adapte al valor de la etapa de cuantificación y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de codificación para los coeficientes, cada uno de un valor de serie que indica varios coeficientes cero sucesivos cuyos valores son cero, y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero, se transforman en un código, en la etapa de selección de tabla de códigos, se realiza al menos uno de un primer procedimiento de selección para seleccionar una tabla de códigos de varias tablas de códigos que indican correspondencias entre el valor de serie y el código de acuerdo con el valor de la etapa de cuantificación, y un segundo procedimiento de selección para seleccionar una tabla de códigos de varias tablas de códigos que indican correspondencias entre el valor de nivel y el código de acuerdo con el valor de la etapa de cuantificación, y en la etapa de asignación de código, se asigna un código a al menos uno de un valor de serie y un valor de nivel correspondiente a un coeficiente no codificado, que todavía no se ha codificado, en base a la tabla de códigos seleccionada. Por lo tanto, la asignación de los códigos a al menos uno de los valores de serie y valores de nivel siempre puede realizarse usando una tabla de códigos que se adapte al valor de la etapa de cuantificación y minimice el número total de bits correspondiente a los códigos asignados.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de codificación para los coeficientes, un par de serienivel que comprende un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero, se transforma en un código, en la etapa de selección de tabla de códigos, una tabla de códigos se selecciona entre las varias tablas de códigos que indican correspondencias entre el par de serie-nivel y el código de acuerdo con el valor de la etapa de cuantificación, y en la etapa de asignación de código, se asigna un código a un par de serie-nivel correspondiente a un coeficiente no codificado que todavía no se ha codificado, en base a la tabla de códigos seleccionada. Por lo tanto, la asignación de códigos a los pares de serie-nivel siempre puede realizarse usando una tabla de códigos que se adapte al valor de la etapa de cuantificación y minimice el número total de bits correspondiente a los códigos asignados.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, en la etapa de selección de tabla de códigos, la tabla de códigos que se usa en la etapa de asignación de códigos se selecciona de acuerdo con la información acerca del coeficiente ya procesado que se ha codificado. Por lo tanto, el procedimiento de codificación para coeficientes cuantificados siempre puede realizarse usando una tabla de códigos que se adapte al número de coeficientes no codificados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de codificación para los coeficientes, un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero, y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero, se transforman en un código respectivamente, en la etapa de selección de tabla de códigos, se realiza al menos uno de un primer procedimiento de selección para seleccionar una tabla de códigos de varias tablas de códigos que indican correspondencias entre el valor de serie y el código de acuerdo con la información acerca de un valor de serie correspondiente al codificado, y un segundo procedimiento de selección para seleccionar un tabla de códigos de varias tablas de códigos que indican correspondencias entre el valor de nivel y el código de acuerdo con la información acerca de un valor de nivel correspondiente a los coeficientes codificados, y en la etapa de asignación de códigos, se asigna un código a al menos uno de un valor de serie y un valor de nivel correspondiente a un coeficiente no codificado, en base a la tabla de códigos seleccionada. Por lo tanto, la asignación de códigos a al menos uno de los valores de serie y valores de nivel siempre puede realizarse usando una tabla de códigos que se adapte al número de coeficientes no codificados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, en la etapa de selección de tabla de códigos, una tabla de códigos se selecciona entre varias tablas de código que indican correspondencias entre el valor de serie y el código de acuerdo con varios valores de serie codificados que se han codificado, y en la etapa de asignación de códigos, se asigna un código a un valor de serie no codificado que todavía no se ha codificado, en base a la tabla de códigos seleccionada. Por lo tanto, la asignación de códigos a valores de serie siempre puede realizarse usando una tabla de códigos que se adapte al número de valores de serie todavía no procesados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de codificación para los coeficientes, un par de serienivel que comprende un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero, y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero, se transforma en un código, en la etapa de selección de tabla de códigos, una tabla de códigos se selecciona entre varias tablas de códigos que indican correspondencias entre el par de serie-nivel y el código de acuerdo con la información acerca de un par de serie-nivel correspondiente a un coeficiente codificado que se ha codificado, y en la etapa de asignación de códigos, se asigna un código a un par de serie-nivel correspondiente a un coeficiente no codificado que todavía no se ha codificado, en base a la tabla de códigos seleccionada. Por lo tanto, la asignación de códigos a pares de serie-nivel siempre puede realizarse usando una tabla de códigos que se adapte al número de coeficientes todavía no procesados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, los coeficientes se obtienen cuantificando los componentes de frecuencia de datos de imagen de acuerdo con una etapa de cuantificación correspondiente a los datos de imagen, y en la etapa de codificación, el procedimiento de codificación para los coeficientes se realiza de tal forma que los códigos se asignen a varios coeficientes que constituyen los datos de coeficientes de componente de alta frecuencia de los datos de imagen correspondientes al componente de baja frecuencia. Por lo tanto, puede reducirse adicionalmente el número total de bits correspondiente a los códigos que se asignan a los coeficientes.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de codificación para los coeficientes, un par de serienivel que comprende un valor de serie que indica un número de coeficientes cero sucesivos cuyos calores son cero y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero, se transforma en un código, para cada bloque que está compuesto de un número predeterminado de coeficientes, y en la etapa de selección de tabla de códigos, una tabla de códigos se selecciona entre varias tablas de códigos que indican correspondencias entre el par de serie-nivel y el código de acuerdo con una suma de varios coeficientes ya procesados que se han sometido al procedimiento de codificación en un bloque objetivo que es un objeto del procedimiento de codificación, y varios coeficientes no cero no codificados que todavía no se han codificado en el bloque objetivo, y en la etapa de asignación de códigos, se asigna un código a un par de serie-nivel correspondiente a un coeficiente no codificado en el bloque objetivo, en base a la tabla de códigos seleccionada. Por lo tanto, puede emplearse una tabla de códigos que no incluya pares de valores de serie y valores de nivel, que nunca aparecerán, aumentando de esta manera la eficiencia de la codificación de longitud variable.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de codificación para los coeficientes, un par de serienivel que comprende un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero y un valor de nivel que indica un coeficiente no cero seguido de los coeficientes cero, se transforma en un código, la etapa de codificación incluye una etapa de procesamiento de tabla de códigos para cambiar regularmente las correspondencias entre el par de serie-nivel y el código en una primera tabla de códigos que indica correspondencia entre el par de serie-nivel y el código correspondiente de acuerdo con las combinaciones del valor de serie y el valor de nivel que componen el par de serie-nivel, en base a la primera tabla de códigos, por lo que se forma una segunda tabla de códigos que tiene diferentes correspondencias entre el par de serie-nivel y el código de la primera tabla de códigos, y en la etapa de selección de tabla de códigos, una de las primera y segunda tablas de códigos se selecciona de acuerdo con al menos una de la información acerca del coeficiente ya procesado y el parámetro relacionado con la generación de los coeficientes. Por lo tanto, una de las primera y segunda tablas de códigos se selecciona de manera adaptable como una tabla de códigos óptima que se usará cuando los códigos se asignan a los pares de valores de serie y valores de nivel, por lo que la información redundante incluida en los datos objetivo que se va a procesar puede eliminarse de forma eficaz. Por consiguiente, puede mejorarse adicionalmente la velocidad de compresión para señales de imagen o similares, para que este procedimiento de codificación de longitud variable sea altamente útil.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, en la primera y segunda tablas de códigos, los códigos más cortos se hacen corresponder de manera adaptable a los pares de serie-nivel respectivos que tienen valores de nivel más pequeños que componen los pares de serie-nivel, y en la segunda tabla de códigos, los valores de nivel de los pares de serienivel a los que los códigos más cortos se hacen corresponder son pequeños en promedio en comparación con la primera tabla de códigos. Por lo tanto, este procedimiento de codificación de longitud variable es útil cuando el parámetro de cuantificación para los coeficientes que constituyen los datos objetivo que se van a procesar es grande.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, en la primera y segunda tablas de códigos, los códigos más cortos se hacen corresponder de forma adaptable a los pares de serie-nivel respectivos que tienen valores de serie más pequeños que componen los pares de serie-nivel, y en la segunda tabla de códigos, los valores de serie de los pares de serienivel a los que los códigos más cortos se hacen corresponder son pequeños en promedio en comparación con la primera tabla de códigos. Por lo tanto, este procedimiento de codificación de longitud variable es útil cuando el parámetro de cuantificación para los coeficientes que constituyen los datos objetivo que se van a procesar es pequeño.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de codificación para los coeficientes, la transformación de los pares de serie-nivel en los códigos se realiza para cada bloque que está compuesto de un número predeterminado de coeficientes, y en la etapa de procesamiento de tabla de códigos, la segunda tabla de códigos se forma de acuerdo con un número de coeficientes ya procesados que se han sometido al procedimiento de codificación en un bloque objetivo que es un objeto del procedimiento de codificación. Por lo tanto, puede emplearse una tabla de códigos que no incluya pares que comprendan valores de serie y valores de nivel, que nunca aparecerán, como la segunda tabla de códigos, aumentando de esta manera adicionalmente la eficiencia de la codificación de longitud variable.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, en la etapa de asignación de códigos, la asignación de códigos a pares de serie-nivel se realiza desde un par de serie-nivel que corresponde a un coeficiente que tiene un componente con la mayor frecuencia de datos de imagen, desde un componente de alta frecuencia a un componente de baja frecuencia. Por lo tanto, puede hacerse más grande el aumento en la eficiencia de la codificación de longitud variable, obtenida usando la tabla de códigos que no incluye pares que comprenden valores de serie y valores de nivel, que nunca aparecerán, como la segunda tabla de códigos.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, la segunda tabla de códigos se forma cambiando solamente correspondencias que pueden operarse regularmente, entre las correspondencias entre el par de serie-nivel y el código incluido en la primera tabla de códigos. Por lo tanto, puede reducirse una operación aritmética que es requerida para la formación de la segunda tabla de códigos.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, los coeficientes que constituyen los datos de coeficiente se obtienen cuantificando los componentes de frecuencia de datos de imagen, de acuerdo con una etapa de cuantificación que corresponde a los datos de imagen, y la etapa de selección de tabla de códigos es una etapa de conmutación de tabla de códigos para la conmutación entre la primera tabla de códigos y la segunda tabla de códigos de acuerdo con un valor de la etapa de cuantificación. Por lo tanto, puede emplearse una tabla de códigos que se adapta a la etapa de cuantificación como la tabla de códigos que se va a usar en un procedimiento de codificación de longitud variable para los coeficientes que constituyen los datos objetivo que se van a procesar.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, la etapa de selección de tabla de códigos es una etapa de conmutación de tabla de códigos para conmutar entre la primera tabla de códigos y la segunda tabla de códigos de acuerdo con una señal de instrucción conmutada, y en la etapa de codificación, se realiza la codificación de la señal de instrucción conmutada. Por lo tanto, la tabla de códigos que se va a usar en el procedimiento de codificación de longitud variable para los coeficientes puede cambiarse de acuerdo con las características de los datos objetivo, o similares.
De acuerdo con la presente invención, en el procedimiento de codificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de codificación para los coeficientes, la transformación de los pares de serie-nivel en códigos se realiza para cada bloque que está compuesto de un número predeterminado de coeficientes, y en la etapa de procesamiento de la tabla de códigos, se forma la segunda tabla de códigos en base a una suma de un número de coeficientes ya procesados que se han sometido al procedimiento de codificación en un bloque objetivo que es un objeto del procedimiento de codificación, y un número de coeficientes no cero no codificados que no han sido codificados aún en el bloque objetivo. Por lo tanto, puede usarse una tabla de códigos que no incluye pares de valores de serie y valores de nivel que nunca aparecerán como la segunda tabla de códigos, aumentando de esta manera adicionalmente el coeficiente de codificación de longitud variable.
De acuerdo con la presente invención, se proporciona un aparato de codificación de longitud variable que codifica los datos de coeficiente que se compone de una pluralidad de coeficientes incluyendo: una unidad de codificación para someter los respectivos coeficientes a un procedimiento de codificación de transformación de los datos de coeficiente en datos codificados que están compuestos de una pluralidad de códigos, usando varias tablas de códigos que indican correspondencias entre los valores de los coeficientes y códigos, y esta unidad de codificación incluye: una unidad de selección de tabla de códigos para seleccionar la tabla de códigos de acuerdo con al menos una información acerca de un coeficiente codificado, que se ha codificado, y un parámetro que se refiere al procedimiento de codificación de los coeficientes; y una unidad de asignación de códigos para asignar un código a un coeficiente no codificado que todavía no se ha codificado, usando la tabla de códigos seleccionada. Por lo tanto, la información redundante incluida en datos de coeficiente que se van a someter al procedimiento de codificación de longitud variable se suprime de forma eficaz por selección de una tabla de códigos de acuerdo con las características de coeficientes que constituyen los datos de coeficientes o estados del procedimiento de codificación para los coeficientes, aumentando de esta manera en gran medida la eficiencia de la codificación en el procedimiento de codificación de longitud variable para señales de imagen o similares.
De acuerdo con la presente invención, en el aparato de codificación de longitud variable que se ha mencionado anteriormente, los coeficientes se obtienen cuantificando los componentes de frecuencia de los datos de imagen de acuerdo con una etapa de cuantificación que corresponde a los datos de imagen, y la unidad de selección de tabla de códigos selecciona la tabla de códigos que se va a usar por la unidad de asignación de códigos, de acuerdo con un valor de la etapa de cuantificación. Por lo tanto, puede usarse siempre una tabla de códigos que se adapte al valor de la etapa de cuantificación y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el aparato de codificación de longitud variable que se ha mencionado anteriormente, la unidad de selección de tabla de códigos selecciona la tabla de códigos que se va a usar por la unidad de asignación del cogido, de acuerdo con la información acerca del coeficiente codificado. Por lo tanto, el procedimiento de codificación para coeficientes cuantificado siempre puede realizarse usando una tabla de códigos que se adapte al número de coeficientes aún no procesados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el aparato de codificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de codificación para los coeficientes, un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero, y un valor de nivel que indica un valor de coeficientes no cero seguido de los coeficientes cero son cada uno transformados en un código, la unidad de selección de tabla de códigos selecciona una tabla de códigos a partir de varias tablas de códigos que indican correspondencias entre el valor de serie y el código, de acuerdo con un número de valores de serie codificados a los que se han asignado los códigos, y la unidad de asignación de códigos asigna un código a un valor de serie no codificado que no ha sido codificado aún, en base a la tabla de códigos seleccionada. Por lo tanto, la asignación de códigos a valores de serie siempre puede realizarse usando una tabla de códigos que se adapta al número de valores de serie aún no procesados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el aparato de codificación de longitud variable que se ha mencionado anteriormente, se obtienen los coeficientes cuantificando los componentes de frecuencia de datos de imagen, de acuerdo con una etapa de cuantificación que corresponde a los datos de imagen, y la unidad de codificación realiza el procedimiento de codificación para los coeficientes de tal forma que los códigos se asignen a la pluralidad de coeficientes que constituyen los datos de coeficientes del componente de alta frecuencia a componente de baja frecuencia. Por lo tanto, puede reducirse adicionalmente el número total de bits que corresponden a los códigos que son asignados a los coeficientes.
De acuerdo con la presente invención, se proporciona un medio de almacenamiento que contiene un programa para ejecutar un procedimiento de codificación de longitud variable para codificar datos de coeficientes que se componen de una pluralidad de coeficientes, por un ordenador, y este programa incluye: una etapa de codificación para someter los coeficientes respectivos a un procedimiento de codificación de transformación de datos de coeficiente en datos codificados que se componen de una pluralidad de códigos, usando varias tablas de códigos que indican correspondencias entre los valores de los coeficientes y códigos, y además esta etapa de codificación incluye: una etapa de selección de tabla de códigos para seleccionar la tabla de códigos de acuerdo con al menos una información acerca de un coeficiente codificado que se ha codificado, y un parámetro que se relaciona con el procedimiento de codificación de los coeficientes; y una etapa de asignación de códigos para asignar un código a un coeficiente no codificado que aún no se ha codificado, usando la tabla de códigos seleccionada. Por lo tanto, puede implementarse por software un procedimiento de codificación de longitud variable que tiene una mayor eficiencia de codificación, que puede suprimir de forma eficaz la información redundante incluida en datos de coeficientes como un objeto que se va a someter al procedimiento de codificación de longitud variable por selección de una tabla de códigos de acuerdo con las características de coeficientes que constituyen los datos de coeficiente o estados del procedimiento de codificación para los coeficientes.
De acuerdo con la presente invención, se proporciona un procedimiento de decodificación de longitud variable para decodificar datos codificados que se componen de una pluralidad de códigos, obtenidos realizando la codificación de longitud variable a datos de coeficientes que se componen de una pluralidad de coeficientes, incluyendo: una etapa de decodificación para someter los respectivos códigos a un procedimiento de decodificación de decodificación de los datos codificados para reconstituir los datos de coeficientes que se componen de la pluralidad de coeficientes, usando varias tablas de códigos que indican correspondencias entre los valores de los coeficientes y los códigos, y esta etapa de decodificación incluye: una etapa de selección de tabla de códigos para seleccionar la tabla de códigos de acuerdo con al menos una información acerca de un coeficiente decodificado que ha sido decodificado y un parámetro que se relaciona con el procedimiento de decodificación; y una etapa de detección de valores para detectar el valor que corresponde a un código no decodificado que aún no ha sido decodificado, usando la tabla de códigos seleccionada. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable correspondiente a un procedimiento de codificación de longitud variable que tiene una mayor eficiencia de codificación, que puede suprimir de forma eficaz la información redundante incluida en los datos de coeficientes cambiando una tabla de códigos, para codificar los datos de coeficientes.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, se obtienen los coeficientes cuantificando los componentes de frecuencia de los datos de imagen de acuerdo con una etapa de cuantificación que corresponde a los datos de imagen, y en la etapa de selección de tabla de códigos, la tabla de códigos que se usa en la etapa de detección de valores se selecciona de acuerdo con un valor de la etapa de cuantificación. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable correspondiente a un procedimiento de codificación de longitud variable que siempre emplea una tabla de códigos que está adaptada al valor de la etapa de cuantificación y maximiza la eficacia de la codificación.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, en el procedimiento de decodificación para los códigos, se decodifica un código para reconstituir un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero, y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero, en la etapa de selección de tabla de códigos, se realiza al menos uno de un primer procedimiento de selección para seleccionar una tabla de códigos a partir de la pluralidad de tablas de códigos que indican correspondencias entre el valor de serie y el código, de acuerdo con el valor de la etapa de cuantificación, y un segundo procedimiento de selección para seleccionar una tabla de códigos a partir de varias tablas de códigos que indican correspondencias entre el valor de nivel y el código de acuerdo con el valor de la etapa de cuantificación, y en la etapa de detección del valor numérico, se detecta al menos uno de un valor de serie y un valor de nivel que corresponde a uno no decodificado que aún no se ha decodificado, en base a la tabla de códigos seleccionada. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que realiza la asignación de códigos a por lo menos uno de valores de serie y valores de nivel usando siempre una tabla de códigos que se adapte al valor de la etapa de cuantificación y minimice el número total de bits que corresponden a los códigos asignados.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de decodificación para códigos, se decodifica un código para reconstituir un par de serie-nivel que comprende un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero, y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero, en la etapa de selección de tabla de códigos, una tabla de códigos se selecciona de varias tablas de códigos que indican correspondencias entre el par de serie-nivel y el código de acuerdo con el valor de la etapa de cuantificación, y en la etapa de detección del valor numérico, un par de serie-nivel que corresponde a un código no decodificado que no ha sido decodificado, se detecta en base a la tabla de códigos seleccionada. Por lo tanto, se realiza un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que realiza la asignación de códigos a pares de serie-nivel siempre usando una tabla de códigos que se adapte al valor de la etapa de cuantificación y minimice el número total de bits que corresponden a los códigos asignados.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, en la etapa de selección de tabla de códigos, la tabla de códigos que se usa en la etapa de detección de valor numérico se selecciona de acuerdo con información acerca de un coeficiente decodificado. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que codifica coeficientes cuantificados siempre usando una tabla de códigos que se adapte al número de coeficientes aún no procesados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de decodificación para los códigos, el código es decodificado para reconstituir un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero, y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero, respectivamente, en la etapa de selección de tabla de códigos, se realiza al menos uno de un primer procedimiento de selección para seleccionar una tabla de códigos a partir de varias tablas de códigos que indican correspondencias entre el valor de serie y el código de acuerdo con información acerca de un valor de serie decodificado, y un segundo procedimiento de selección para seleccionar una tabla de códigos a partir de varias tablas de códigos que indican correspondencias entre el valor de nivel y el código de acuerdo con información acerca de un valor de nivel decodificado, y en la etapa de detección de valor, se detecta al menos uno de un valor de serie y un valor de nivel que corresponde a un código no decodificado en base a la tabla de códigos selecciona. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que realiza la asignación de códigos para al menos uno de un valor de serie y valores de nivel siempre usando una tabla de códigos que se adapte al número de coeficientes aún no procesados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, en la etapa de selección de tabla de códigos, se selecciona una tabla de códigos de varias tablas de códigos que indican correspondencias entre el valor de serie y el código de acuerdo con varios valores de serie decodificados los cuales ya han sido decodificados, y en la etapa de detección de valores, se detecta un valor de serie que corresponde a un código no decodificado que aún no ha sido decodificado, en base a la tabla de códigos seleccionada. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que realiza la asignación de códigos a valores de serie siempre usando una tabla de códigos que se adapte al número de valores de serie aún no procesados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de decodificación para códigos, se decodifica un código para reconstituir un par de serie-nivel que comprende un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero, y un valor de nivel que indica un número de coeficiente no cero seguido de los coeficientes cero, en la etapa de selección de tabla de códigos, una tabla de códigos se selecciona entre varias tablas de códigos que indican correspondencias entre el par de serie-nivel y el código de acuerdo con la información acerca de un par de serie-nivel que ha sido obtenido por el procedimiento de decodificación, y en la etapa de detección de valor numérico, un par de serie-nivel que corresponde a un código no decodificado que aún no ha sido decodificado, se detecta en base a la tabla de códigos seleccionada. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que realiza la asignación de códigos a pares de serie-nivel siempre usando una tabla de códigos que se adapte al número de coeficientes aún no procesados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, los coeficientes se obtienen cuantificando los componentes de frecuencia de datos de imagen de acuerdo con una etapa de cuantificación que corresponde a los datos de imagen, y en la etapa de decodificación, el procedimiento de decodificación para códigos se realiza de manera que los valores que corresponden a los códigos se obtienen de componentes de alta frecuencia a componentes de baja frecuencia. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que puede reducir adicionalmente el número total de bits que corresponde a códigos que se asignan a los coeficientes.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de decodificación para los códigos, se decodifica un código para reconstituir un par de serie-nivel que comprende un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero, y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero, para cada bloque que se compone de un coeficiente predeterminado que comprende los datos de coeficientes, en la etapa de selección de tabla de códigos, se selecciona una tabla de códigos de varias tablas de códigos que indican correspondencias entre el par de serie-nivel y el código de acuerdo con una suma de un número de coeficientes ya procesados en un bloque objetivo que es un objeto del procedimiento de decodificación, que se ha obtenido por el procedimiento de decodificación para el bloque objetivo, y un número de coeficiente no cero no decodificado en el bloque objetivo, el cual no se ha obtenido por el procedimiento de decodificación para el bloque objetivo, y en la etapa de detección del valor numérico, un par de serie-nivel que corresponde a un coeficiente no decodificado en el bloque objetivo se detecta en base a la tabla de códigos seleccionada. Por lo tanto, un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que tiene una eficiencia superior puede implementarse usando una tabla de códigos la cual no incluye pares que comprenden valores de serie y valores de nivel que nunca aparecerán.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de decodificación para los códigos, un código que constituye los datos codificados se decodifica para reconstituir un par de serie-nivel que comprende un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero, y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero, la etapa de decodificación incluye una etapa de procesamiento de tabla de código para cambiar regularmente correspondencias entre el par de serie-nivel y el código en una primera tabla de código que indica correspondencia entre el par de serie-nivel y el código correspondiente de acuerdo con combinaciones de un valor de serie y un valor de nivel los cuales componen el par de serie-nivel, en base a la primera tabla de código, por que se forma una segunda tabla de códigos que tiene correspondencias diferentes entre el par de serie-nivel y el código de la primera tabla de código, y en la etapa de selección de tabla de códigos, una de las primera y segunda tablas de códigos se selecciona de acuerdo con al menos una de la información acerca del coeficiente ya procesado y el parámetro que se relaciona a la generación de los coeficientes. Por lo tanto, una de la primera y segunda tablas de códigos se selecciona adaptablemente como una tabla de códigos óptima que se va a usar cuando los códigos se transformen en pares de valores de serie y valores de nivel. Por consiguiente, se realiza satisfactoriamente un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que suprime de forma eficaz la información redundante incluida en los datos objetivos que se van a procesar, de manera que este procedimiento de decodificación de longitud variable sea altamente útil.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, en las primera y segunda tablas, los códigos más cortos se hacen corresponder adaptablemente con pares de serie-nivel respectivos que tienen valores de nivel más inferiores que componen los pares de serie-nivel, y en la segunda tabla de códigos, los valores de nivel de pares de serie-nivel a los que los códigos más cortos se hacen corresponder son más pequeños en promedio en comparación con la primera tabla de códigos. Por lo tanto, este procedimiento de decodificación de longitud variable es eficaz en casos en los que un parámetro de cuantificación en relación con coeficientes que constituyen los datos objetivos que se van a procesar sea grande.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, en las primera y segunda tablas de códigos, los códigos más cortos se hacen corresponder adaptablemente con los pares de serie-nivel respectivos que tienen valores de serie más pequeños que componen los pares de serie-nivel, y en la segunda tabla de códigos, los valores de serie de pares de serie-nivel con los que los códigos más cortos se hacen corresponder, son pequeños en promedio en comparación con la primera tabla de códigos. Por lo tanto, este procedimiento de decodificación de longitud variable es eficaz en casos en los que el parámetro de cuantificación en relación con coeficientes que constituyen los datos objetivos que se van a procesar sea pequeño.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de decodificación para los códigos, la reconstitución de un par de serie-nivel de un código se realiza para cada bloque que está compuesto de un número predeterminado de coeficientes que componen los datos de coeficiente, y en la etapa de procesamiento de la tabla de códigos, la segunda tabla de códigos se forma de acuerdo con un número de coeficientes ya procesados que se han obtenido por el procedimiento de decodificación en un bloque objetivo que es un objeto del procedimiento de decodificación. Por lo tanto, una tabla de códigos que no incluye pares de valores de serie y valores de nivel que nunca aparecerán, se puede emplear como la segunda tabla de códigos, por lo que puede implementarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que tiene una mayor eficiencia.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, en la etapa de detección del valor numérico, la detección de un par de serie-nivel que corresponde al código se realiza a partir de un par de serie-nivel que tiene un componente de la mayor frecuencia de datos de imagen de componente de alta frecuencia a componente de baja frecuencia. Por lo tanto, puede emplearse una tabla de códigos que no incluye pares de valores de serie y valores de nivel que nunca aparecerán como la segunda tabla de códigos, por lo que puede implementarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que aumenta la velocidad de compresión de forma más eficaz.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, la segunda tabla de códigos se forma cambiando solamente correspondencias que pueden ser operadas regularmente, entre correspondencias entre el par de serie-nivel y el código incluido en la primera tabla de código. Por lo tanto, puede reducirse una operación aritmética que es necesaria para la formación de la segunda tabla de códigos.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, los coeficientes que constituyen los datos de coeficiente se obtienen cuantificando los componentes de frecuencia de datos de imagen, de acuerdo con una etapa de cuantificación que corresponde a los datos de imagen, y en la etapa de selección de tabla de códigos, se realiza la conmutación entre la primera tabla de códigos y la segunda tabla de códigos de acuerdo con un valor de la etapa de cuantificación. Por lo tanto, una tabla de códigos que es adecuada para la etapa de cuantificación puede emplearse como la tabla de códigos que se va a usar en el procedimiento de decodificación de longitud variable para coeficientes que constituyen los datos objetivo que se van a procesar.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, la etapa de selección de tabla de códigos incluye una etapa de conmutación de tabla de códigos para la conmutación entre la primera tabla de códigos y la segunda tabla de códigos de acuerdo con una señal de instrucciones conmutadas, y en la etapa de decodificación, se realiza la decodificación de la señal de instrucciones conmutadas. Por lo tanto, una tabla de códigos que se va a emplear en el procedimiento de decodificación de longitud variable puede conmutarse de acuerdo con características de datos objetivo que se van a procesar o similares.
De acuerdo con la presente invención, en el procedimiento de decodificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de decodificación para los códigos, la reconstitución de un par de serie-nivel de un código se realiza para cada bloque que está compuesto de un número predeterminado de coeficientes que componen los datos de coeficientes, y en la etapa de procesamiento de la tabla de códigos, la segunda tabla de códigos está formada de acuerdo con una suma de un número de coeficientes ya procesados en un bloque objetivo que es un objeto del procedimiento de decodificación, que se ha obtenido por el procedimiento de decodificación para el bloque objetivo, y un número de coeficientes no cero no decodificados en el bloque objetivo, que aún no se han obtenido por el procedimiento de decodificación para el bloque. Por lo tanto, se emplea una tabla de códigos que no incluyen pares de valores de serie y valores de nivel que nunca aparecerán como la segunda tabla de códigos, por lo que puede implementarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que tiene una eficiencia mucho más mayor.
De acuerdo con la presente invención, se proporciona un aparato de decodificación de longitud variable que decodifica datos codificados que están compuestos de una pluralidad de códigos, obtenidos realizando la codificación de longitud variable para datos de coeficiente que se componen de una pluralidad de coeficientes, incluyendo: una unidad de decodificación para someter los respectivos códigos a un procedimiento de decodificación para decodificar los datos codificados con el fin de reconstituir los datos de coeficiente que se componen de la pluralidad de coeficientes, usando tablas códigos plurales que indican correspondencias entre los valores de los coeficientes y códigos, y esta unidad de decodificación incluye: una unidad de selección de tabla de códigos para seleccionar una tabla de códigos de varias tablas de códigos de acuerdo con al menos una de información acerca de un coeficiente decodificado que se ha decodificado y un parámetro que se relaciona al procedimiento de decodificación de los coeficientes; y una unidad de detección de valor para detectar el valor que corresponde a un código no decodificado que aún no se ha decodificado, usando la tabla de código seleccionada. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que tiene la eficiencia de la codificación superior, que suprime de forma eficaz la información redundante en datos de coeficientes cambiando una tabla de códigos, para codificar los datos de coeficientes.
De acuerdo con la presente invención, en el aparato de decodificación de longitud variable que se ha mencionado anteriormente, los coeficientes se obtienen cuantificando los componentes de frecuencia de datos de imagen de acuerdo con una etapa de cuantificación que corresponde a los datos de imagen, y la unidad de selección de tabla de códigos selecciona la tabla de códigos que se usa por la unidad de detección de valor numérico, de acuerdo con un valor de la etapa de cuantificación. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que siempre emplea una tabla de códigos que se adapte al valor de la etapa de cuantificación y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el aparato de decodificación de longitud variable que se ha mencionado anteriormente, la unidad de selección de tabla de códigos selecciona la tabla de códigos que se usa por la unidad de detección del valor numérico, de acuerdo con información acerca de un coeficiente decodificado. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que codifica los coeficientes cuantificados usando siempre una tabla de codificación que se adapte al número de coeficientes no decodificados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el aparato de decodificación de longitud variable que se ha mencionado anteriormente, de acuerdo con el procedimiento de decodificación para los códigos, el código es decodificado para reconstituir un valor de serie que indica un número de coeficientes cero sucesivos cuyos valores son cero, y un valor de nivel que indica un valor de un coeficiente no cero seguido de los coeficientes cero, respectivamente, la unidad de selección de tabla de códigos selecciona una tabla de códigos a partir de varias tablas de códigos que indican correspondencias entre el valor de serie y el código, de acuerdo con un número de valores de serie decodificados, y la unidad de detección de valores detecta un valor de serie que corresponde a un código decodificado, en base a la tabla de códigos seleccionada. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable que realiza la asignación de códigos a valores de serie usando siempre una tabla de códigos que se adapte al número de valores de serie aún no procesados y maximice la eficiencia de la codificación.
De acuerdo con la presente invención, en el aparato de decodificación de longitud variable que se ha mencionado anteriormente, los coeficientes se obtienen cuantificando los componentes de frecuencia de datos de imagen de acuerdo con una etapa de cuantificación que corresponde a los datos de imagen, y la unidad de decodificación realiza el procedimiento de decodificación para los códigos, tales que el valor que corresponde a los códigos se obtiene del componente de alta frecuencia a componente de baja frecuencia. Por lo tanto, puede realizarse un procedimiento de decodificación de longitud variable que corresponde a un procedimiento de codificación de longitud variable puede reducir adicionalmente el número total de bits que corresponde a códigos asignados a los coeficientes.
De acuerdo con la presente invención, se proporciona un medio de almacenamiento que contiene un programa para ejecutar un procedimiento de decodificación de longitud variable para decodificar datos codificados que se componen de varios códigos, obtenidos realizando la codificación de longitud variable a datos de coeficientes que se componen de varios coeficientes, mediante un ordenador, y este programa incluye una etapa de decodificación para someter los respectivos códigos a un procedimiento de decodificación para decodificar los datos codificados con el fin de reconstituir los datos de coeficiente que se componen de la pluralidad de coeficientes, usando varias tablas de códigos que indican las correspondencias entre el valor de los coeficientes y los códigos, y además esta etapa de decodificación incluye: una etapa de selección de tabla de códigos para seleccionar la tabla de códigos de acuerdo con al menos una de información acerca de un coeficiente decodificado que se ha decodificado y un parámetro relacionado con un procedimiento de decodificación de los coeficientes; y una etapa de detección de valores para detectar el valor correspondiente a un código no decodificado que todavía no se ha decodificado, usando la tabla de códigos seleccionada. Por lo tanto, puede implementarse mediante software un procedimiento de decodificación de longitud variable correspondiente a un procedimiento de codificación de longitud variable que tiene una mayor eficiencia de codificación, que puede borrar de forma eficaz la información redundante incluida en los datos de coeficiente cambiando una tabla de códigos, para codificar los datos de coeficientes.
La figura 1 es un diagrama de bloques para explicar un aparato de codificación de imágenes 101 de acuerdo con una primera realización de la presente invención.
La figura 2 es un diagrama de bloques que ilustra una unidad de codificación por longitud de series RLE1 que constituye el aparato de codificación de imágenes 101 de acuerdo con la primera realización.
Las figuras 3(a)-3(d) son diagramas para explicar la exploración en zigzag por la unidad de codificación por longitud de series RLE1, y las figuras 3(e) y 3(f) son diagramas para explicar la reordenamiento de los valores de serie y valores de nivel.
Las figuras 4 son diagramas para explicar el procesamiento en un codificador de longitud variable LVLC de la unidad de codificación por longitud de series RLE1: la figura 4(a) es un diagrama de flujo que muestra un procedimiento de codificación de longitud variable para un valor de nivel, y la figura 4(b) es una tabla de códigos que se usa en el procedimiento de codificación de longitud variable para el valor de nivel.
Las figuras 5 son diagramas para explicar el procesamiento en un codificador de longitud variable RVLC o de la unidad de codificación por longitud de series RLE1: la figura 5(a) es un diagrama de flujo que muestra un procedimiento de codificación de longitud variable para un valor de serie, y la figura 5(b) es una tabla de códigos que se usa en el procedimiento de codificación de longitud variable para el valor de serie.
Las figuras 6 son diagramas que muestran el número total de bits correspondiente a los códigos que se asignan a los valores de niveles (un parámetro de cuantificación es relativamente pequeño) por el codificador de longitud variable LevVLC en un caso en el que se emplee una tabla de códigos L2 (figura 6 (a)), y en un caso en el que se emplee una tabla de códigos L1 (figura 6(b)), respectivamente.
Las figuras 7 son diagramas que muestran el número total de bits correspondiente a los códigos que se asignan a valores de nivel (un parámetro de cuantificación es relativamente grande) por el codificador de longitud variable LevVLC en un caso en el que se emplee la tabla de códigos L2 (figura 7 (a)), y en un caso en el que se emplee la tabla de códigos L1 (figura 7(b)), respectivamente.
Las figuras 8 son diagramas que muestran el número total de bits correspondiente a los códigos que se asignan a valores de serie por el codificador de longitud variable RVLC en un caso en el que se emplee una tabla de códigos específica (figura 8 (a)), un caso en el que se realice el cambio de una tabla de códigos y la reordenamiento de los valores de serie (figura 8(b)), y un caso en el que solamente se realice el cambio de una tabla de códigos (figura 8 (c)), respectivamente.
La figura 9 es un diagrama de bloques para explicar un aparato de decodificación de imágenes 102 de acuerdo con una segunda realización de la presente invención.
La figura 10 es un diagrama de bloques que ilustra una unidad de decodificación por longitud de series RLD1 que constituye el aparato de decodificación de imágenes 102 de acuerdo con la segunda realización.
Las figuras 11 son diagramas para explicar un procedimiento de decodificación de longitud variable por un decodificador de longitud variable LVLD: la figura 11 (a) es un diagrama de flujo que muestra un procedimiento de decodificación de longitud variable para reconstituir un valor de nivel, y la figura 11(b) es una tabla de códigos que se emplea en el procedimiento de decodificación de longitud variable.
Las figuras 12 son diagramas para explicar un procedimiento de decodificación de longitud variable por un decodificador de longitud variable RVLD: la figura 12(a) es un diagrama de flujo que muestra un procedimiento de decodificación de longitud variable para reconstituir un valor de serie, y la figura 12(b) es una tabla de códigos que
se emplea en el procedimiento de decodificación de longitud variable.
La figura 13 es un diagrama de bloques para explicar un aparato de codificación de imágenes 103 de acuerdo con una tercera realización de la presente invención.
La figura 14 es un diagrama de bloques que ilustra una unidad de codificación por longitud de series RLE2 que constituye el aparato de codificación de imágenes 103 de acuerdo con la tercera realización.
Las figuras 15 son diagramas que muestran los ejemplos T2a (figura 15 (a)) y T2b (figura 15 (b)) de una tabla de códigos (segunda tabla de códigos) que se forma por la unidad de codificación por longitud de series RLE2 de acuerdo con la tercera realización.
Las figuras 16 son diagramas que muestran otros ejemplos T2c (figura 16 (a)), T2d (figura 16(b)), T2e (figura 16 (c)) de la tabla de códigos (segunda tabla de códigos) que se forma por la unidad de codificación por longitud de series RLE2 de acuerdo con la tercera realización.
La figura 17 es un diagrama que muestra un ejemplo de un orden en el que los componentes cuantificados se codifican por la unidad de codificación por longitud de series RLE2 de acuerdo con la tercera realización.
La figura 18 es un diagrama de bloques para explicar un aparato de decodificación de imágenes 104 de acuerdo con una cuarta realización de la presente invención.
La figura 19 es un diagrama de bloques que ilustra una unidad de decodificación por longitud de series RLD2 que constituye el aparato de decodificación de imágenes 104 de acuerdo con la cuarta realización.
La figura 20 es un diagrama de bloques para explicar un aparato de codificación de imágenes 105 de acuerdo con una quinta realización de la presente invención.
La figura 21 es un diagrama de bloques que ilustra una unidad de codificación por longitud de series RLE3 que constituye el aparato de codificación de imágenes 105 de acuerdo con la quinta realización.
La figura 22 es un diagrama de bloques para explicar un aparato de decodificación de imágenes 106 de acuerdo con una sexta realización de la presente invención.
La figura 23 es un diagrama de bloques que ilustra una unidad de decodificación por longitud de series RLD3 que constituye el aparato de decodificación de imágenes 106 de acuerdo con la sexta realización.
Las figuras 24 son diagramas que muestran los ejemplos Ta (figura 24(a)), Tb (figura 24(b)) y Tc (figura 24 (c)) de una tabla de códigos de longitud variable que se emplea por la unidad de codificación por longitud de series RLE3 de acuerdo con la quinta realización y la unidad de decodificación por longitud de series RLD3 de acuerdo con la sexta realización.
Las figuras 25 son diagramas para explicar un medio de almacenamiento de datos que contiene un programa para implementar un procedimiento de codificación de longitud variable o un procedimiento de decodificación de longitud variable de acuerdo con cualquiera de las realizaciones anteriores por un sistema informático (figura 25(a) y 25(b)), y el sistema informático (figura 25 (c)).
La figura 26 es un diagrama para explicar una aplicación de un procedimiento de codificación de imágenes y un procedimiento de decodificación de imágenes de acuerdo con cualquiera de las realizaciones, y esta figura muestra un sistema de suministro de contenidos que implementa los servicios de distribución de contenidos.
La figura 27 es un diagrama para explicar un teléfono móvil que emplea un procedimiento de codificación de imágenes y un procedimiento de codificación de imágenes de acuerdo con cualquiera de las realizaciones.
La figura 28 es un diagrama de bloques que ilustra el teléfono móvil como se muestra en la figura 27.
La figura 29 es un diagrama que muestra un sistema de radiodifusión que emplea un aparato de codificación de imágenes o un aparato de decodificación de imágenes de acuerdo con cualquiera de las realizaciones.
La figura 30 es un diagrama de bloques que ilustra un aparato de codificación de imágenes convencional 201a.
La figura 31 es un diagrama de bloques para explicar una unidad de codificación RLE0a que constituye el aparato de codificación de imágenes convencional 201a.
La figura 32 es un diagrama de bloques para explicar un aparato de decodificación convencional 202a correspondiente al aparato de codificación de imágenes convencional 201a.
La figura 33 es un diagrama de bloques para explicar una unidad de decodificación RLD0a que constituye el aparato de decodificación de imágenes convencional 202a.
La figura 34 es un diagrama de bloques que ilustra un aparato de codificación de imágenes 201b que realiza una codificación por longitud de series convencional.
La figura 35 es un diagrama de bloques para explicar una unidad de codificación por longitud de series RLE0b que constituye el aparato de codificación de imágenes convencional 201b.
La figura 36 es un diagrama de bloques para explicar un aparato de decodificación de imágenes convencional 202b correspondiente al aparato de codificación de imágenes convencional 201b.
La figura 37 es un diagrama de bloques para explicar una unidad de decodificación por longitud de series RLD0b que constituye el aparato de decodificación de imágenes convencional 202b.
La figura 38 es un diagrama de bloques para explicar otro aparato de codificación de imágenes 201c que realiza la codificación por longitud de series convencional.
La figura 39 es un diagrama de bloques que ilustra una unidad de codificación por longitud de series RLE0c que constituye el aparato de codificación de imágenes convencional 201c.
La figura 40 es un diagrama de bloques para explicar un aparato de decodificación de imágenes convencional 202c correspondiente al aparato de codificación de imágenes convencional 201c.
La figura 41 es un diagrama de bloques para explicar una unidad de decodificación por longitud de series RLD0c que constituye el aparato de decodificación de imágenes convencional 202c.
La figura 42 es un diagrama que muestra un ejemplo de una tabla de códigos que se emplea por la unidad de codificación por longitud de series RLE0c que constituye el aparato de codificación de imágenes convencional 201c.
La figura 43 es un diagrama que muestra un ejemplo de un orden en el que los componentes cuantificados se codifican por las unidades de codificación por longitud de series convencionales RLE0a, RLE0b o RLE0c.
Inicialmente, se describirán los principios fundamentales de la presente invención.
Generalmente, cuando la etapa de cuantificación es desigual, los componentes cuantificados tienen valores absolutos más pequeños. Después, la serie (la longitud de coeficientes cero que continúan sucesivamente) se hace más larga, y por consiguiente el valor de nivel (el valor de un coeficiente no cero) tiene un valor absoluto más pequeño. Por el contrario, cuando la etapa de cuantificación es buena, los componentes cuantificados tienen valores absolutos mayores. Por lo tanto, la serie se hace más corta y, por consiguiente, el valor de nivel tiene un valor absoluto más grande.
Además, cuando la codificación de longitud variable de muchos componentes cuantificados ya se ha completado en un bloque de objeto que se va a procesar y el número de componentes cuantificados que no están codificados es pequeño, nunca aparece un valor de serie que exceda el número de componentes cuantificados no codificados. Por lo tanto, cuando los pares de estos valores de serie y valores de nivel se eliminan, la eficiencia de la codificación aumenta.
A partir de este punto de vista, la presente invención cambia una tabla de códigos que indica las correspondencias entre la información de valor numérico que muestra el tamaño de un coeficiente cuantificado y un código, de acuerdo con un estado de un procedimiento de codificación de longitud variable o un procedimiento de decodificación de longitud variable para coeficientes cuantificados y un parámetro asociado con la generación de coeficientes cuantificados (parámetro de cuantificación), eliminando de esta manera de forma eficaz la información redundante incluida en los datos objetivo (coeficiente cuantificado) del procedimiento de codificación de longitud variable.
Por ejemplo, el cambio de la tabla de códigos se realiza seleccionando una tabla de códigos (primera tabla de códigos), que se emplea en el procedimiento de codificación o decodificación de longitud variable convencional, o una segunda tabla de códigos que se forma en base a la primera tabla de códigos y se optimiza por los datos que se van a procesar, en base a un estado de procesamiento de coeficientes cuantificados. No es necesario formar la segunda tabla de códigos siempre en base a la primera tabla de códigos, pero cualquier tabla de códigos que se adapte para procesar datos objetivo puede seleccionarse como una tabla de códigos.
En lo sucesivo en este documento, se describirán las realizaciones de la presente invención referencia a las figuras 1 a 25.
[Realización 1]
La figura 1 es un diagrama de bloques para explicar un aparato de codificación de imágenes de acuerdo con una primera realización de la presente invención.
Este aparato de codificación de imágenes 101 de acuerdo con la primera realización, en lugar de la unidad de codificación por longitud de series RLE0b en el aparato de codificación de imágenes convencional 201b mostrado en la figura 34, que somete una transmisión (componentes cuantificados) QS de la unidad de cuantificación Q a un procedimiento de codificación de longitud variable y transmite una corriente codificada Str0b, tiene una unidad de codificación por longitud de series RLE1 para someter la transmisión por la unidad de cuantificación Q a un procedimiento de codificación de longitud variable en base a un parámetro de cuantificación QP y a una señal de selección de VLC VlcSel, y transmite una corriente codificada Str1.
En este punto, el parámetro de cuantificación QP es un parámetro que indica un valor de una etapa de cuantificación, y la etapa de cuantificación es aproximadamente proporcional al parámetro de cuantificación QP. Para ser más específicos, cuando el parámetro de cuantificación QP es mayor, los componentes cuantificados tienen valores absolutos más pequeños, entonces la serie cero de los componentes cuantificados (la longitud de componentes que continúan sucesivamente cuyos valores son cero) se hace más larga, y un valor de nivel tiene un valor absoluto más pequeño.
La figura 2 es un diagrama de bloques para explicar una construcción específica de la unidad de codificación por longitud de series RLE1.
Esta unidad de codificación por longitud de series, similar a la unidad de codificación por longitud de series convencional RLE0b mostrada en la figura 35, tiene un escáner en zigzag Scan para transformar una transmisión de la unidad de cuantificación Q (componentes cuantificados) QS en una matriz bidimensional, en coeficientes cuantificados Coef en una matriz unidimensional (es decir, un orden predeterminado); una calculadora de serie RunCal para calcular el número de componentes cuantificados sucesivos cuyos valores son cero (coeficientes cero) Coef y transmitir un valor de serie Run que indica el número de coeficientes cero sucesivos; y una calculadora de nivel LevCal para calcular un valor de un componente cuantificado cuyo valor no es cero (coeficiente no cero) Coef, seguido de los coeficientes cero, y transmitir un valor de nivel Lev que indica el valor del coeficiente no cero.
La figura 3(a) muestra una matriz bidimensional de componentes cuantificados Q1 a Q6 correspondientes a un bloque, y la figura 3(b) muestra el transcurso de una exploración de los componentes cuantificados Q1 a Q6 en el escáner en zigzag Scan por las flechas A1 a A15. En este punto, se obtiene un componente cuantificado Q1 cuantificando los componentes DC de componentes de frecuencia correspondientes a una señal de imagen, y los componentes cuantificados Q2 a Q16 se obtienen cuantificando los componentes AC de componentes de frecuencia correspondientes a la señal de imagen. La figura 3(c) muestra una matriz unidimensional (orden de codificación) de los componentes cuantificados Q1 a Q16, que se obtiene por la exploración en zigzag en el escáner en zigzag Scan, y la figura 3(d) muestra una matriz unidimensional de valores numéricos concretos que indican los valores de los componentes cuantificados Q1 a Q16.
La unidad de codificación por longitud de series RLE1 incluye adicionalmente una unidad de reordenamiento Lreodr para reordenar los valores de nivel Lev que se transmiten de la calculadora de nivel LevCal; una unidad de reordenamiento Rreodr para reordenar los valores de serie Run que se transmiten de la calculadora de serie RunCal; y una calculadora numérica NumClc para calcular el número Cnum de coeficientes no codificados en un bloque objetivo en base a las transmisiones de la calculadora de serie RunCal y transmitir el número calculado. La figura 3(e) muestra los órdenes de los valores de serie y valores de nivel que se obtienen de los valores numéricos de los componentes cuantificados que tienen las disposiciones que se muestra en las figuras 3(c) y 3(d). La figura 3(f) muestra los órdenes de los valores de serie y los valores de nivel después de la reordenamiento.
La unidad de codificación por longitud de series RLE1 incluye adicionalmente un codificador de longitud variable LVLC para someter una transmisión ROLev de la unidad de reordenamiento Lreodr a un procedimiento de codificación de longitud variable en base al parámetro de cuantificación QP y una señal de selección VISel, y transmitir una secuencia de códigos (secuencia de códigos de valor de nivel) LStr; un codificador de longitud variable RVLC para someter una transmisión RORun de la unidad de reordenamiento Rreodr a un procedimiento de codificación de longitud variable en base al número Cnum de los coeficientes no codificados, y transmitir una secuencia de códigos (secuencia de códigos de valor de serie) RStr; y un multiplexor MUX para multiplexar la secuencia de códigos LStr y la secuencia de códigos RStr para cada bloque y transmitir una corriente codificada multiplexada Str1.
Las figuras 4 son diagramas para explicar el procedimiento de codificación de longitud variable por el codificador de longitud variable LVLC. La figura 4 (a) es un diagrama de flujo que explica el procedimiento de codificación de longitud variable para un valor de nivel, y la figura 4(b) es un diagrama explicativo que muestra las tablas de códigos que se emplean en el procedimiento de codificación de longitud variable para el valor de nivel.
La figura 4(b) muestra una disposición Alev de valores de nivel (Level), una disposición Cal de códigos (palabras de código) en un caso en el que el parámetro de cuantificación QP sea más pequeño que un umbral, y una disposición Ca2 de códigos (palabras de código) en un caso en el que el parámetro de cuantificación QP sea igual a o mayor que el umbral.
En este punto, una tabla de códigos L1 está constituida por la disposición Alev de los valores de nivel (Level) y la disposición Cal de los códigos (palabras de código) en el caso en el que el parámetro de cuantificación QP sea más pequeño que el umbral. Esta tabla de códigos L1 muestra la correspondencia entre el valor de nivel (Level) y el código en el caso en el que el parámetro de cuantificación QP sea más pequeño que el umbral. Una tabla de códigos L2 está constituida por la disposición Alev de los valores de nivel (Level) y la disposición Ca2 de los códigos (palabras de código) en el caso en el que el parámetro de cuantificación QP sea igual a o mayor que el umbral. Esta tabla de códigos L2 muestra la correspondencia entre el valor de nivel (Level) y el código en el caso en el que el parámetro de cuantificación QP sea igual a o mayor que el umbral.
Las figuras 5 son diagramas para explicar el procedimiento de codificación de longitud variable por el codificador de longitud variable RVLC. La figura 5(a) es un diagrama de flujo para explicar un procedimiento de codificación de longitud variable para un valor de serie, y la figura 5(b) es un diagrama explicativo que muestra las tablas de códigos que se emplean en el procedimiento de codificación de longitud variable para el valor de serie.
La figura 5(b) muestra una disposición Arun de los valores de serie (Run), una disposición Cbl de códigos (palabras de código) en un caso en el que el número de coeficientes cero no codificados sea uno, una disposición Cb2 de códigos (palabras de código) en un caso en el que el número de coeficientes cero no codificados sea dos, una disposición Cb3 de códigos (palabras de códigos) en un caso en el que el número de coeficientes cero no codificados sea tres, una disposición Cb4 de códigos (palabras de código) en un caso en el que el número de coeficientes cero no codificados sea cuatro, una disposición Cb5 de códigos (palabras de códigos) en un caso en el que el número de coeficientes cero no codificados sea cinco, una disposición Cb6 de códigos (palabras de código) en un caso en el que el número de coeficientes cero no codificados sea seis, una disposición Cb7 de códigos (palabras de código) en un caso en el que el número de coeficientes cero no codificados sea siete, y una disposición Cb8 de códigos (palabras de código) en un caso en el que el número de coeficientes cero no codificados sea ocho o más.
En este punto, una tabla de códigos R1 está constituida por la disposición Arun de los valores de serie (Run) y la disposición Cbl de códigos (palabras de código) en el caso en el que el número de coeficientes cero no codificados sea uno, y esta tabla de códigos R1 muestra las correspondencias entre el valor de serie (Run) y el código en el caso en el que el número de coeficientes cero no codificados sea uno. De manera similar, las tablas de código R2, R3, R4, R5, R6 y R7 están constituidas por la disposición Arun de los valores de serie (Run), y las disposiciones Cb2, Cb3, Cb4, Cb5, Cb6 y Cb7 de códigos (palabras de código) en los casos en los que los números de coeficientes cero no codificados sean dos, tres, cuatro, cinco, seis y siete, respectivamente, y muestran las correspondencias entre el valor de serie (Run) y el código en los casos en los que los números de coeficientes cero no codificados son dos, tres, cuatro, cinco, seis y siete, respectivamente. Además, una tabla de códigos R8 está constituida por la disposición Arun de los valores de serie (Run), y la disposición Cb8 de códigos (palabras de código) en el caso en el que el número de coeficientes cero no codificados sea ocho o más, y muestra la correspondencia entre el valor de serie (Run) y el código en el caso en el que el número de coeficientes cero no codificados sea ocho o más.
A continuación, se describirá su funcionamiento.
En el aparato de codificación de imágenes 101 de acuerdo con la primera realización, la unidad de bloqueo Blk, la unidad de transformación de frecuencia Trans, y la unidad de cuantificación Q funcionan de las misma manera que en el aparato de codificación de imágenes convencional 201a (véase la figura 30) o el aparato de codificación de imágenes 201b (véase la figura 34).
Más específicamente, cuando una señal de imagen Vin se introduce al aparato de codificación de imágenes 101, la unidad de bloqueo Blk divide la señal de imagen introducida Vin en unidades de bloque, para generar señales de imagen (componentes de valores de píxeles) BlkS correspondientes a los respectivos bloques. La unidad de transformación de frecuencia Trans transforma los componentes de valores de píxeles BlkS en componentes de frecuencia TransS de acuerdo con la transformación DCT (Transformación de Coseno Discreta) o de óndula. La unidad de cuantificación Q cuantifica los componentes de frecuencia TransS en una etapa de cuantificación predeterminada en base a un parámetro de cuantificación QP para transmitir componentes cuantificados QS, así como también transmite el parámetro de cuantificación QP. La unidad de codificación por longitud de series RLE1 somete los componentes cuantificados QS a un procedimiento de codificación de longitud variable, y transmite una corriente codificada Str1.
En lo sucesivo en este documento, se describirá específicamente el funcionamiento de la unidad de codificación por longitud de series RLE1.
El escáner en zigzag Scan realiza la exploración en zigzag de los componentes cuantificados QS que se transmiten desde la unidad de cuantificación Q (es decir, coeficientes cuantificados plurales Q1 a Q16 en una matriz bidimensional como se muestra en la figura 3(a)), para transformar los componentes cuantificados QS en coeficientes cuantificados Coef. En este punto, la exploración en zigzag de los componentes cuantificados QS se realiza explorando los varios componentes cuantificados Q1 a Q16 en una matriz bidimensional como se muestra en la figura 3(a) a lo largo del transcurso indicado por las flechas A1 a A15 en la figura 3(b), para transformar la disposición de la pluralidad de coeficientes cuantificados Q1 a Q16 en una matriz unidimensional (orden de procesamiento) como se muestra en la figura 3(c). En este punto, la figura 3(d) muestra una disposición de los valores numéricos concretos de la pluralidad de coeficientes cuantificados Q1 a Q16 que se han sometido a la exploración en zigzag (20, -10, 5, 0, 2, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1).
La calculadora de serie RunCal calcula el número de coeficientes cero sucesivos en base a los componentes cuantificados Coef que se transmiten desde el escáner en zigzag Scan, y transmite un valor de serie Run que indica el número calculado. La figura 3(e) muestra los valores de serie específicos que se transmiten sucesivamente desde la calculadora de serie RunCal, de acuerdo con un orden en el que los valores de serie se transmiten: (0, 0, 0, 1, 3, 3, 2). Por otra parte, la calculadora de nivel LevCal calcula un valor de un coeficiente no cero seguido de los coeficientes cero sucesivos en base a los componentes cuantificados Coef transmitidos desde el escáner en zigzag Scan, y transmite un valor de nivel Lev que indica el valor calculado. La figura 3(e) muestra los valores de nivel específicos que se transmiten sucesivamente desde la calculadora de nivel LevCal, de acuerdo con un orden en el que los valores de nivel se transmiten: (20, -10, 5, 2, 1, -1, 1).
La unidad de reordenamiento Rreodr reordena los valores de serie que se han transmitido sucesivamente desde la calculadora de serie RunCal en un orden inverso a como los valores de serie se han transmitido. La figura 3(f) muestra un orden cambiado de los valores de serie específicos que se han reordenados por la unidad de reordenamiento Rreodr: (2, 3, 3, 1, 0, 0, 0). La calculadora numérica NumClc calcula el número de coeficientes no codificados en base a los valores de serie Run que se producen de la calculadora de serie RunCal, y transmite el número calculado de coeficientes no codificados (en lo sucesivo en este documento, también denominado como número de coeficiente no codificado) Cnum. Por otra parte, la unidad de reordenamiento Lreodr reordena los valores de nivel que se han transmitido sucesivamente desde la calculadora de nivel LevCal en un orden inverso a como los valores de nivel se han transmitido. La figura 3(f) muestra un cambio del orden de los valores de nivel específicos que se han reordenado por la unidad de reordenamiento Lreodr: (1, -1, 1, 2, 5, -10, 20).
El codificador de longitud variable RVLC somete los valores de serie RORun que se han reordenado como la transmisión de la unidad de reordenamiento Rreodr, a un procedimiento de codificación de longitud variable para asignar códigos (palabras de código) a los valores de serie RORun usando varias tablas de códigos que indican las correspondencias entre los valores de serie y el código (palabra de código), en base al número de coeficiente cero no codificado Cum transmitido por la calculadora numérica NumClc, y transmite una secuencia de código de valor de serie RStr. Por otra parte, el codificador de longitud variable LVLC somete los valores de nivel ROLev que se han reordenado como la transmisión desde la unidad de reordenamiento Lreodr a un procedimiento de codificación de longitud variable para asignar códigos (palabra de códigos) a los valores de nivel ROL, usando varias tablas de códigos que indican las correspondencias entre el valor de nivel y el código (palabra de código) en base al parámetro de cuantificación QP de la unidad de cuantificación Q y una señal de selección VlcSel de la selección de instrucción exterior de la codificación de longitud variable, y transmite una secuencia de códigos de valor de nivel LStr.
Después, el multiplexor MUX multiplexa la secuencia de códigos de valor de nivel Lstr y la secuencia de códigos de valor de serie Rstr, bloque por bloque, y transmite una corriente codificada multiplexada Str1.
En este punto, el procedimiento para mutiplexar la secuencia de códigos de valor de nivel LStr y la secuencia de códigos de valor de serie RStr se realiza bloque por bloque, por ejemplo, de tal manera que la secuencia de códigos RStr correspondiente a todos los valores de serie de un bloque objetivo se sigue por la secuencia de códigos LStr correspondiente a todos los valores de nivel del bloque objetivo, o la secuencia de códigos LStr correspondiente a todos los valores de nivel del bloque objetivo se sigue por la secuencia de códigos RStr correspondiente a todos los valores de serie del bloque objetivo.
En lo sucesivo en este documento, se describirá específicamente el funcionamiento del codificador de longitud variable con referencia a las figuras 4.
El codificador de longitud variable LVLC obtiene el parámetro de cuantificación QP de la unidad de cuantificación Q (etapa Sa1), y determina si el valor del parámetro de cuantificación obtenido QP es igual a o mayor que un umbral del parámetro de cuantificación QP, que se mantiene en el codificador de longitud variable LVLC (etapa Sa2).
Cuando un resultado de esta determinación indica que el valor del parámetro de cuantificación obtenido QP es más pequeño que el umbral del parámetro de cuantificación QP, el codificador de longitud variable LVLC selecciona la tabla de códigos L1 que está constituida por la disposición Alev de los valores de nivel y la disposición Ca1 de códigos (palabras de código) (véase la figura 4(b)) (etapa Sa3), mientras que cuando el valor del parámetro de cuantificación obtenido QP es igual o mayor que el umbral del parámetro de cuantificación QP, selecciona la tabla de códigos L2 que está constituida por la disposición Alev de los valores de nivel y la disposición Ca2 de códigos (palabras de códigos) (véase la figura 4(b)) (etapa Sa4) .
Después, el codificador de longitud variable LVLC determina si existe algún valor de nivel no codificado Lev en un bloque objetivo (etapa Sa5). Cuando un valor de nivel no codificado Lev está incluido en el bloque objetivo, el codificador de longitud variable LVLC realiza un procedimiento para codificar el valor de nivel usando la tabla de códigos seleccionada, es decir, un procedimiento para asignar un código correspondiente al valor de nivel (etapa Sa6), y a partir de entonces realiza el procedimiento de la etapa Sa5. Por otra parte, cuando el resultado de la decisión en la etapa Sa5 indica que no existe valor de nivel no codificado Lev en el bloque objetivo, el codificador de longitud variable LVLC finaliza el procedimiento de codificación de longitud variable para los valores de nivel Lev.
En este punto, cuando la señal de selección de VLC VlcSel designa previamente un procedimiento de codificación de longitud variable usando una tabla de códigos específica, el codificador de longitud variable LVLC realiza un procedimiento de codificación de longitud variable para los valores de nivel usando la tabla de códigos específica, independientemente del valor del parámetro de cuantificación QP.
A continuación, se describirá específicamente el funcionamiento del codificador de longitud variable RVLC con referencia a las figuras 5.
El codificador de longitud variable RVLC determina si existe algún coeficiente no cero no codificado en el bloque objetivo en base a la transmisión (el número de coeficientes no codificados) Cnum de la calculadora numérica NumClc (etapa Sb1). Cuando un resultado de la determinación indica que existe un coeficiente no cero no codificado, el codificador de longitud variable RVLC calcula el número de coeficientes cero no codificados en el bloque objetivo en base a la transmisión Cnum de la calculadora numérica NumClc (etapa Sb2).
Después, el codificador de longitud variable RVLC selecciona una tabla de códigos de acuerdo con el número calculado de coeficientes cero no codificados (etapa Sb3). Para ser más específicos, el codificador de longitud variable RVLC selecciona la tabla de códigos R1 que está constituida por la disposición Arun de los valores de serie y la disposición Cbl de códigos (palabras de código) (véase la figura 5 (b)) cuando el número de coeficientes cero no codificados es uno. De manera similar, el codificador de longitud variable RVLC selecciona la tabla de códigos R2 cuando el número de coeficientes cero no codificados es dos, la tabla de códigos R3 cuando el número de los coeficientes es cuatro. Además, el codificador de longitud variable RVLC selecciona la tabla de códigos R5 cuando el número de los coeficientes cero no codificados es cinco, la tabla de códigos R6 cuando el número de los coeficientes es seis, y la tabla de códigos R7 cuando el número de los coeficientes es siete, respectivamente. Además, cuando el número de coeficientes cero no codificados es ocho o más, el codificador de longitud variable RVLC selecciona la tabla de códigos R8.
A continuación, el codificador de longitud variable RVLC realiza un procedimiento para codificar valores de serie Run usando la tabla de códigos seleccionada, es decir, un procedimiento para asignar códigos correspondientes a los valores de serie (etapa Sb4), y después realiza el procedimiento de determinación de la etapa Sb1.
En este punto, cuando el resultado de la determinación en la etapa Sb1 indica que no existe coeficiente no cero no codificado, el codificador de longitud variable RVLC finaliza el procedimiento de codificación de longitud variable para los valores de serie.
A continuación, se describirá un ejemplo específico en el que se selecciona una tabla de códigos en base al parámetro de cuantificación en la codificación de longitud variable de los valores de nivel como se ha descrito anteriormente, para aumentar de esta manera la eficiencia de la codificación.
Las figuras 6 muestran el número total de bits correspondiente a los códigos que se asignan a los valores de nivel cuando el parámetro de cuantificación QP es relativamente más pequeño, es decir, cuando las transmisiones (valores de nivel) de la calculadora de nivel LevCal que se han reordenado y se transmiten desde la unidad de reordenamiento Lreodr son 1, -1, 1, 2, 5, -10, 20 como se muestra en la figura 3(f).
Cuando el parámetro de cuantificación QP se determina que es igual a o mayor que un umbral y se emplea la tabla de códigos L2, los códigos (palabras de código) se asignan a valores de niveles respectivos como se muestra en la figura 6(a), y el número total de bits correspondiente a los códigos asignados es 75 bits.
Por otra parte, cuando el parámetro de cuantificación QP se determina que es más pequeño que el umbral y se emplea la tabla de códigos L1, los códigos (palabras de código) se asignan a los valores de nivel respectivos como se muestra en la figura 6 (b), y el número total de bits correspondiente a los códigos asignados es 47 bits.
Cuando el parámetro de cuantificación QP es relativamente más pequeño, la frecuencia de aparición de componentes cuantificados que tiene valores más grandes es mayor. Por lo tanto, es eficaz seleccionar la tabla de códigos L1 en la que los códigos más cortos se hacen corresponder en promedio también a los valores de nivel cuyos valores absolutos son relativamente grandes en comparación con la tabla de códigos L2 para aumentar la eficiencia de la codificación.
Las figuras 7 muestran el número total de bits correspondiente a los códigos que se asignan a los valores de nivel cuando el parámetro de cuantificación QP es relativamente más grande, es decir, cuando las transmisiones (los valores de nivel) de la calculadora de nivel LevCal que se han reordenado y se transmiten desde la unidad de reordenamiento Lreodr son 1, -1, 1, 1, 1, -2, 3, a diferencia del caso mostrado en la figura 3(f).
Cuando se determina que el parámetro de cuantificación QP es igual a o mayor que el umbral y se emplea la tabla de códigos L2, los códigos (palabras de códigos) se asignan a los respectivos valores de nivel como se muestra en la figura 7(a), y el número total de bits correspondiente a los códigos asignados es 15 bits.
Por otra parte, cuando se determina que el parámetro de cuantificación QP es más pequeño que el umbral y se emplea la tabla de códigos L1, los códigos (palabras de código) se asignan a los valores de nivel respectivos como se muestra en la figura 7(b), y el número total de bits correspondiente a los códigos asignados es 17 bits.
Como se ha descrito anteriormente, cuando el valor del parámetro de cuantificación QP es relativamente más grande, la frecuencia de aparición de los coeficientes de cuantificación que tienen valores más grandes es menor. Por consiguiente, es eficaz seleccionar la tabla de códigos L2 en la que los códigos más cortos se hacen corresponder intensivamente a los valores de nivel cuyos valores absolutos son relativamente más pequeños en comparación con la tabla de códigos L1, para aumentar la eficiencia de la codificación.
Las figuras 8 muestran el número total de bits correspondiente a los códigos que se asignan a los valores de serie transmitidos desde la calculadora de serie RunCal cuando los valores de serie son 0, 0, 0, 1, 3, 3, 2 como se muestra en la figura 3(e).
Cuando la reordenamiento de los valores de serie como en la unidad de codificación por longitud de series RLE1 y el cambio de la tabla de códigos no se realiza, pero siempre se emplea la tabla de códigos R8 mostrada en la figura 5(b), los códigos (palabras de código) se asignan a los valores de serie respectivos como se muestra en la figura 8 (a), y el número total de bits correspondiente al código asignado es 21 bits.
Cuando la reordenamiento de los valores de serie y el cambio de la tabla de códigos de acuerdo con el número de coeficientes cero no codificados se realiza como en la unidad de codificación por longitud de series RLE1, se asignan códigos (palabras de código) a los valores de serie respectivos como se muestra en la figura 8(b), y el número total de bits correspondiente a los códigos asignados es 13 bits. En este punto, cada vez que se asigna un código a un valor de serie, el número de coeficientes no codificados se reduce por un valor que se obtiene añadiendo uno a uno un valor de serie que se ha codificado inmediatamente antes. Esto es debido a que unos coeficientes cero sucesivos o únicos siempre están seguidos de un coeficiente no cero. Además, el número de coeficientes cero no codificados obtenido de varios valores de serie reordenados correspondientes a un bloque, que se transmiten de la unidad de reordenamiento Rreodr, es 15. Esto se debe a que un bloque que se procesa siempre tiene al menos un coeficiente no cero.
Cuando la reordenamiento de los valores de serie similar a la unidad de codificación por longitud de series RLE1 no se realiza, sino que solamente se realiza el cambio de la tabla de códigos de acuerdo con el número de coeficientes no cero, los códigos (palabras de código) se asignan a los respectivos valores de serie como se muestra en la figura 8(c), y el número total de bits correspondiente a los códigos asignados es 20 bits.
Como se ha descrito anteriormente, el aparato de codificación de imágenes 101 de acuerdo con la primera realización, incluye la unidad de codificación por longitud de series RLE1 que codifica los coeficientes cuantificados que se obtienen cuantificando los componentes de frecuencia de una señal de imagen, usando un valor de serie Run que indica el número de componentes cuantificados sucesivos cuyos valores son cero (coeficientes cero) Coef y un valor de nivel Lev que indica un valor de un componente cuantificado Coef cuyo valor no es cero (coeficiente no cero), seguido de los coeficientes cero. Por lo tanto, los coeficientes cuantificados pueden codificarse a una mayor eficiencia de codificación, siendo eliminada su información redundante.
Además, la unidad de codificación por longitud de series RLE1 de acuerdo con la primera realización incluye el codificador de longitud variable LVLC que selecciona una tabla de códigos de acuerdo con el valor del parámetro de cuantificación QP y realiza una codificación de longitud variable de valores de nivel usando la tabla de códigos seleccionada, por lo que se reduce el número total de bits correspondiente a los códigos que se asignan a los valores de nivel. La unidad de codificación por longitud de series RLE1 incluye adicionalmente la unidad de reordenamiento Rreodr que reordena varios valores de serie que se obtienen de los coeficientes cuantificados a los que se ha dado un orden de procesamiento predeterminado, del componente de alta frecuencia a componente de baja frecuencia; y el codificador de longitud variable RVLC que selecciona una tabla de códigos de acuerdo con el número de coeficientes cero no codificados en el boque objetivo, y realiza la codificación de longitud variable de los valores de serie reordenados usando la tabla de códigos seleccionada. Por lo tanto, el número total de bits correspondiente a los códigos que se asignan a los valores de serie es eficazmente reducido, por lo que aumenta la eficiencia de la codificación.
En esta primera realización, el codificador de longitud variable RVLC selecciona una tabla de códigos de acuerdo con el número, de coeficientes cero no codificados en el bloque objetivo (es decir, la transmisión Cnum de la calculadora numérica NumClc). Sin embargo, el codificador de longitud variable RVLC puede seleccionar una tabla de códigos en base a no sólo la transmisión Cnum de la calculadora numérica, sino también en base a la señal de selección de VLC VlcSel. Por ejemplo, cuando se indica previamente un procedimiento de codificación de longitud variable que una tabla de códigos específica por la señal de selección de VLC VlcSel, el codificador de longitud variable RVLC realiza un procedimiento de codificación de longitud variable para el valor de serie usando la tabla de códigos específica, independientemente del número de coeficientes cero no codificados en el bloque objetivo.
[Realización 2]
La figura 9 es un diagrama de bloques para explicar un aparato de decodificación de imágenes de acuerdo con una segunda realización de la presente invención.
Este aparato de decodificación de imágenes 102 de acuerdo con la segunda realización, por ejemplo, decodifica la corriente codificada Str1 que se transmite por el aparato de codificación de imágenes 101 de la primera realización.
El aparato de decodificación de imágenes 102, en lugar de la unidad de decodificación por longitud de series RLD0b en el aparato de decodificación de imágenes convencional 202b mostrado en la figura 36 que somete una corriente codificada introducida Str0b a un procedimiento de decodificación de longitud variable, tiene una unidad de decodificación por longitud de series RLD1 que somete la corriente codificada introducida Str1 a un procedimiento de decodificación de longitud variable en base al parámetro de cuantificación QP y una señal de selección de VLD VldSel, para reconstituir los coeficientes cuantificados. La construcción, excepto para la unidad de decodificación por longitud de series RLD1, es la misma que la del aparato de decodificación de imágenes 202b como se muestra en la figura 36.
La figura 10 es un diagrama de bloques para explicar una construcción específica de la unidad de decodificación por longitud de series RLD1.
La unidad de decodificación por longitud de series RLD1 tiene un desmultiplexor DMUX para desmultiplexar la corriente codificada multiplexada Str1 que se transmite desde el aparato de codificación de imágenes 101 para obtener una secuencia de códigos LStr correspondiente a los valores de nivel y una secuencia de códigos RStr correspondiente a los valores de serie, como la unidad de decodificación de longitud de serie convencional RLD0b que se muestra en la figura 37.
La unidad de decodificación por longitud de series RLD1 tiene un decodificador de longitud variable LVLD para someter una secuencia de códigos de valor de nivel LStr que se obtiene multiplexando la corriente codificada multiplexada Str1 a un procedimiento de decodificación de longitud variable en base al parámetro de cuantificación QP y la señal de selección de VLD VldSel, para reconstituir los valores de nivel ROLev; y un decodificador de longitud variable RVLD para someter una secuencia de códigos de valor de serie RStr que se obtiene desmultiplexando la corriente codificada multiplexada Str1 a un procedimiento de decodificación de longitud variable en base al número de coeficientes no decodificados para reconstituir los valores de serie RORun.
La unidad de decodificación por longitud de series RLD1 incluye adicionalmente una unidad de reordenamiento inversa LIreodr que reordena los valores de nivel ROLev producidos del decodificador de longitud variable LVLD en un orden inverso al de la unidad de reordenamiento Lreodr en la codificación final para reconstituir las transmisiones Lev de la calculadora de nivel en al codificación final; una unidad de reordenamiento inversa Rlreodr que reordena los valores de serie RORun transmitidos por el decodificador de longitud variable RVLD en un orden inverso al de la unidad de reordenamiento Rreodr en la codificación final para reconstituir las transmisiones Run de la calculadora de serie en la codificación final; y una calculadora numérica NumClc que calcula el número Cnum de los coeficientes no decodificados en un bloque objetivo en base a las transmisiones Run por la unidad de reordenamiento inversa Rlreodr y transmite el número obtenido.
La unidad de decodificación por longitud de series RLD1 incluye adicionalmente un escáner en zigzag inverso IScan que reconstituye los componentes cuantificados decodificados DQS en una matriz bidimensional de los componentes cuantificados decodificados en una matriz unidimensional, que se representan por los valores de nivel Lev y los valores de serie Run.
Las figuras 11 son diagramas para explicar un procedimiento de decodificación de longitud variable por el decodificador de longitud variable LVLD. La figura 11(a) es un diagrama de flujo para explicar el procedimiento de decodificación por longitud de series para reconstituir los valores de nivel, y la figura 11(b) es un diagrama explicativo que muestra una tabla de códigos que se emplea en el procedimiento de decodificación de longitud variable. En este punto, las tablas de código L1 y L2 que se emplean en el procedimiento de decodificación de longitud variable para los valores de nivel son las mismas como las tablas de códigos L1 y L2 que se emplean en el procedimiento de codificación para los valores de nivel en la unidad de codificación por longitud de series RLE1 de acuerdo con la primera realización.
Las figuras 12 son diagramas para explicar un procedimiento de decodificación de longitud variable por el decodificador de longitud variable RVLD. La figura 12(a) es un diagrama de flujo para explicar un procedimiento de decodificación de longitud variable para reconstituir los valores de serie. La figura 12(b) es un diagrama explicativo que muestra las tablas de códigos que se emplean en el procedimiento de decodificación de longitud variable. En este punto, las tablas de códigos R1 a R8 que se emplean en el procedimiento de decodificación de longitud variable para valores de serie son las mismas como las tablas de códigos R1 a R8, respectivamente, que se emplean en el procedimiento de codificación para valores de serie en la unidad de codificación por longitud de series RLE1 de acuerdo con la primera realización.
A continuación, se describirá su funcionamiento.
Cuando una corriente codificada multiplexada Str1, por ejemplo, se introduce al aparato de decodificación de imágenes 102 desde el aparato de codificación de imágenes 101 de acuerdo con la primera realización, la unidad de decodificación por longitud de series RLD1 somete la corriente codificada Str1 a un procedimiento de decodificación y transmite los componentes cuantificados decodificados DQS. La operación de la unidad de decodificación por longitud de series RLD1 es contraria a la de la unidad de codificación por longitud de series RLE1.
Para ser más específicos, en la unidad de decodificación por longitud de series RLD1, el desmultiplexor DMUX desmultiplexa la corriente codificada multiplexada introducida Strt1 para obtener una secuencia de códigos de valor de nivel LStr correspondiente a los valores de nivel y una secuencia de códigos de valor de serie RStr correspondiente a los valores de serie, y transmite la secuencia de códigos de valor de nivel y la secuencia de códigos de valor de serie al decodificador de longitud variable LVLD y el decodificador de longitud variable RVLD, respectivamente.
El decodificador de longitud variable LVLD obtiene los valores de nivel ROLev correspondientes a los respectivos códigos (palabras de código) para la secuencia de códigos de valor de nivel LStr obtenida del desmultiplexor DMUX, usando varias tablas de códigos las cuales indican las correspondencias entre el valor de nivel y el código (palabras de código), en base al parámetro de cuantificación QP de la unidad de cuantificación Q y una señal de selección de VLD VldSel de la selección de instrucción exterior de la decodificación de longitud variable, y transmite los valores de nivel obtenidos para la unidad de reordenamiento inversa LIreodr. Por otra parte, el decodificador de longitud variable RVLD obtiene valores de serie ROLev correspondientes a los códigos respectivos (palabras de código) para la secuencia de códigos de valor de serie RStr obtenida del desmultiplexor DMUX, usando varias tablas de códigos las cuales indican las correspondencias entre el valor de serie y el código (palabras de códigos), en base al número Cnum de los coeficientes no decodificados producidos de la calculadora numérica NumClc, y transmite los valores de serie obtenidos para la unidad de reordenamiento inversa Rlreodr.
La unidad de reordenamiento inversa LIreodr somete los valores de nivel ROLev transmitidos del decodificador de longitud variable LVLD a un procedimiento de disposición inverso para el procedimiento por la unidad de reordenamiento Lreodr en la codificación final, para reconstituir las transmisiones Lev de la calculadora de nivel en la codificación final. Por otra parte, la unidad de reordenamiento inversa Rlreodr somete los valores de serie RORun producidos del decodificador de longitud variable RVLD a un procedimiento de disposición que es uno inverso al procedimiento de la unidad de reordenamiento Rreodr en la codificación final, para reconstituir las transmisiones Run de la calculadora de serie en la codificación final. Además, la calculadora numérica NumClc calcula el número Cnum de los coeficientes no decodificados en un bloque objetivo en base a las transmisiones Run por la unidad de reordenamiento inversa Rlreodr, y transmite el número obtenido Cnum para el decodificador de longitud variable RVLD.
Después, el escáner en zigzag inverso IScan realiza una operación que es una contraria a la del escáner en zigzag Scan para reconstituir los componentes cuantificados decodificados DQS en una matriz bidimensional de los componentes cuantificados en una matriz unidimensional, que se representan por los valores de nivel Lev y los valores de serie Run, y transmite los componentes cuantificados obtenidos DQS a la unidad de cuantificación inversa IQ.
En lo sucesivo en este documento, se describirá específicamente el funcionamiento del decodificador de longitud variable LVLD con referencia a las figuras 11.
El decodificador de longitud variable LVLD obtiene el parámetro de cuantificación QP de la unidad de cuantificación Q del aparato de codificación de imágenes 101 (etapa Sc1), y determina si el parámetro de cuantificación obtenido QP es igual a o mayor que un umbral del parámetro de cuantificación QP, que se mantiene en el decodificador de longitud variable LVLD (etapa Sc2).
Cuando el resultado de la determinación indica que el parámetro de cuantificación obtenido QP es más pequeño que el umbral del parámetro de cuantificación QP, el decodificador de longitud variable LVLD selecciona la tabla de códigos L1 (véase la figura 11(b)) que está constituida por la disposición Alev de valores de nivel y la disposición Cal de códigos (palabras de código) (etapa Sc3), y cuando el parámetro de cuantificación obtenido QP es igual a o mayor que el umbral del parámetro de cuantificación QP, selecciona la tabla de códigos L2 (véase la figura 11(b)) que está constituida por la disposición Alev de los valores de nivel y la disposición Ca2 de códigos (palabras de código) (véase la figura 11(b)) (etapa Sc4).
Después de esto, el decodificador de longitud variable LVLD determina si existe algún valor de nivel no decodificado Lev en el bloque objetivo (etapa Sc5). Cuando los valores de nivel no decodificados Lev se incluyen en el bloque objetivo, el decodificador de longitud variable realiza un procedimiento de decodificación para reconstituir los valores de nivel Lev usando la tabla de códigos seleccionada, es decir, un procedimiento para obtener valores de nivel correspondientes a códigos (etapa Sc6), y después realiza el procedimiento mencionado anteriormente de la etapa Sc5. Por otra parte, el resultado de la determinación en la etapa Sc5 indica que no existe valor de nivel no decodificado Lev en el bloque objetivo, el decodificador de longitud variable finaliza el procedimiento de decodificación de longitud variable para reconstituir los valores de nivel Lev.
En este punto, la señal de selección de LVD VldSel designa previamente un procedimiento de decodificación de longitud variable usando una tabla de códigos específica, el decodificador de longitud variable LVLD realiza un procedimiento de decodificación de longitud variable para reconstituir los valores de nivel usando la tabla de códigos específica, independientemente del valor del parámetro de cuantificación.
A continuación, se describirá específicamente el funcionamiento del decodificador de longitud variable RVLD con referencia a las figuras 12.
El decodificador de longitud variable RVLD determina si existe alguno de los coeficientes no cero no decodificados en un bloque objetivo en base a la transmisión (el número de coeficientes no decodificados) Cnum de la calculadora numérica NumClc (etapa Sd1). Cuando el resultado de la determinación muestra que existen coeficientes no cero no decodificados, el decodificador de longitud variable calcula el número de coeficientes cero no decodificados en el bloque objetivo en base al número Cnum de los coeficientes no decodificados (etapa Sd2).
El decodificador de longitud variable RVLD selecciona una tabla de códigos de acuerdo con el número obtenido de coeficientes cero no decodificados (etapa Sd3). Para ser más específicos, cuando el número de coeficientes cero no decodificados es uno, el decodificador de longitud variable selecciona la tabla de códigos R1 que está constituida por la disposición Arun de los valores de serie y la disposición Cbl de códigos (palabras de código) (véase la figura 12(b)). De manera similar, el decodificador de longitud variable selecciona la tabla de códigos R2 cuando el número de coeficientes cero no decodificados es dos, la tabla de códigos R3 cuando el número de coeficientes cero no decodificados es tres, y la tabla de códigos R4 cuando el número de coeficientes cero no decodificados es cuatro. Además, el decodificador de longitud variable selecciona la tabla de códigos R5 cuando el número de coeficientes cero no decodificados es cinco, la tabla de códigos R6 cuando el número de coeficientes cero no decodificados es seis, y la tabla de códigos R7 cuando el número de coeficientes cero no decodificados es siete, respectivamente. Además, cuando el número de coeficientes cero no decodificados es ocho o más, el decodificador de longitud variable RVLD selecciona la tabla de códigos R8.
A continuación, el decodificador de longitud variable RVLD realiza un procedimiento de decodificación para reconstituir los valores de serie Run usando la tabla de códigos seleccionada, es decir, un procedimiento para obtener los valores de serie correspondientes a los respectivos códigos (etapa Sd4), y después realiza el procedimiento de determinación que se ha mencionado anteriormente de la etapa Sd1.
Además, cuando el resultado de la determinación en la etapa Sd1 indica que no existe coeficiente no cero no decodificado, el decodificador de longitud variable RVLD finaliza el procedimiento de decodificación de longitud variable para reconstituir los valores de nivel.
En este aparato de decodificación de imágenes 102 de acuerdo con la segunda realización, la unidad de cuantificación inversa IQ, la unidad de transformación de frecuencia inversa ITrans, y la unidad de desbloqueo DeBlk funcionan de la misma manera a la del aparato de decodificación de imágenes convencional 202a (véase la figura 32) y el aparato de decodificación de imágenes 202b (véase la figura 36).
Para ser más específicos, la unidad de cuantificación inversa IQ realiza una operación inversa de la unidad de cuantificación Q, es decir, una operación para cuantificar inversamente los componentes cuantificados decodificados DQS con referencia al parámetro de cuantificación QP, para transmitir los componentes de frecuencia decodificados ITransS. La unidad de transformación de frecuencia inversa ITrans realiza una operación inversa de la unidad de transformación de frecuencia Trans, es decir, una operación para transformar los componentes de frecuencia decodificados ITransS correspondientes a cada bloque de acuerdo con la transformación inversa de DCT inversa o de óndula, para reconstituir las señales de valores de píxeles decodificadas DBlkS correspondientes a los bloques respectivos. Después, la unidad de desbloqueo DeBlk integra los componentes de valores de píxeles decodificados DBlkS de los bloques respectivos, y transmite una señal de imagen decodificada Vout correspondiente a cada imagen (cuadro).
Como se ha descrito anteriormente, el aparato de decodificación de imágenes 102 de acuerdo con la segunda realización incluye la unidad de decodificación por longitud de series RLD1 que transforma una secuencia de códigos de serie RStr y una secuencia de códigos de nivel LStr que constituyen los datos de códigos, respectivamente, en un valor de serie Run que indica el número de coeficientes cero sucesivos Coef y un valor de nivel Lev que indica un valor de un coeficiente no cero seguido de los coeficientes cero, para reconstituir los coeficientes cuantificados en base al valor de serie y el valor de nivel. Por lo tanto, puede realizarse satisfactoriamente un procedimiento de decodificación correspondiente a un procedimiento de codificación de longitud variable por el que los coeficientes cuantificados pueden codificarse a una mayor eficiencia de codificación eliminando su información redundante.
Además, la unidad de decodificación por longitud de series RLD1 de acuerdo con la segunda realización incluye el decodificador de longitud variable LVLD que selecciona una tabla de códigos de acuerdo con el valor del parámetro de cuantificación QP y realiza la decodificación de longitud variable para reconstituir los valores de nivel usando la tabla de códigos selecciona. Por lo tanto, puede decodificarse satisfactoriamente una secuencia de códigos de valor de nivel que está compuesta de un número total reducido de bits correspondiente a los códigos que se asignan a los valores de nivel.
La unidad de decodificación por longitud de series RLD1 incluye adicionalmente el decodificador de longitud variable RVLD que selecciona una tabla de códigos de acuerdo con el número de coeficientes cero no decodificados en un bloque objetivo y decodifica una secuencia de códigos correspondiente a los valores de serie reordenados usando la tabla de códigos seleccionada, y la unidad de reordenamiento inversa Rlreodr que reordena los valores de serie que se obtienen por el procedimiento de decodificación en un orden inverso al procedimiento de reordenamiento para valores de serie en la unidad de codificación por longitud de series RLD1. Por lo tanto, el número total de bits correspondiente a los códigos que se asignan a los valores de serie puede reducirse significativamente, y la secuencia de códigos de valor de serie que comprende los valores de serie puede decodificarse satisfactoriamente.
En esta segunda realización, el decodificador de longitud variable RVLD selecciona una tabla de códigos de acuerdo con el número de coeficientes cero no decodificados en el bloque objetivo (es decir, el Cnum producido de la calculadora numérica NumClc), pero este decodificador de longitud variable RVLD puede seleccionar la tabla de códigos en base no sólo a la transmisión Cnum de la calculadora numérica NumClc sino también a la señal de selección de VLD VldSel. Por ejemplo, cuando un procedimiento de decodificación de longitud variable que usa una tabla de códigos especifica es previamente indicado por la señal de selección de VLD VldSel, el decodificador de longitud variable RVLD realiza un procedimiento de decodificación de longitud variable usando la tabla de códigos específica para reconstituir los valores de nivel, independientemente del número de coeficientes cero no decodificados en el bloque objetivo.
[Realización 3]
La figura 13 es un diagrama de bloques para explicar un aparato de codificación de imágenes de acuerdo con una tercera realización de la presente invención.
Este aparato de codificación de imágenes 103 de acuerdo con la tercera realización, en lugar de la unidad de codificación por longitud de series RLE0c en el aparato de codificación de imágenes 201c mostrado en la figura 38 que somete las transmisiones (componentes cuantificados) QS de la unidad de cuantificación Q a un procedimiento de codificación de longitud variable y transmite una corriente codificada Str0c, tiene una unidad de codificación por longitud de series RLE2 que somete las transmisiones QS de la unidad de cuantificación Q a un procedimiento de codificación de longitud variable en base a un parámetro de cuantificación QP o una señal de selección de VLC VlcSel y transmite una corriente codificada Str2. Otros componentes del aparato de codificación de imágenes 103 de la tercera realización son los mismos a los del aparato de codificación de imágenes convencional 201c.
Para ser más específicos, la unidad de codificación por longitud de series RLE2, similar a la unidad de codificación por longitud de series RLE0c, tiene la primera tabla de códigos T1 (véase la figura 42) que muestra la correspondencia entre el par de un valor de serie y un valor de nivel (después, denominado como un par de serienivel) y un código correspondiente, de acuerdo con las combinaciones de los valores de serie y los valores de nivel. Esta unidad de codificación por longitud de series RLE2 cambia regularmente las correspondencias entre el par de serie-nivel y el código en la primera tabla de códigos, en base a la primera tabla de códigos, para formar una segunda tabla de códigos que tiene diferentes correspondencias de la primera tabla de códigos, y selecciona una de las primera y segunda tablas de códigos en base al parámetro de cuantificación QP que se transmite de la unidad de cuantificación Q o la señal de selección de VLC VlcSel del exterior, así como asigna los códigos a los pares de serienivel asociados con los coeficientes en los datos objetivo que se van a procesar, en base a la tabla de códigos seleccionada.
En este punto, el parámetro de cuantificación QP es un parámetro que indica el valor de la etapa de cuantificación, y la etapa de cuantificación es aproximadamente proporcional al parámetro de cuantificación QP. Para ser más específicos, cuando el parámetro de cuantificación QP es más grande, los componentes de cuantificación tienen valores absolutos más pequeños, entonces la serie cero en los componentes cuantificados (la longitud de componentes que continúan sucesivamente cuyos valores son cero) se hacer más larga, y por consiguiente el valor de nivel tiene un valor absoluto más pequeño. Por lo tanto, en este caso, se selecciona una tabla de códigos en la que los códigos más pequeños se asignan a los pares de serie-nivel que comprenden valores de serie grandes y valores de nivel pequeños, por lo que aumenta la eficiencia de la codificación. A la inversa, cuando el parámetro de cuantificación QP es más pequeño, los componentes cuantificados tienen valores absolutos mayores. Por lo tanto, se selecciona una tabla de códigos en la cual los códigos más pequeños se asignan a los pares de serie-nivel que comprenden valores de serie más pequeños y valores de nivel más grandes, aumentando de esta manera la eficiencia de la codificación.
Además, cuando se introduce la señal de selección de VLC VlcSel del exterior del aparato de codificación de imágenes 103, la unidad de codificación por longitud de series RLE2 selecciona una tabla de códigos que se emplea en el procedimiento de codificación de acuerdo con la señal de selección VlcSel. Por consiguiente, cuando una tabla de códigos apropiada se selecciona del exterior de acuerdo con las características de imagen (el valor de movimiento de una imagen, la complejidad del movimiento, la meticulosidad de un patrón o similares), o cuando una corriente que puede decodificarse por un aparato de decodificación de imágenes que incluye una tabla de códigos solamente se forma en el lado del aparato de codificación de imágenes 103, este aparato de codificación de imágenes 103 se puede controlar por la señal de selección de VLC VlcSel usando siempre una tabla de códigos predeterminada. Es decir, también es posible realizar un procedimiento de codificación de longitud variable sin cambiar una tabla de códigos pero usando solamente una tabla de códigos.
La figura 14 es un diagrama de bloques para explicar una construcción específica de la unidad de codificación por longitud de series RLE2.
La unidad de codificación por longitud de series RLE2, similar a la unidad de codificación por longitud de series convencional RLE0c (véase la figura 39), tiene un escáner en zigzag Scan para transformar las transmisiones (componentes cuantificados) QS de una matriz bidimensional de la unidad de cuantificación Q en componentes cuantificados Coef en una matriz unidimensional (es decir, orden predeterminado); una calculadora de serie RunCal para calcular el número de componentes cuantificados sucesivos cuyos valores son cero (coeficientes cero) Coef y transmitir un valor de serie Run; y una calculadora de nivel LevCal para calcular un valor de un componente cuantificado cuyo valor no es cero (coeficientes no cero) Coef, seguido de los coeficientes cero, y transmitir un valor de nivel Lev.
En esta tercera realización, la unidad de codificación por longitud de series RLE2 adicionalmente tiene un convertidor de serie RunConv para realizar un procedimiento de conversión de dividir la transmisión (el valor de serie) Run de la calculadora de serie RunCal en un valor de serie Run1 que indica un digito superior del valor de serie Run y un valor de serie Run2 que indica un dígito inferior del valor de serie Run, en base al parámetro de cuantificación QP o la señal de selección de VLC VlcSel; y un convertidor de nivel LevConv para realizar un procedimiento de conversión de dividir la transmisión (el valor de nivel) Lev de la calculadora de nivel LevCal en un valor de nivel Lev1 que indica un dígito superior del valor de nivel Lev y un valor de nivel Lev2 que indica un dígito inferior del valor de nivel Lev en base al parámetro de cuantificación QP o la señal de selección de VLC VlcSel.
La unidad de codificación por longitud de series RLE2 además incluye un codificador de serie-nivel RunLevEnc para obtener un número de códigos Code que corresponde a un par del valor de serie Run1 y el valor de nivel Lev1 (en lo sucesivo en este documento, denominado como un par de digito superior de serie-nivel) de acuerdo con una tabla de códigos o una operación aritmética; y una unidad de reordenamiento ReOdr para realizar un procedimiento para reordenar los pares de dígitos superiores de serie-nivel de modo que los pares de dígitos superiores de serie-nivel para componentes de frecuencia superior, que corresponden a un bloque objeto que se va a procesar, corresponden a números de códigos más pequeños en base a las correspondencias entre el par de dígitos superiores de serienivel y el número de códigos Code, de acuerdo con el parámetro de cuantificación QP o la señal de selección de VLC VlcSel, y transmitir un número de códigos ReOdrCode que corresponde a un par de dígitos superiores de serienivel reordenados.
La unidad de codificación por longitud de series RLE2 además incluye una calculadora de posición PosClc para calcular el número de componentes cuantificados codificados (coeficientes codificados) del valor de serie Run y transmitir el número Pos de los coeficientes codificados; un transformador de códigos CodeTrans para transmitir un número de códigos ExtCode que corresponden a un par de serie-nivel, indicado por una segunda tabla de códigos, del valor de nivel Lev2 y el valor de serie Run2, en base a las correspondencias entre el par de dígitos superiores de serie-nivel y el número de códigos ReOdrCode; y un codificador de longitud variable VLC para asignar una secuencia de bits (palabra de código) al número de códigos ExtCode para generar una secuencia de códigos Str2.
El escáner en zigzag Scan, la calculadora de serie RunCal, la calculadora de nivel LevCal, y el codificador de longitud variable VLC en la unidad de codificación por longitud de series RLE2 son los mismos como los de la unidad de codificación por longitud de series convencional RLE0c como se muestra en la Figura 39.
A continuación, se describirán las funciones y efectos.
El escáner en zigzag Scan transforma los componentes cuantificados QP en una matriz bidimensional en componentes cuantificados Coef en una matriz unidimensional, es decir, a la que se ajusta un orden. La calculadora de serie RunCal calcula el número de componentes cero sucesivos (componentes cuantificados cuyos valores son cero) Coef, y transmite un valor de serie Run que indica el número obtenido. La calculadora de nivel LevCal calcula un valor de un componente no cero (un componente cuantificado cuyo valor no es cero, seguido de los componentes cero) Coef, y transmite un valor de nivel Lev que indica el valor del componente no cero.
El convertidor de serie RunConv realiza un procedimiento de conversión para dividir el valor de serie Run en el valor de serie Run1 que indica un digito superior del valor de serie Run y el valor de serie Run2 que indica un digito inferior del valor de serie Run. El convertidor de nivel LevConv realiza un procedimiento de conversión para dividir el valor de nivel Lev en el valor de nivel Lev1 que indica un digito superior del valor de nivel Lev y el valor de nivel Lev2 que indica un digito inferior del valor de nivel Lev.
El codificador de serie-nivel RunLevEnc obtiene un número de códigos Code que corresponde a un par del valor de nivel Lev1 y el valor de serie Run1 (par de dígitos superiores de serie-nivel) de acuerdo con una tabla de códigos "(primera tabla de códigos) mostrada en la figura 42 o una operación aritmética. La unidad de reordenamiento ReOdr realiza un procedimiento de reordenamiento de los pares de dígitos superiores de serie-nivel de acuerdo con el parámetro de cuantificación QP o la señal de selección de VLC VlcSel, y transmite un número de códigos ReOdrCode que corresponde a un par de dígitos superiores de serie-nivel reordenado. De acuerdo con el procedimiento de reordenamiento los pares de dígitos superiores de serie-nivel, las correspondencias entre el par de dígitos superiores de serie-nivel y el número de códigos Code, que se obtienen por el codificador de serie-nivel RunLevEnc, se convierten en correspondencias en las que los números de códigos más pequeños corresponden a los pares de dígitos superiores de serie-nivel que corresponden a los componentes de frecuencia superior en el bloque objetivo que se va a procesar.
La calculadora de posición PosClc calcula el número de componentes codificados del valor de serie Run, y transmite el número Pos de coeficientes codificados. El transformador de códigos CodeTrans transmite un número de códigos ExtCode que corresponde al par de serie-nivel del valor de nivel Lev2 y el valor de serie Run2, en base a las correspondencias entre el par de dígitos superiores de serie-nivel y el número de códigos ReOdrCode. En este momento, el transformador de códigos CodeTrans emplea el número Pos de coeficientes codificados que se transmite desde la calculadora de posición PosClc, para obtener el número de componentes no codificados.
En este punto, el número de códigos ExtCode que corresponde al par de serie-nivel, que se transmite desde el transformador de códigos CodeTrans, se obtiene en base a la segunda tabla de códigos que tiene correspondencias diferentes entre el par de serie-nivel y el número de códigos de aquellos de la primera tabla de códigos. Esta segunda tabla de códigos se forma como se indica a continuación: una tabla de códigos que tiene correspondencias diferentes entre un par de serie-nivel y un número de códigos a partir de la primera tabla de códigos se forma inicialmente por el procedimiento de reordenamiento por la unidad de reordenamiento ReOdr, y después esta tabla de códigos formada por la unidad de reordenamiento ReOdr se modifica por el transformador de números CodeTrans en base al número Pos de coeficientes codificados de modo que no incluye correspondencias entre el par de serie-nivel y el número de códigos, que corresponden a valores de serie Run que exceden el número de componentes no codificados.
El codificador de longitud variable VLC asigna una secuencia de bits (palabra de código) al número de códigos ExtCode para generar una corriente codificada Str2.
Las Figuras 15 muestran los ejemplos de la segunda tabla de códigos que se forma por la unidad de codificación por longitud de series RLE2 en base a la primera tabla de códigos. En este punto, la primera tabla de códigos es la misma que la tabla de códigos mostrada en la Figura 42, que se emplea en la unidad de codificación por longitud de series convencional RLE0c. En las primera y segunda tablas de códigos, se asigna una secuencia de bits (palabra de código) al número de códigos en una relación uno a uno, aunque no hace falta decir que las palabras de códigos más cortas se asignan a números de códigos Code que tienen valores más pequeños.
La Figura 15(a) muestra, como un ejemplo de la segunda tabla de códigos, una segunda tabla de códigos T2a que es adecuada para un caso en el que el parámetro de cuantificación QP sea más pequeño.
Esta segunda tabla de códigos T2a se forma como se indica a continuación.
Inicialmente, se asigna un valor que corresponde a 1/2 del nivel Lev como el valor de nivel Lev1, y se asigna un valor absoluto de (Lev1 x 2 - Lev) como el valor de nivel Lev2.
En este punto, cuando el valor de nivel Lev es un número impar, se emplea un valor que se obtiene dividiendo un número par que tiene un valor absoluto que es un más grande que el del valor de nivel Lev, por 2 como el valor de nivel Lev1. Para ser más específicos, cuando el valor de nivel Lev es positivo, se asigna un valor que corresponde a 1/2 de (Lev + 1) al valor de nivel Lev1, mientras que cuando el valor de nivel es negativo, se asigna un valor que corresponde a 1/2 de (Lev - 1) al valor de nivel Lev1.
Después, se obtiene un número de códigos Code que corresponde a un par del valor de nivel Lev1 y el valor de serie Run a partir de la primera tabla de códigos (véase la figura 42) de acuerdo con las combinaciones de los valores de nivel Lev y el valor de serie Run.
Adicionalmente, el número de códigos Code que corresponde a un par del valor de nivel Lev1 y el valor de serie Run se convierte de acuerdo con la fórmula siguiente (1) cuando el valor Lev es positivo, y de acuerdo con la fórmula (2) cuando el valor Lev es negativo. La segunda tabla de códigos T2a muestra correspondencias entre el número de códigos y el par de serie-nivel que se obtienen por la conversión anterior.
2 x (Code - Lev2) - 1... (1) 2 x (Code - Lev2)... (2)
Por ejemplo, cuando se centra la atención en un par de serie-nivel (nivel = -2, serie = 1) en la tabla de códigos (primera tabla de códigos) en la Figura 42, un número de códigos Code que corresponde a este par de serie-nivel se convierte de "10", indicado por la primera tabla de códigos T1 en la Figura 42, en "12", indicado por la segunda tabla de códigos T2a en la Figura 15(a).
Es decir, ya que el par de serie-nivel (Lev, Run) es (-2, 1) en este caso, Lev1 y Lev2 se calculan como se indica a continuación.
Lev1 = Lev · (1/2) = -1 Lev2 = iLev1 · 2 - Levi = i-1 · 2 - (-2) i = 0
Por lo tanto, (Lev1, Run) es (-1, 1), y este par de serie-nivel corresponde a un número de códigos (Code = 6) de acuerdo con la primera tabla de códigos (véase la figura 42).
Después, se calcula un número de códigos que corresponde al par de serie-nivel (Lev, Run) = (-2, 1) empleando la fórmula (2):
2 x (Code - Lev2) - 2 x (6-0) = 12
La tabla de códigos en la Figura 15 (a) se caracteriza porque se asignan números de códigos más pequeños (es decir, palabras de código más cortas) a pares de serie-nivel que comprenden valores de serie más pequeños y valores de nivel más grandes en comparación con la tabla de códigos (primera tabla de códigos) mostrada en la Figura 42, y esto es adecuado para un caso en el que el parámetro de cuantificación QP sea más pequeño.
La Figura 15 (b) muestra, como otro ejemplo de la segunda tabla de códigos, una segunda tabla de códigos T2b que es adecuada para un caso en el que el parámetro de cuantificación QP sea más grande.
Esta segunda tabla de códigos T2b se forma como se indica a continuación.
Inicialmente, un valor que corresponde a 1/2 del valor de serie Run se asigna como el valor de serie Run1, y un valor absoluto de (Run1 x 2-Run) se asigna como el valor de serie Run2. En este punto, cuando el valor de serie es un número impar, se asigna un par de números enteros del valor que corresponde a 1/2 de (Run + 1) al valor de serie Run1.
Después, se obtiene un número de códigos Code que corresponde a un par del valor de nivel Lev y el valor de serie Run1 a partir de la primera tabla de códigos (véase la figura 42), de acuerdo con las combinaciones de los valores de nivel Lev y los valores de serie Run1.
Adicionalmente, el número de códigos Code que corresponde a un par del valor de nivel Lev y el valor de serie Run1 se convierte en base a la siguiente fórmula (3) cuando el valor Lev es positivo, y la fórmula (4) cuando el valor Lev es negativo. La segunda tabla de códigos T2b muestra correspondencias entre el número de códigos y el par de serienivel que se obtienen como resultado de la conversión.
2 x (Code + Run2) - 1... (3) 2 x (Code + Run2) - 2... (4)
Por ejemplo, cuando se centra la atención en un par de serie-nivel (nivel = -1, serie = 2) en la tabla de códigos (primera tabla de códigos) de la Figura 42, un número de códigos Code que corresponde a este par de serie-nivel se convierte de "12", indicado por la primera tabla de códigos T1 en la Figura 42, a "10", indicado por la segunda tabla de códigos T2b en la Figura 15(b).
Para ser más específicos, ya que el par de serie-nivel (Lev, Run) en este caso es (-1, 2), Run1 y Run2 se calculan como se indica a continuación.
Run1 = Run · (1/2) = 1 Run2 = iRun1 · 2 - Runi = i1 · 2 - 2 i = 0
Por lo tanto, (Lev, Run1) es (-1, 1), y este par de serie-nivel corresponde a un número de códigos (Code = 6) de acuerdo con la primera tabla de códigos (Figura 42).
Después, se calcula un número de códigos que corresponde al par de serie-nivel (Lev, Run) = (-1, 2) usando la fórmula (4):
2 x (Code + Run2) = 2 x (6-0) - 2 = 10
La segunda tabla de códigos T2b mostrada en la Figura 15(b) se caracteriza porque se asignan números de códigos más pequeños (es decir, palabras de códigos más cortas) a pares de serie-nivel que comprenden valores de serie más grandes y valores de nivel más pequeños en comparación con la tabla de códigos (primera tabla de códigos) T1 mostrada en la Figura 42, y esto es adecuado para un caso en el que el parámetro de cuantificación QP sea más grande.
Las Figuras 16 muestran otros ejemplos de la segunda tabla de códigos que se forma en base a la primera tabla de códigos por la unidad de codificación por longitud de series RLE2. En este punto, la primera tabla de códigos es la misma que la tabla de códigos T1 mostrada en la Figura 42, que se emplea en la unidad de codificación por longitud de series convencional RLE0c.
El transformador de números CodeTrans calcula el número de componentes no codificados (el número de coeficientes que todavía no se han sometido a un procedimiento de codificación) en un bloque objetivo que se va a procesar, en base al número Pos de coeficientes codificados que se transmiten a partir de la calculadora de posición PosClc. Adicionalmente, la segunda tabla de códigos que se forma a partir de la primera tabla de códigos se hace incluir palabras sin código que corresponden a pares de serie-nivel que incluyen valores de serie que exceden el número de componentes no codificados. De esta manera, se permite la codificación a la eficiencia de compresión más alta.
La Figura 16(a) muestra una segunda tabla de códigos T2c que se forma cuando el número de componentes no codificados es tres o más. La Figura 16(b) muestra una segunda tabla de códigos T2d que se forma cuando el número de componentes no codificados es dos. La Figura 16(c) muestra una segunda tabla de códigos T2e que se forma cuando el número de componentes no codificados es uno.
Cuando las correspondencias entre pares de serie-nivel que incluyen valores-de serie que nunca se usarán y se borran los códigos de la tabla de códigos como se ha descrito anteriormente, se asigna un código más corto al par de serie-nivel. Por ejemplo, de acuerdo con la segunda tabla de códigos T2e como se muestra en la Figura 16(c), un par de serie-nivel que comprende un valor de serie [0] y un valor de nivel [4] corresponde a un número de códigos [7]. El par de serie-nivel que comprende el valor de serie [0] y el valor de nivel [4] corresponde a un número de códigos [11] de acuerdo con la segunda tabla de códigos T2d mostrada en la Figura 16(b), aunque el par de serienivel que comprende el valor de serie [0] y el valor de nivel [4] corresponde a un número de códigos que tienen un valor más grande adicional (no mostrado) de acuerdo con la segunda tabla de códigos T2c mostrada en la Figura 16(a).
La Figura 17 muestra un ejemplo de un orden de codificación en la unidad de codificación por longitud de series RLE2 del aparato de codificación de imágenes 103 de acuerdo con la tercera realización.
Generalmente, los valores absolutos de los valores de nivel que corresponden a los componentes de baja frecuencia son grandes y, en la tabla de códigos, los números de códigos Code que tienen valores más grandes corresponden a pares de serie-nivel que corresponden a los componentes de baja frecuencia. Por el contrario, los valores absolutos de los valores de nivel que corresponden a componentes de frecuencia superior son pequeños y, en la tabla de códigos, los números de códigos que tienen valores más pequeños corresponden a pares de serie-nivel que corresponden a los componentes de frecuencia superior.
Como se describe con referencia a las Figuras 16, el aumento en la eficiencia de compresión, que se obtiene borrando los números de códigos (palabras de código) que corresponden a pares de serie-nivel que incluyen valores de serie que exceden el número de componentes no codificados de la tabla de códigos, se hace más grande cuando el número de componentes no codificados es más pequeño, así como más grande según el valor absoluto del valor de nivel es más grande, debido a que la proporción de disminución en el valor del número de códigos asignado es más grande en comparación con el caso en el que los números de códigos aún no han eliminado.
Por consiguiente, cuando los componentes cuantificados que tienen valores absolutos más grandes de los valores de nivel y que corresponden a componentes de baja frecuencia se codifican más tarde en la codificación de componentes cuantificados por la unidad de codificación de serie-nivel RLE2, similar al aparato de codificación de imágenes 103 de acuerdo con la tercera realización, la eficiencia de compresión aumenta adicionalmente.
Para ser más específicos, la unidad de reordenamiento ReOdr reordena los componentes cuantificados para que se dispongan sucesivamente a partir de un par de serie-nivel de un componente cuantificado que corresponde a un componente de frecuencia superior (el último componente no cero) con respecto un par de serie-nivel de un componente cuantificado que corresponde a un componente de frecuencia inferior, como se muestra por las flechas X1 a X7 en la Figura 17, para añadir un EOB que indica el último componente codificado en un bloque de objetivo después de una palabra de código que corresponde a un par de serie-nivel de un componente cuantificado que tiene el componente de frecuencia más baja, aumentando de esta manera la eficiencia de compresión.
Adicionalmente, en la tercera realización, el parámetro de cuantificación QP y la señal de selección de VLC VlcSel se suministran al convertidor de nivel LevConv, el convertidor de serie RunConv, la unidad de reordenamiento ReOdr, y el transformador de números CodeTrans. Por lo tanto, una tabla de códigos puede cambiarse de acuerdo con el parámetro de cuantificación QP, o una tabla de códigos apropiada se puede seleccionar desde el exterior de acuerdo con el contenido de una imagen (el valor de un movimiento de la imagen, la complicidad del movimiento o la meticulosidad de un patrón).
Por ejemplo, cuando la tabla de códigos que se emplea en el procedimiento de codificación se cambia de acuerdo con la señal de selección de VLC VlcSel del exterior del aparato de codificación de imágenes, el aparato de decodificación de imágenes puede crear una corriente que puede decodificarse por una unidad de decodificación que tiene solamente una tabla de códigos.
En esta tercera realización, el aparato de codificación de imágenes 103 que codifica los coeficientes cuantificados de una señal de imagen como datos objetivo que se van a procesar, incluye la unidad de codificación por longitud de series RLE2 que asigna los códigos de longitud variable al coeficiente cuantificado usando una tabla de códigos, y esta unidad de codificación por longitud de series RLE2 forma la segunda tabla de códigos que se optimiza para los datos objetivo que se van a procesar en base a la primera tabla de códigos, y se selecciona una de las primera y segunda tablas de códigos como una tabla de códigos que se emplea para la asignación de códigos de longitud variable, en base al parámetro de cuantificación QP o la señal de selección de VLC VISel. Por lo tanto, la información redundante incluida en los datos objetivo pueden eliminarse de forma eficaz, aumentando de esta manera adicionalmente la velocidad de compresión para señales de imagen o similares.
En esta tercera realización, la unidad de codificación por longitud de series RLE2 incluye varios dispositivos para aumentar la velocidad de compresión, es decir, el convertidor de serie RunConv, el convertidor de nivel LevConV, la unidad de reordenamiento ReOdr, y el transformador de números CodeTrans, como se muestra en la Figura 14. Sin embargo, la unidad de codificación por longitud de series RLE2 puede incluir solamente algunos de los dispositivos para aumentar la velocidad de compresión. En este caso, la unidad de codificación por longitud de series RLE2 puede montarse fácilmente.
Adicionalmente, en la tercera realización, la segunda tabla de códigos se obtiene modificando correspondencias entre los pares de serie-nivel y los números de códigos en ambas partes que constituyen la primera tabla de códigos: una parte que puede generarse regularmente por una operación aritmética (VLC construido regularmente), y una parte que no puede generarse regularmente (Tabla consultada para VLC). Sin embargo, cuando la primera tabla de códigos tiene la parte que puede generarse regularmente por una operación aritmética (VLC regularmente construido) y la parte la cual no se puede generar regularmente (tabla consultada para VLC), la segunda tabla de códigos puede formarse modificando solamente la parte como la parte de la primera tabla de códigos, que puede generarse regularmente por una aritmética cuya operación se realiza fácilmente. En este caso, el montaje de la unidad de codificación por longitud de series RLE2 puede realizarse más fácilmente.
De acuerdo con esta tercera realización, en la unidad de codificación por longitud de series que realiza la codificación de longitud variable de componentes cuantificados usando pares de serie-nivel, los componentes cuantificados se someten sucesivamente a la codificación de longitud variable del componente de alta frecuencia al componente de baja frecuencia. Sin embargo, sin decir que en una unidad de codificación de longitud variable que somete los valores de serie y valores de nivel que corresponden a componentes cuantificados en el bloque objetivo por separado al procedimiento de codificación de longitud variable como en la primera realización, los valores de serie y los valores de nivel que corresponden a los componentes cuantificados en el bloque objetivo pueden someterse a codificación de longitud variable, sucesivamente del componente de alta frecuencia al componente de baja frecuencia.
[Realización 4] La Figura 18 es un diagrama de bloques para explicar un aparato de decodificación de imágenes de acuerdo con una cuarta realización de la presente invención.
Este aparato de decodificación de imágenes 104 de acuerdo con la cuarta realización, en lugar de la unidad de decodificación por longitud de series RLD0c en el aparato de decodificación de imágenes convencional 202c como se muestra en la Figura 40 que somete una corriente codificada Str0c a un procedimiento de decodificación de longitud variable y transmite los componentes cuantificados decodificados DQS, tiene una unidad de decodificación por longitud de series RLD2 que somete una corriente codificada Str2 a un procedimiento de decodificación de longitud variable en base al parámetro de cuantificación QP o una señal de selección de decodificación de longitud variable (señal de selección de VLD) VldSel y transmite componentes de cuantificación decodificadas DQS. Otros componentes del aparato de decodificación de imágenes 104 de acuerdo con la cuarta realización son los mismos que en el aparato de decodificación de imágenes convencional 202c.
Para ser más específicos, la unidad de decodificación por longitud de series RLD2, similar a la unidad de decodificación por longitud de series convencional RLD0c, tiene una primera tabla de códigos T1 (ver la Figura 42) que indica la correspondencia entre el par de un valor de serie y un valor de nivel (en lo sucesivo en este documento, denominado como pares de serie-nivel) y el código correspondiente, de acuerdo con combinaciones de los valores de serie y los valores de nivel. Después, la unidad de decodificación por longitud de series RLD2 cambia regularmente las correspondencias entre los pares de serie-nivel y los códigos en la primera tabla de códigos, en base a la primera tabla de códigos, para formar una segunda tabla de códigos que tiene correspondencias diferentes a partir de las de la primera tabla de códigos, y selecciona una de la primera y segunda tablas de códigos de acuerdo con el parámetro de cuantificación QP transmitido desde la unidad de cuantificación Q o la señal de selección de VLD VldSel del exterior, así como también transforma palabras de códigos (secuencia de bits) que constituyen la corriente codificada Str2 en pares de valores de serie y valores de nivel asociados con coeficientes en los datos objetivos que se van a procesar, en base a la tabla de códigos seleccionada.
Como se ha descrito anteriormente, el parámetro de cuantificación QP es un parámetro que indica el valor de la etapa de cuantificación, y la etapa de cuantificación es aproximadamente proporcional al parámetro de cuantificación QP. Para ser más específicos, cuando el parámetro de cuantificación QP es más grande, los componentes cuantificados tienen valores absolutos más pequeños, entonces la de serie cero de los componentes cuantificados (la longitud de componentes que continúan sucesivamente cuyos valores son cero) se hace más corta, y por consiguiente los valores de nivel tienen valores absolutos más pequeños. En este caso, por lo tanto, se selecciona una tabla de códigos en la que se asignan códigos más pequeños a pares de serie-nivel que comprenden valores de serie más grandes y valores de nivel más pequeños, mejorando de esta manera adicionalmente la eficiencia de la codificación. Por el contrario, cuando el parámetro de cuantificación QP es más pequeño, los componentes cuantificados tienen valores absolutos, y por lo tanto se selecciona una tabla de códigos en la que se asignan códigos más pequeños a pares de serie-nivel que comprenden valores de serie más pequeños y valores de nivel más grandes, aumentando de esta manera la eficiencia de la codificación.
La Figura 19 es un diagrama de bloques que ilustra una construcción específica de la unidad de decodificación por longitud de series RLD2.
La unidad de decodificación por longitud de series RLD2, como la unidad de decodificación por longitud de series convencional RLD0c, tiene un decodificador de longitud variable VLD, y este decodificador VLD decodifica la corriente codificada Str2 transmitida desde el aparato de codificación de imágenes 103 de acuerdo con la tercera realización y transmite un número de códigos ExtCode.
En esta cuarta realización, la unidad de decodificación por longitud de series RLD2 tiene un transformador inverso numérico IcodeTrans para realizar un procedimiento de transformación inverso numérica para dividir el número de códigos ExtCode en un -número de códigos PrmCode que corresponde a un par de dígitos superiores de serie-nivel que comprende un valor de nivel Lev1 y un valor de serie Run1, un valor de nivel Lev2, y un valor de serie Run2 en base al parámetro de cuantificación QP o la señal de selección de VLD VldSel; y una unidad de reordenamiento inversa IReOdr para reordenar varios números de códigos PrmCode que corresponden a un bloque objetivo que se va a procesar para aumentar la frecuencia del par de serie-nivel, y transmitir la pluralidad de números de códigos Code que corresponden al bloque objetivo y tienen un orden cambiado.
La unidad de decodificación por longitud de series RLD2 incluye adicionalmente un detector de serie-nivel RunLevDec para detectar un par de serie-nivel que corresponde a un número de códigos Code de acuerdo con una tabla de códigos o una operación aritmética, y transmitir un valor de nivel Lev1 y un valor de serie Run1 que constituye el par de serie-nivel; un convertidor inverso de serie IrunConv para la reconstitución de un valor de serie Run del valor de serie Run1 que indica el dígito superior del valor de serie Run y el valor de serie Run2 que indica el dígito inferior del valor de serie Run; y un convertidor inverso de nivel ILevConv para la reconstitución de un valor de nivel Lev del valor de nivel Lev1 que indica el dígito superior del valor de nivel Lev y el valor de nivel Lev2 que indica el digito inferior del valor de nivel Lev.
La unidad de decodificación por longitud de series RLD2 incluye adicionalmente, como la unidad de decodificación por longitud de series convencional RLD0c, un escáner en zigzag inverso IScan. Este escáner IScan transforma los componentes cuantificados en una matriz unidimensional, que se representan por los valores de nivel Lev y los valores de serie Run, en componentes cuantificados decodificados DQS en una matriz bidimensional, y transmite la misma.
En este punto, el decodificador de longitud variable VLD, el detector de serie-nivel RunLevDec y el escáner en zigzag IScan inverso de la unidad de decodificación por longitud de series RLD2 son los mismos que los de la unidad de decodificación por longitud de series RLD0c mostrada en la Figura 41.
A continuación, se describirán las funciones y efectos.
En la unidad de decodificación por longitud de series RLD2, el decodificador de longitud variable VLD realiza una operación inversa a la del codificador de longitud variable VLC. Es decir, el decodificador de longitud variable VLD decodifica la corriente codificada Str2 y transmite un número de códigos ExtCode que corresponde a una palabra de código (secuencia de bits) que constituye la corriente. El transformador inverso de números IcodeTrans realiza una operación inversa a la del transformador de números CodeTrans en base al parámetro de cuantificación QP o la señal de selección de YLD VldSel, para dividir el número de códigos ExtCode en un número de códigos PrmCode que corresponde a un par de dígitos superiores de serie-nivel que comprende el valor de nivel Lev1 y el valor de serie Run1, un valor de nivel Lev2, y un valor de serie Run2.
La unidad de reordenamiento inversa IreOdr realiza una operación inversa a la de la unidad de reordenamiento ReOdr en base al parámetro de cuantificación QP o la señal de selección de VLD VldSel. De esta manera, se realiza un procedimiento para reordenar varios números de códigos PrmCode que corresponden al bloque objetivo que se va a procesar en orden de aumento de frecuencia del par de serie-nivel, y se transmiten varios números de códigos Code que tienen un orden cambiado y corresponden al bloque. El detector de serie-nivel RunLevDec detecta un par de serie-nivel que corresponde a un número de códigos Code de acuerdo con una tabla de códigos o una operación aritmética, y transmite el valor de nivel Lev1 y el valor de serie Run1 que constituye el par de serie-nivel detectado.
El convertidor inverso de serie IrunConv realiza una operación inversa a la del convertidor de serie RunConv en base al parámetro de cuantificación QP o la señal de selección de VLD VldSel, para reconstituir el valor de serie Run del valor de serie Run1 que indica el digito superior del valor de serie Run y el valor de serie Run2 que indica el dígito inferior del valor de serie Run. Adicionalmente, el convertidor inverso de nivel ILevConv realiza una operación inversa a la del convertidor de nivel LevConv en base al parámetro de cuantificación QP o la señal de selección de VLD VldSel, para reconstituir el valor de nivel Lev del valor de nivel Lev1 que indica el dígito superior del valor de nivel Lev y el valor de nivel Lev2 que indica el dígito inferior del valor de nivel Lev.
En este punto, en el transformador inverso numérico IcodeTrans, la unidad de reordenamiento inversa IReOdr, el convertidor inverso de serie IRunConv y el convertidor inverso de nivel ILevConv, la selección de la primera y segunda tabla de códigos se realiza en base al parámetro de cuantificación QP o la señal de selección de VLD VldSel, y las operaciones se realizan de acuerdo con la tabla de códigos seleccionada.
El escáner en zigzag inverso IScan realiza una operación inversa a la operación del escáner en zigzag Scan, para transformar los componentes cuantificados en una matriz unidimensional que se representan por los valores de nivel Lev y los valores de serie Run, en componentes cuantificados decodificados DQS en una matriz bidimensional, en base a los valores de nivel Lev y los valores de serie Run.
Adicionalmente, cuando la señal de selección de VLD VldSel se alimenta del exterior, la unidad de decodificación por longitud de series RLD2 selecciona una tabla de códigos apropiada que corresponde al contenido de una imagen (el valor de un movimiento de la imagen, la complicidad del movimiento, la meticulosidad de un patrón), que se indica por la señal de selección de VLD VldSel.
En esta cuarta realización, el parámetro de cuantificación QP y la señal de selección de VLD VldSel se suministran al transformador inverso numérico IcodeTrans, la unidad de reordenamiento inversa IReOdr, el convertidor inverso de serie IRunConv, y el convertidor inverso de nivel ILevConv, respectivamente. Por lo tanto, una tabla de códigos puede cambiarse de acuerdo con el parámetro de cuantificación QP, o una tabla de códigos apropiada puede seleccionarse del exterior del aparato de decodificación de imágenes, de acuerdo con las características de una imagen, es decir, el valor de un movimiento de la imagen, la complejidad del movimiento, la meticulosidad de un patrón, o similares.
Como se ha descrito anteriormente, en esta cuarta realización, el aparato de decodificación de imágenes 104 que decodifica los datos codificados que se obtienen por coeficientes cuantificados de codificación de longitud variable de una señal de imagen, incluye la unidad de decodificación por longitud de series RLD2 para la transformación de un código de longitud variable en componentes cuantificados usando una tabla de códigos. Además, la unidad de decodificación por longitud de series RLD2 forma una segunda tabla de codificación que se optimiza para los datos objetivos que se van a procesar, en base a la primera tabla de códigos, y selecciona una de las primera y segunda tablas de códigos como una tabla de códigos que se emplea en la conversión de un código de longitud variable en coeficientes cuantificados, de acuerdo con el parámetro de cuantificación QP o la señal de selección de VLD VldSel. Por lo tanto, puede realizarse satisfactoriamente un procedimiento de decodificación que corresponde a un procedimiento de codificación de longitud variable que puede eliminar de forma eficaz la información redundante incluida en los datos objetivos que se van a procesar.
En esta cuarta realización, como se muestra en la Figura 19, la unidad de decodificación por longitud de series RLD2 tiene varios dispositivos para aumentar la velocidad de compresión, es decir, el transformador inverso de números ICodeTrans, la unidad de reordenamiento inversa IReOdr, el convertidor inverso de serie IRunConv, y el convertidor inverso de nivel ILevConv, aunque la unidad de decodificación por longitud de series RLD2 puede tener solamente algunos de estos dispositivos para aumentar la velocidad de compresión. En este caso, la unidad de decodificación por longitud de series RLD2 puede montarse más fácilmente.
Adicionalmente, en la cuarta realización, la segunda tabla de códigos se forma cambiando las correspondencias entre pares de serie-nivel y números de códigos en ambas partes que constituyen la primera tabla de códigos: la parte que puede generarse regularmente por una operación aritmética (VLC regularmente construido) y la parte que no puede generarse regularmente (tabla consultada para VLC). Sin embargo, cuando la primera tabla de códigos tiene la parte que puede generarse regularmente por una operación aritmética (VLC regularmente construido) y la parte que no puede generarse regularmente (tabla consultada para VLC), la segunda tabla de códigos puede formarse cambiando solamente la parte en forma de una parte de la primera tabla de códigos, que puede generarse regularmente por la aritmética cuya operación se realiza fácilmente. En este caso, el montaje de la unidad de decodificación por longitud de series RLD2 puede realizarse más fácilmente.
De acuerdo con esta cuarta realización, en la unidad de decodificación por longitud de series que realiza la decodificación de longitud variable de datos codificados que corresponden a componentes cuantificados usando pares de serie-nivel, la decodificación de longitud variable de los datos codificados que corresponden a los componentes cuantificados se realiza sucesivamente a partir del componente de alta frecuencia al componente de baja frecuencia. Sin embargo, es posible que, en una unidad de decodificación por longitud de series que somete datos codificados de valores de serie y valores de nivel que corresponden a componentes cuantificados en un bloque objetivo por separado a decodificación de longitud variable como en la segunda realización, los datos codificados de los valores de serie y valores de nivel que corresponden a los componentes cuantificados del bloque objetivo se sometan a la decodificación de longitud variable, sucesivamente del componente de alta frecuencia al componente de baja frecuencia.
[Realización 5]
La Figura 20 es un diagrama de bloques para explicar un aparato de codificación de imágenes de acuerdo con una quinta realización de la presente invención.
Este aparato de codificación de imágenes 105 incluye, en lugar de la unidad de codificación por longitud de series RLE2 en el aparato de codificación de imágenes 103 de acuerdo con la tercera realización como se muestra en la Figura 13, una unidad de codificación por longitud de series RLE3 que codifica un par de serie-nivel así como también codifica el número de componentes no cero, similar a la unidad de codificación por longitud de series RLE2. Otros componentes del aparato de codificación de imágenes 105 de acuerdo con la quinta realización son los mismos que los del aparato de codificación de imágenes 103 de acuerdo con la tercera realización.
La Figura 21 muestra una construcción específica de la unidad de codificación por longitud de series RLE3 en el aparato de codificación de imágenes 105.
Esta unidad de codificación por longitud de series RLE3 de acuerdo con la quinta realización, en lugar de la calculadora de posición PosClc en la unidad de codificación por longitud de series RLE2 de acuerdo con la tercera realización como se muestra en la Figura 14, tiene un contador de coeficiente no cero NZcount para contar el número NZnum de coeficientes no cero en base a los componentes cuantificados alimentados, y una calculadora de posición PosClc2 para calcular el número Pos2 de coeficientes codificados en base al número contado Nznum de coeficientes no cero y un valor de serie Run calculado por la calculadora de serie RunCal.
La unidad de codificación por longitud de series RLE3 de acuerdo con la quinta realización codifica una transmisión (número de códigos) ExtCode del transformador de números CodeTrans, así como también codifica el número NZnum de componentes no cero, a diferencia del codificador de longitud variable VLC de la unidad de codificación por longitud de series RLE2 de acuerdo con la tercera realización.
Otros componentes de la unidad de codificación por longitud de series RLE3 son los mismos como los de la unidad de codificación por longitud de series RLE2 de acuerdo con la tercera realización.
A continuación, se describirán las funciones y efectos.
Las operaciones de la unidad de bloqueo Blk, la unidad de transformación de frecuencia Trans, y la unidad de cuantificación Q en el aparato de codificación de imágenes 105 de acuerdo con la quinta realización son las mismas como las del aparato de codificación de imágenes 103 de acuerdo con la tercera realización. Adicionalmente, las operaciones de componentes diferentes del contador de coeficientes no cero NZcount, la calculadora de posición PosClc2, el transformador de número CodeTrans, y el codificador de longitud variable VLC2 en la unidad de codificación por longitud de series RLE3 de acuerdo con la quinta realización, es decir, el escáner Scan, la calculadora de serie RunCal, la calculadora de nivel LevCal, el convertidor de serie RunConv, el convertidor de nivel LevConv, el codificador de serie-nivel RunLevEnc, y la unidad de reordenamiento ReOdr son idénticos a los de la unidad de codificación por longitud de series RLE2 de acuerdo con la tercera realización. Por lo tanto, en lo sucesivo en este documento se describirán principalmente las operaciones del contador de coeficiente no cero NZcount, la calculadora de posición PosClc2, el transformador de números CodeTrans, y el codificador de longitud variable VLC2.
Cuando los componentes cuantificados QS transmitidos por la unidad de cuantificación Q se introducen en la unidad de codificación por longitud de series RLE3, el contador de coeficientes no cero Nzcount en la unidad de codificación por longitud de series RLE3 cuenta el número de componentes no cero Nznum en la pluralidad de componentes cuantificados correspondientes a los respectivos bloques en base a los componentes cuantificados QS, y transmite el número obtenido Nznum de los componentes no cero a la calculadora de posición PosClc2 y el codificador de longitud variable VLC2.
La calculadora de posición PosClc2 calcula una suma del número de componentes cero codificados y el número de componentes no cero en un bloque objetivo en base al número Nznum de los componentes no cero del contador de coeficientes no cero Nzcount y un valor de serie Run de la calculadora de serie RunCal, y transmite el valor obtenido Pos2.
El transformador numérico CodeTrans transmite un número de códigos ExtCode correspondiente a un par de serienivel de un valor de nivel Lev2 y un valor de serie Run2, en base a las correspondencias entre los pares de dígitos superiores de serie-nivel y los números de códigos ReOdrCode. En este momento, el transformador numérico CodeTrans emplea el valor calculado Pos2 que se transmite desde la calculadora de posición PosClc2 para obtener el número de componentes no codificados en el bloque objetivo.
En este punto, el número de códigos ExtCode que corresponde a un par de serie-nivel, que se transmite a partir del transformador de números CodeTrans, se obtiene en base a la segunda tabla de códigos que tiene correspondencias diferentes entre pares de serie-nivel y números de códigos de la primera tabla de códigos. Esta segunda tabla se forma como se indica a continuación: una tabla de códigos que tiene correspondencias diferentes entre pares de serie-nivel y números de códigos de la primera tabla de códigos se forma inicialmente por el procedimiento de reordenamiento en la unidad de reordenamiento ReOdr, y después la tabla de códigos formada por la unidad de reordenamiento ReOdr se modifica por el transformador numérico CodeTrans en base al valor calculado Pos2 de modo que los pares de serie-nivel que tengan valores de serie que sean mayores que el valor de serie máximo Run en la tabla de códigos correspondan a los números de códigos ExtCode a los que no se les asignan códigos.
El codificador de longitud variable VLC2 codifica el número NZnum de componentes no cero, así como también realiza la codificación del número de códigos ExtCode para asignar una secuencia de bits (palabra de códigos) al número de códigos ExtCode con el fin de generar una corriente codificada Str3.
En lo sucesivo en este documento, se describirá específicamente la operación del codificador de longitud variable VLC2.
A diferencia del codificador de longitud variable VLC de acuerdo con la tercera realización, el codificador de longitud variable VLC2 de acuerdo con la quinta realización no solamente codifica el número de códigos ExtCode que corresponde a un par de serie-nivel de un bloque objetivo sino que también codifica el número NZnum de componentes no cero en el bloque objetivo antes de la codificación del número de código ExtCode del bloque.
Como se ha descrito anteriormente, cuando el número NZnum de coeficientes no cero se codifica antes de codificar el número de códigos ExtCode de un bloque, el número NZnum de componentes no cero del bloque objetivo puede decodificarse inicialmente en la decodificación, y puede verificarse que se ha completado la reconstitución del último par de serie-nivel en el bloque objetivo, en un momento en el que los pares de serie-nivel que corresponden al número NZnum de componentes no cero se han reconstituido. En consecuencia, un valor especifico EOB que se codifica al final del bloque objetivo (un valor que se transmite después del último componente no cero), que se requiere por el codificador de longitud variable VLC de acuerdo con la tercera realización, no es necesario para el codificador de longitud variable VLC2.
A continuación, se describirán específicamente las operaciones de la calculadora de posición PosC12 y el transformador numérico CodeTrans.
Asumiendo que un bloque objetivo incluye componentes cuantificados QS de NBlock (incluyendo tanto componentes cero como componentes no cero), la longitud de serie máxima (el número máximo de coeficientes cero de continuación sucesiva) es (NBlock-NZnum) en base al número NZnum de coeficientes no cero en el bloque objetivo. Adicionalmente, el valor de serie máximo (el número máximo de coeficientes cero que continúan sucesivamente) MaxRun(1) en el momento en el que la codificación del primer par de serie-nivel se ha completado, se representa por la siguiente fórmula (5), usando un valor de serie FRun del primer par de serie-nivel del bloque objetivo.
MaxRun(1) = NBlock - NZnum - FRun... (5)
Generalmente, el valor de serie máximo MaxRun(i) en el momento en el que la codificación de un par de serie-nivel i-ésimo en un bloque se ha completado, se representa por la siguiente fórmula (6).
MaxRun(i) = NBlock - NZnum - {la suma de valores de serie i-ésimo}...(6)
Por lo tanto, la calculadora de posición PosClc2 produce un valor calculado Pos2 representado por la siguiente fórmula (7), indicando de esta manera al transformador numérico CodeTrans que el valor de serie máximo MaxRun(i) es un valor representado por la fórmula (8).
Pos2 = NZnum + {la suma de valores de serie i-ésimo}... (7) MaxRun(i) = NBlock - Pos2... (8)
El transformador numérico CodeTrans forma la segunda tabla de códigos en que los números de códigos ExtCode a los que no se asignan códigos se hacen corresponder con los pares de serie-nivel que tienen valores de serie que son más grandes que el valor de serie máximo MaxRun. De esta manera, se suprime la redundancia en el procedimiento de codificación debido a la asignación de códigos a pares de serie-nivel que nunca aparece, aumentando de esta manera la velocidad de compresión.
Cuando una tabla de códigos de longitud variable que está compuesta por una primera parte que puede generarse por una operación aritmética (VLC regularmente construido) y una segunda parte que no puede generarse regularmente por una operación aritmética (tabla consultada para VLC) se emplea como las primera y segunda tablas de códigos cuando se realiza el procedimiento de codificación de longitud variable para los componentes cuantificados, la segunda tabla de códigos puede realizarse cambiando tanto las primera como segunda partes en la primera tabla de códigos de acuerdo con el valor de serie máximo, o la segunda tabla de códigos puede formarse cambiando solamente la primera parte en la primera tabla de códigos, que puede generarse por una aritmética cuya operación se realiza fácilmente de acuerdo con el valor de serie máximo.
Adicionalmente, en lugar de cambiar la tabla de códigos a una en que no se asignan códigos a pares de serie-nivel que tengan valores de serie Run que sean más grandes que el valor de serie máximo MaxRun(i) cuando la tabla de codificación de longitud variable se cambia de acuerdo con el valor de serie máximo MaxRun(i) en el momento en el que se ha completado la codificación de un par de serie-nivel i-ésimo, una tabla de códigos de longitud variable puede cambiarse directamente a una en la que no se asignan códigos a pares de serie-nivel que tienen valores de serie Run que son más grandes que el valor de serie máximo MaxRun(i).
Las Figuras 24 son diagramas que muestran ejemplos de las tablas de códigos de longitud variable. En una tabla de códigos Ta (Figura 24(a)), los códigos más cortos se asignan a valores de serie más pequeños en comparación con una tabla de códigos Tb (Figura 24 (b)). En la tabla de códigos Tb (Figura 24 (b)), se asignan adicionalmente códigos más cortos a valores de serie más pequeños en comparación con una tabla de códigos Tc (Figura 24(c)).
Además, en la tabla de códigos Tc (Figura 24(c)), se asignan los códigos más cortos a valores de nivel que tienen valores absolutos más pequeños en comparación con la tabla de códigos Tb (Figura 24 (b)). En la tabla de códigos Tb, se asignan adicionalmente códigos más cortos a valores de nivel que tienen valores absolutos más pequeños en comparación con la tabla de códigos Ta (Figura 24 (a)).
Por lo tanto, es preferible seleccionar la tabla de códigos Ta de la Figura 24(a) cuando el valor de serie máximo MaxRun es más pequeño, la tabla de códigos Tc en la Figura 24(c) cuando el valor de serie máximo MaxRun es más grande, y la tabla de códigos Tb en la Figura 24 (b) cuando el valor de serie máximo MaxRun es un valor intermediario.
De acuerdo con la quinta realización, el aparato de codificación de imágenes 105 que codifica los coeficientes cuantificados que se obtienen cuantificando los componentes de frecuencia de una señal de imagen, se proporciona con la unidad de codificación por longitud de series RLE3 que asigna códigos de longitud variable a los componentes cuantificados usando una tabla de códigos. Después, la unidad de codificación por longitud de series RLE3 selecciona una tabla de códigos en la que se suprimen los pares de serie-nivel que nunca aparecen en base a la suma del número de coeficientes procesados (coeficientes codificados) en un bloque objetivo que se va a codificar y el número de coeficientes no cero no codificados en el bloque objetivo, en otras palabras, la suma del número de coeficientes no cero en el bloque objetivo y el número de valores de serie ya procesados en el bloque objetivo, aumentando de esta manera la eficiencia de la codificación de longitud variable.
De acuerdo con esta quinta realización, en una unidad de codificación por longitud de series que realiza la codificación de longitud variable de los componentes cuantificados correspondientes a cada bloque usando los pares de serie-nivel, se codifica el número NZnum de los componentes no cero en un bloque objetivo. Sin embargo, es posible que la codificación del número NZnum de los componentes no cero de un bloque objetivo se pueda realizar en una unidad de codificación por longitud de series que realiza la codificación de longitud variable de valores de serie y valores de nivel correspondientes a los componentes cuantificados de cada bloque por separado, como en la primera realización. En este caso, el valor de serie máximo en el bloque objetivo se puede ajustar a un valor que se obtiene restando el número NZnum de los componentes no cero del número de todos los componentes en el bloque objetivo.
[Realización 6]
La figura 22 es un diagrama de bloques para explicar un aparato de decodificación de imágenes de acuerdo con una sexta realización de la presente invención.
El aparato de decodificación de imágenes 106 de acuerdo con la sexta realización, en lugar de la unidad de decodificación por longitud de series RLD2 en el aparato de decodificación de imágenes 104 de acuerdo con la cuarta realización como se muestra en la figura 18, tiene una unidad de decodificación por longitud de series RLD3 que realiza un procedimiento de decodificación de datos codificados para reconstituir el número de pares de serienivel y el número de componentes no cero en cada bloque, como en la unidad de decodificación por longitud de series RLD2. Los demás componentes del aparato de decodificación de imágenes 106 de acuerdo con la sexta realización son los mismos que los del aparato de decodificación de imágenes 104 de acuerdo con la cuarta realización.
La figura 23 muestra una construcción específica de la unidad de decodificación por longitud de series RLD3 en el aparato de decodificación de imágenes 106.
Esta unidad de decodificación por longitud de series RLD3 de la sexta realización incluye, en lugar de la calculadora de posición PosClc en la unidad de decodificación por longitud de series RLD2 de acuerdo con la cuarta realización como se muestra en la figura 19, una calculadora de posición PosClc2 para calcular la suma Pos2 del número de valores de serie decodificados en un bloque objetivo que se va a decodificar y el número NZnum de los coeficientes no cero en el bloque objetivo.
Además, un decodificador de longitud variable VLD2 de la unidad de decodificación por longitud de series RLD3 de acuerdo con la sexta realización es diferente del decodificador de longitud variable VLD en la unidad de decodificación por longitud de series RLD2 de acuerdo con la cuarta realización en que se realiza un procedimiento de decodificación para reconstituir un número de código ExtCode y un procedimiento de decodificación para reconstituir el número codificado NZnum de los componentes no cero.
A continuación, se describirán las funciones y efectos.
Las operaciones de la unidad de cuantificación inversa IQ, la unidad de transformación de frecuencia inversa ITrans, y la unidad de desbloqueo DeBlk en el aparato de decodificación de imágenes 106 de acuerdo con la sexta realización son las mismas como las del aparato de decodificación de imágenes 104 de la cuarta realización. Además, las operaciones de los componentes de la unidad de decodificación por longitud de series RLD3 de acuerdo con la sexta realización diferentes del decodificador de longitud variable VLD2, la calculadora de posición PosClc2 y el transformador inverso de número IcodeTrans, es decir, la unidad de reordenamiento inversa IReOdr, el detector de serie-nivel RunLevDec, el convertidor inverso de nivel ILevConv, el convertidor inverso de serie IRunConv, y el escáner en zigzag inverso IScan son idénticas a las de la unidad de decodificación por longitud de series RLD2 de acuerdo con la cuarta realización. Por lo tanto, en lo sucesivo en este documento se describirán principalmente las operaciones del decodificador de longitud variable VLD2, la calculadora de posición PosClc2, y el transformador inverso de número ICodeTrans.
El decodificador de longitud variable VLD2 decodifica la corriente codificada Str3, y transmite un número de código ExtCode correspondiente a una palabra de código (secuencia de bits) que compone la corriente codificada. El transformador inverso de número ICodeTrans realiza una operación inversa a la del transformador de número CodeTrans en base a al menos el parámetro de cuantificación QP o la señal de selección de VLD VldSel, y la suma Pos2 del número de coeficientes decodificados y el número de coeficientes no cero no decodificados, para dividir el número de código ExtCode en un número de código PrmCode correspondiente al par de dígito superior de serienivel que comprende el valor de nivel Lev1 y el valor de serie Run1, un valor de nivel Lev2, y un valor de serie Run2.
La unidad de reordenamiento inversa IReOdr, el detector de serie-nivel RunLevDec, el convertidor inverso de serie IRunConv, el convertidor inverso de nivel ILevConv, y el escáner en zigzag inverso IScan realizan las mismas operaciones que en la cuarta realización.
En este punto, el transformador inverso de número ICodeTrans, la unidad de reordenamiento inversa IReOdr, el convertidor inverso de serie IRunConv, y el convertidor inverso de nivel ILevConv seleccionan una de las primera y segunda tablas de códigos en base a al menos el parámetro de cuantificación QP o la señal de selección de VLD VldSel, y la suma Pos2 de coeficientes, y realizan las operaciones en base a la tabla de códigos seleccionada.
En lo sucesivo en este documento, se describirá específicamente la operación del decodificador de longitud variable VLD2.
El decodificador de longitud variable VLD2 de acuerdo con la sexta realización es diferente del decodificador de longitud variable VLD de acuerdo con la cuarta realización porque no sólo decodifica el número de código ExtCode correspondiente al par de serie-nivel sino que también el número codificado NZnum de los componentes no cero en el bloque objetivo. Cuando el número NZnum de los componentes no cero se obtiene mediante la decodificación, en el momento en el que los pares de serie-nivel de NZnum se han decodificado, este par de serie-nivel de NZnumésimo se determina que es el último par de serie-nivel. Por consiguiente, el decodificador de longitud variable VLD2 no requiere un valor EOB que se requiere por el decodificador de longitud variable VLD y se codifica al final del bloque objetivo.
Por ejemplo, asumiendo que existen componentes cuantificados de NBlock QS en el bloque objetivo, incluyendo componentes cero y componentes no cero, el valor de serie máximo (el número máximo de coeficientes cero que continúan sucesivamente) es (NBlock-NZnum) en base al número NZnum de los coeficientes no cero en el bloque objetivo. Además, el valor de serie máximo (el número máximo de coeficientes cero que continúan sucesivamente) MaxRun(1) en el momento en el que la decodificación para reconstituir el primer par de serie-nivel se ha realizado es (NBlock-NZnum-FRun) como se describe en la quinta realización.
Generalmente, el valor de serie máximo MaxRun(i) en el momento de la decodificación para reconstituir un par de serie-nivel i-ésimo en un bloque se ha realizado, se obtiene como se indica a continuación:
MaxRun(i) = Nblock - Nznum - {la suma de los valores de serie i-ésimo}
Por lo tanto, la calculadora de posición PosClc2 transmite la suma Pos2 de coeficientes [=NZnum + {la suma de los valores de serie i-ésimo}], indicando de esta manera al transformador numérico CodeTrans que el valor de serie máximo en el momento en el que la decodificación para reconstituir un par de serie-nivel i-ésimo se ha realizado es (NBlock-Pos2).
El transformador inverso de número ICodeTrans emplea una tabla de códigos en la que no se asigna ningún código a los números de código correspondientes a los pares de serie-nivel que comprenden valores de serie que son más grandes que el valor de serie máximo Run, para obtener un número de código ExtCode correspondiente a un código, decodificando de esta manera un código que se asigna a un número de código de acuerdo con la asignación de códigos que evita la asignación de códigos a los pares de serie-nivel.
En este punto, cuando se emplea una tabla de códigos de longitud variable que está compuesta por la primera parte que puede generarse por una operación aritmética (VLC regularmente construido) y la segunda parte que no puede generarse regularmente (tabla de ciclo de VLC) como las primera y segunda tablas de códigos en el procedimiento de decodificación de longitud variable, la segunda tabla de códigos puede formarse cambiando tanto las primera y segunda partes en la primera tabla de códigos de acuerdo con el valor de serie máximo, mientras que la segunda tabla de códigos puede formarse cambiando solamente la primera parte de la primera tabla de códigos que puede generarse por una aritmética cuya operación se realiza fácilmente, de acuerdo con el valor de serie máximo.
Además, cuando se ha completado una tabla de códigos de longitud variable se cambia de acuerdo con el valor de serie máximo MaxRun en el momento de la decodificación para la reconstitución de un par de serie-nivel i-ésimo, la tabla de códigos de longitud variable puede cambiarse directamente a la tabla de códigos Ta en la figura 24(a), la tabla de códigos Tb en la figura 24(b), o la tabla de códigos Tc en la figura 24 (c), en lugar de cambiar la tabla de códigos a una en la que no se asigna ningún código a los pares de serie-nivel que comprenden valores de serie que son mayores que el valor de serie máximo MaxRun.
Por ejemplo, es preferible seleccionar la tabla de códigos Ta en la figura 24 (a) cuando el valor de serie máximo MaxRun es más pequeño, la tabla de códigos Tc en la figura 24 (c) cuando el valor de serie máximo MaxRun es mayor, y la tabla de códigos Tb en la figura 24 (b) cuando el valor de serie máximo MaxRun es un valor intermedio.
Como se ha descrito anteriormente, de acuerdo con la sexta realización, el aparato de decodificación de imágenes 106 que reconstituye los coeficientes cuantificados que se obtienen cuantificando los componentes de frecuencia de una señal de imagen por un procedimiento de decodificación para datos codificados, se proporciona con la unidad de decodificación por longitud de series RLD3 para obtener un coeficiente cuantificado correspondiente a un código de longitud variable empleando una tabla de códigos. Después, esta unidad de decodificación por longitud de series RLD3 selecciona una tabla de códigos que no incluye pares de serie-nivel que nunca aparecerán, en base a la suma del número de coeficientes procesados (coeficientes decodificados) en un bloque objetivo y el número de coeficientes no cero no decodificados en el bloque objetivo. Por lo tanto, puede realizarse satisfactoriamente un procedimiento de decodificación correspondiente a un procedimiento de codificación de longitud variable que puede eliminar más eficazmente la información redundante incluida en los coeficientes cuantificados que se van a procesar.
De acuerdo con esta sexta realización, en la unidad de decodificación por longitud de series que realiza la decodificación de longitud variable para componentes cuantificados de cada bloque usando pares de serie-nivel, el número codificado NZnum de los componentes no cero en un bloque objetivo se decodifica. Sin embargo, es posible que, por ejemplo, en una unidad de decodificación por longitud de series que somete los valores de serie y valores de nivel correspondientes a los componentes cuantificados de cada bloque por separado al procedimiento de decodificación de longitud variable como en la segunda realización, el número codificado NZnum de los componentes no cero del bloque objetivo se decodifique. En este caso, se puede determinar que el valor de nivel de NZnum-ésimo es el último valor de nivel en el bloque objetivo, en el momento en el que los valores de nivel NZnum se han decodificado.
En cualquiera de las realizaciones que se han mencionado anteriormente, la tabla de códigos se cambia de acuerdo con el parámetro de cuantificación QP, mientras que la tabla de códigos puede cambiarse de acuerdo con otro parámetro. Por ejemplo, puede obtenerse recientemente otro parámetro y expresamente conmutarse en cada bloque.
En las realizaciones que se han mencionado anteriormente, como un procedimiento para someter los coeficientes, tales como componentes cuantificados a un procedimiento de codificación (decodificación) de longitud variable, se muestra un procedimiento en el que se emplea una tabla de VLC, y la tabla de VLC se cambia en base a al menos la información acerca de los coeficientes procesados que se han sometido al procedimiento de codificación (decodificación), o un parámetro relacionado con la generación de los coeficientes. Sin embargo, el procedimiento para la codificación (decodificación) de longitud variable de coeficientes, tales como componentes cuantificados de acuerdo con la presente invención no se limita a uno que use la tabla de VLC. Por ejemplo, el procedimiento para la codificación de longitud variable de los componentes cuantificados como se describe en cualquiera de las primera, tercera y quinta realizaciones, puede ser un procedimiento de codificación de longitud variable en el que no se emplee la tabla de VLC, y una tabla de códigos correspondiente a la tabla de VLC se cambia en base a al menos la información acerca de los coeficientes procesados, o el parámetro relacionado con la generación de los coeficientes. Además, el procedimiento para la decodificación de longitud variable de los datos codificados correspondientes a los componentes cuantificados de acuerdo con cualquiera de las segunda, cuarta y sexta realizaciones, puede ser un procedimiento de decodificación de longitud variable por el que no se emplee la tabla de VLC, y una tabla de códigos correspondiente a la tabla de VLC se cambia en base de a al menos la información acerca de los coeficientes procesados, o el parámetro relacionado con la generación de los coeficientes.
El aparato de codificación de imágenes que realiza un procedimiento de codificación de longitud variable o el aparato de decodificación de imágenes que realiza un procedimiento de decodificación de longitud variable de acuerdo con cualquiera de las realizaciones que se han mencionando anteriormente, se implementa por hardware, mientras que estos aparatos pueden implementarse por software. En este caso, cuando un programa para ejecutar el procedimiento de codificación o decodificación de longitud variable de acuerdo con cualquiera de las realizaciones que se han mencionado anteriormente se graba en un medio de almacenamiento de datos, tal como un disco flexible, el aparato de codificación de imágenes o el aparato de decodificación de imágenes de acuerdo con cualquiera de las realizaciones que se han mencionado anteriormente puede implementarse fácilmente en un sistema informático independiente.
Las figuras 25 son diagramas para explicar un sistema informático para ejecutar el procedimiento de codificación de longitud variable de acuerdo con la primera, tercera o quinta modalidad, o el procedimiento de decodificación de longitud variable de acuerdo con la segunda, cuarta o sexta realización.
La figura 25 (a) muestra una vista frontal de un disco flexible FD que es un medio que contiene un programa empleado en el sistema informático, una vista en sección transversal del mismo, y un cuerpo de disco flexible D. La figura 25(b) muestra un ejemplo de un formato físico del cuerpo de disco flexible D.
El disco flexible FD se compone del cuerpo de disco flexible D y una carcasa FC que contiene el cuerpo de disco flexible D. En la superficie del cuerpo de disco D, una pluralidad de pistas Tr se forman concéntricamente desde la circunferencia externa del disco hacia la circunferencia interna. Cada pista se divide en 16 sectores Se en la dirección angular. Por lo tanto, en el disco flexible FD de acuerdo con el programa que se ha mencionado anteriormente, los datos del programa para ejecutar el procedimiento de codificación de longitud variable o el procedimiento de decodificación de longitud variable se graban en las áreas de almacenamiento asignadas (sectores) en el cuerpo de disco flexible D.
La figura 25(c) muestra la estructura para grabar o reproducir el programa en/desde el disco flexible FD. Cuando el programa se graba en el disco flexible FD, los datos del programa se escriben en el disco flexible FD del sistema informático Cs a través de la unidad de disco flexible FDD. Cuando el aparato de codificación de imágenes o el aparato de decodificación de imágenes que se ha mencionado anteriormente se construye en el sistema informático Cs mediante el programa grabado en el disco flexible FD, el programa se lee desde el disco flexible FD por la unidad de disco flexible FDD y después se carga al sistema informático Cs.
Aunque en la descripción anterior se emplea un disco flexible como un medio de almacenamiento que contiene un programa para ejecutar el procedimiento de codificación de longitud variable o el procedimiento de decodificación de longitud variable, puede emplearse un disco óptico como medio de almacenamiento. Además en este caso, el procedimiento de codificación de longitud variable o el procedimiento de decodificación de longitud variable pueden realizarse por software de manera similar como en el caso de usar un disco flexible. El medio de almacenamiento no se limita a estos discos, y puede emplearse cualquier medio siempre que pueda contener el programa, por ejemplo, un CD-ROM, una tarjeta de memoria o un casete ROM. Además, cuando se emplea dicho medio de almacenamiento de datos, el procedimiento de codificación de longitud variable o decodificación de longitud variable puede realizarse por el sistema informático de la misma manera como en el caso de usar el disco flexible.
En lo sucesivo en este documento, se describirá las aplicaciones del procedimiento de codificación de imágenes o procedimiento de decodificación de imágenes de acuerdo con cualquiera de las realizaciones que se han mencionado anteriormente y sistemas que usan los mismos.
La figura 26 es un diagrama de bloques que ilustra una construcción completa de un sistema de provisión de contenido 1100 que realiza los servicios de distribución de contenido.
Un área de provisión de servicio de comunicaciones se divide en regiones (celdas) del tamaño deseado, y las estaciones de base 1107 a 1110, que cada una es una estación de radio fijas, se establecen en las respectivas celdas.
En este sistema de provisión de contenidos 1100, diversos dispositivos, tales como un ordenador 1111, un PDA (asistente digital personal) 1112, una cámara 1113, un teléfono móvil 1114, y un teléfono móvil con una cámara 1200, están conectados por ejemplo, a la Internet 1101 a través de un proveedor de servicios de Internet 1102, una red telefónica 1104 y las estaciones de base 1107 a 1110.
Sin embargo, el sistema de provisión de contenido 1100 no se limita a un sistema que incluye toda la pluralidad de dispositivos mostrados en la figura 26, pero puede ser uno que incluye algunos de la pluralidad de dispositivos mostrados en la figura 26. Además, los respectivos dispositivos pueden conectarse directamente a la red telefónica 1104, no a través de las estaciones de base 1107 a 1110 como las estaciones de radio fijas.
La cámara 1113 es un dispositivo que puede captar imágenes en movimiento de un objeto, similar a una cámara de vídeo digital. El teléfono móvil puede ser un conjunto de teléfono móvil de acuerdo con cualquier sistema PDC (Comunicaciones Digitales Personales), sistema CDMA (Acceso Múltiple de División de Códigos), sistema W-CDMA (Acceso Múltiple de División de Códigos de Banda Ancha), y sistema GSM (Sistema Global para Comunicaciones Móviles), o PHS (Sistema de Teléfono Portátil Personal).
Un servidor de flujo continuo 1103 se conecta a la cámara 1113 a través de la estación de base 1109 y la red telefónica 1104. En este sistema, puede realizarse la distribución en vivo basada en los datos codificados que se transmiten por un usuario que usa la cámara 1113. El procedimiento de codificación para los datos de las imágenes capturadas puede realizarse por la cámara 1113 o el servidor que transmite los datos. Los datos de imágenes en movimiento, que se obtienen capturando imágenes en movimiento de un objeto por medio de la cámara 116, pueden transmitirse al servidor de flujo continuo 1103 a través del ordenador 1111. La cámara 1116 es un dispositivo que puede capturar imágenes fijas o en movimiento de un objeto, tal como cámara digital. En este caso, la codificación de los datos de imágenes en movimiento puede realizarse por la cámara 1116 o el ordenador 1111. Además, el procedimiento de codificación se realiza por una LSI 1117 incluida en el ordenador 1111 o la cámara 1116.
El software de codificación o decodificación de imágenes puede almacenarse en un medio de almacenamiento (un CD-ROM, un disco flexible, un disco duro, o similar) que es un medio de grabación que contiene datos legibles por el ordenador 1111 o similares. Los datos de imágenes en movimiento pueden transmitirse a través del teléfono móvil con una cámara 1200. Los datos de imágenes en movimiento son datos que se han codificado por una LSI incluida en el teléfono móvil 1200.
En este sistema de provisión de contenido 1100, el contenido correspondiente a las imágenes capturadas por el usuario por medio de la cámara 1113 o la cámara 1116 (por ejemplo, video en vivo de un concierto de música) se codifican en la cámara de la misma manera que cualquiera de las realizaciones que se han mencionado anteriormente, y se transmiten de la cámara al servidor de flujo continuo 1103. Los datos de contenidos se someten a la distribución de flujo continuo desde el servidor de flujo continuo 1103 a un cliente solicitante.
El cliente puede ser cualquiera del ordenador 1111, el PDA 1112, la cámara 1113, el teléfono móvil 1114 y similares, que pueden decodificar los datos codificados.
En este sistema de provisión de contenidos 1100, los datos codificados pueden recibirse y reproducirse por parte del cliente. Cuando los datos se reciben, decodifican, y reproducen en tiempo real por parte del cliente, puede realizarse la radiodifusión privada.
La codificación o decodificación en los respectivos dispositivos que constituyen este sistema puede realizarse usando el aparato de codificación de imágenes o el aparato de decodificación de imágenes de acuerdo con cualquiera de las realización que se han mencionado anteriormente.
Ahora se describirá un teléfono móvil como un ejemplo del aparato de codificación o decodificación de imagen.
La figura 27 es un diagrama que ilustra un teléfono móvil 1200 que emplea el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes de acuerdo con cualquiera de las realizaciones que se han mencionado anteriormente.
Este teléfono móvil 1200 incluye una antena 1201 para transmitir/recibir ondas de radio a/desde la estación de base 1110, una unidad de cámara 1203 que puede captar imágenes fijas o de video de un objeto, tal como una cámara CCD y una unidad de visualización 1202, tal como una pantalla de cristal liquido para visualizar los datos del video captado por la unidad de cámara 1203 o el video recibido a través de la antena 1201.
El teléfono móvil 1200 incluye adicionalmente un cuerpo principal 1204 que incluye una pluralidad de teclas de control, una unidad de salida de voz 1208 para transmitir voces, tal como un altavoz, una unidad de entrada de voz 1205 para introducir voces, tal como un micrófono, un medio de almacenamiento 1207 para retener los datos codificados o los datos decodificados, tales como imágenes en movimiento o sólo imágenes capturadas, o datos, datos de imágenes en movimiento o solo datos de imágenes de mensajes de correo electrónico recibidos, y una unidad de ranura 1206 que permite que el medio de almacenamiento 1207 se introduzca en el teléfono móvil 1200.
El medio de almacenamiento 1207 tiene un elemento de memoria flash como un tipo de EEPROM (Memoria de Sólo Lectura Programable y Borrable Electrónicamente) que es una memoria no volátil borrable y programable
electrónicamente contenida en una carcasa de plástico, como una tarjeta SD.
El teléfono móvil 1200 se describirá más específicamente con referencia a la figura 28.
El teléfono móvil 1200 tiene una unidad de control principal 1241 que realiza el control general de las respectivas unidades del cuerpo principal, incluyendo la unidad de visualización 1202 y las teclas de control 1204.
El teléfono móvil 1200 incluye adicionalmente un circuito de alimentación 1240, una unidad de control de entrada de operación 1234, una unidad de codificación de imágenes 1242, una unidad de interfaz de cámara 1233, una unidad de control de LCD (Pantalla de Cristal Liquido) 1232, una unidad de decodificación de imágenes 1239, una unidad de multiplexación/desmultiplexación 1238, una unidad de grabación/reproducción 1237, una unidad de modulación/desmodulación 1236, y una unidad de procesamiento de audio 1235. Las respectivas unidades del teléfono móvil 1200 se conectan entre sí a través de un bus de sincronización 1250.
El circuito de alimentación 1240 suministra energía desde un paquete de baterías a las unidades respectivas cuando una tecla de final de llamada/suministro de energía se enciende bajo el control de un usuario, activando de esta manera el teléfono móvil digital con una cámara 1200 que se establece en un estado operable.
En el teléfono móvil 1200, las respectivas unidades operan bajo el control de la unidad de control principal 1241 que está constituida por una CPU, una ROM, una RAM y similares. Para ser más específicos, en el teléfono móvil 1200, una señal de audio que se obtiene por la entrada de voz en la unidad de entrada de voz 1205 en un modo de comunicación de voz, se convierte en datos de audio digital por la unidad de procesamiento de audio 1235. Los datos de audio digital se someten a un procedimiento de amplitud de espectro mediante el circuito de modulación/desmodulación 1236, además se someten a un procedimiento de conversión DA y un procedimiento de transformación de frecuencia por el circuito de transmisión/recepción 1231, y se transmiten a través de la antena 1201.
En este aparato de teléfono móvil 1200, se amplifica una señal recibida a través de la antena 1201 en el modo de comunicación de voz, y después se somete a un procedimiento de transformación de frecuencia y un procedimiento de conversión AD. La señal recibida se somete adicionalmente a un procedimiento de amplitud inversa de espectro en el circuito de modulación/desmodulación 1236, se convierte en una señal de audio analógica por la unidad de procesamiento de audio 1235, y esta señal de audio analógica se transmite a través de la unidad de salida de voz 1208.
Cuando el teléfono móvil 1200 transmite un correo electrónico en un modo de comunicación de datos, los datos de texto del correo electrónico que se introducen por la manipulación de las teclas de control 1204 en el cuerpo principal se transmiten a la unidad de control principal 1241 a través de la unidad de control de entrada de operación 1234. La unidad de control principal 1241 controla las respectivas unidades de modo que los datos de texto se someten al procedimiento de amplitud de espectro en el circuito de modulación/desmodulación 1236, después se someten al procedimiento de conversión DA y el procedimiento de transformación de frecuencia en el circuito de transmisión/recepción 1231, y después se transmiten a la estación de base 1110 a través de la antena 1201.
Cuando este teléfono móvil 1200 transmite los datos de imagen en el modo de comunicación, los datos de una imagen captada por la unidad de cámara 1203 se suministran a la unidad de codificación de imágenes 1242 a través de la unidad de interfaz de cámara 1233. Cuando el teléfono móvil 1200 no transmite los datos de imagen, los datos de la imagen captada por la unidad de cámara 1203 se pueden visualizar directamente en la unidad de visualización 1202 a través de la unidad de interfaz de cámara 1233 y la unidad de control de LCD 1232.
La unidad de codificación de imágenes 1242 incluye el aparato de codificación de imágenes de acuerdo con cualquiera de las realizaciones que se han mencionado anteriormente. Esta unidad de codificación de imágenes 1242 codifica de manera compresiva los datos de imagen suministrados de la unidad de cámara 1203 por el procedimiento de codificación de imágenes de acuerdo con cualquiera de las realizaciones anteriores para convertir los mismos en datos de imágenes codificados, y transmite los datos de imágenes codificados obtenidos a la unidad de multiplexación/desmultiplexación 1238. Al mismo tiempo, el teléfono móvil 1200 transmite voces que se introducen en la unidad de entrada de voz 1205 mientras que la imagen que se captura por la unidad de cámara 1203, como datos de audio digital, a la unidad de multiplexación/desmultiplexación 1238 a través de la unidad de procesamiento de audio 1235.
La unidad de multiplexación/desmultiplexación 1238 multiplexa los datos de imagen codificados suministrados de la unidad de codificación de imágenes 1242 y los datos de audio suministrados de la unidad de procesamiento de audio 1235 por un procedimiento predeterminado. Los datos multiplexados resultantes se someten a un procedimiento de amplitud de espectro en el circuito de modulación/desmodulación 1236, después se someten adicionalmente al procedimiento de conversión DA y el procedimiento de transformación de frecuencia en el circuito de transmisión/recepción 1231, y los datos obtenidos se transmiten a través de la antena 1201.
Cuando el teléfono móvil 1200 recibe los datos de un archivo de imágenes en movimiento que se vincula a una página principal o similar en el modo de comunicación de datos, una señal recibida de la estación de base 1110 a través de la antena 1201 se somete a un procedimiento de amplitud inversa de espectro por el circuito de modulación/desmodulación 1236, y los datos multiplexados resultantes se transmiten a la unidad de multiplexación/desmultiplexación 1238.
Cuando los datos multiplexados que se reciben a través de la antena 1201 se decodifican, la unidad de multiplexación/desmultiplexación 1238 desmultiplexa los datos multiplexados para dividir los datos en una corriente de bits codificada correspondiente con los datos de imagen y una corriente de bits codificada correspondiente con los datos de audio, y los datos de imagen codificados se suministran a la unidad de decodificación de imágenes 1239, y los datos de audio se suministran a la unidad de procesamiento de audio 1235, a través del bus de sincronización 1250.
La unidad de decodificación de imágenes 1239 incluye el aparato de decodificación de imágenes de acuerdo con cualquiera de las realizaciones antes mencionadas. La unidad de decodificación de imágenes 1239 decodifica la corriente de bits codificada de los datos de imagen por el procedimiento de decodificación correspondiente al procedimiento de codificación de acuerdo con cualquiera de las realizaciones que se han mencionado anteriormente, para reproducir los datos de imágenes en movimiento, y suministra los datos reproducidos a la unidad de visualización 1202 a través de la unidad de control de LCD 1232. Por lo cual, por ejemplo, se visualizan los datos de las imágenes en movimiento incluidos en el archivo de imágenes en movimiento que se vincula a la página principal. Al mismo tiempo, la unidad de procesamiento de audio 1235 convierte los datos de audio en una señal de audio analógica, y después suministra la señal de audio analógica a la unidad de salida de voz 1208. Por lo cual, por ejemplo, se reproducen los datos de audio incluidos en el archivo de imágenes en movimiento que se vincula a la página principal.
En este punto, un sistema al que es aplicable el procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes de acuerdo con cualquiera de las realizaciones que se han mencionado anteriormente, no se limita al sistema de provisión de contenidos que se ha mencionado anteriormente.
Recientemente, se ha discutido con frecuencia de la radiodifusión digital que usa ondas por satélite o terrestres, y el aparato de codificación de imágenes y el aparato de decodificación de imágenes de acuerdo con las realizaciones anteriores también son aplicables a un sistema de radiodifusión digital como se muestra en la figura 29.
Más específicamente, una corriente de bits codificada correspondiente a la información de vídeo se transmite desde una estación de radiodifusión 1409 a un satélite 1410, tal como un satélite de comunicaciones o un satélite de radiodifusión, a través de comunicación por radio. Cuando el satélite de radiodifusión 1410 recibe la corriente de bits codificada correspondiente a la información de video, el satélite 1410 produce las ondas de radiodifusión, y estas ondas se reciben por una antena 1406 en el hogar que incluye la instalación de recepción de radiodifusión por satélite. Por ejemplo, un aparato, tal como una televisión (receptor) 1401 o un aparato que integra el convertidor y decodificador (STB) 1407 decodifica la corriente de bits codificada, y reproduce la información de video.
Además, el aparato de decodificación de imágenes de acuerdo con cualquiera de las realizaciones que se han mencionado anteriormente también puede montarse en un aparato de reproducción 1403 que puede leer y decodificar la corriente de bits codificada grabada en un medio de almacenamiento 1402, tal como un CD o un DVD (medio de grabación).
En este caso, una señal de vídeo reproducida se visualiza en un monitor 1404. El aparato de decodificación de imágenes puede montarse en el aparato que integra el convertidor y decodificador 1407 que está conectado a un cable para televisión por cable 1405 o una antena para radiodifusión por satélite/terrestre 1406, para reproducir una transmisión del aparato de decodificación de imágenes que se visualiza en un monitor 1408 de la televisión. En este caso, el aparato de decodificación de imágenes no puede incorporarse en el aparato que integra el convertidor y decodificador sino en la televisión. Un vehículo 1412 que tiene una antena 1411 puede recibir una señal del satélite 1410 o la estación de base 1107, y reproducir una imagen en movimiento para visualizar la misma en un dispositivo de visualización de un sistema de navegación de automóviles 1413 o similar que está montado en el vehículo 1412.
Además, también es posible que una señal de imagen pueda codificarse por el aparato de codificación de imágenes de acuerdo con cualquiera de las realizaciones que se han mencionado anteriormente y grabarse en un medio de grabación.
Un ejemplo específico de un dispositivo de grabación es un grabador 1420, tal como una grabadora de DVD que graba señales de imagen en un disco DVD 1421, y una grabadora de disco que graba señales de imagen en un disco duro. Las señales de imagen pueden grabarse en una tarjeta SD 1422. Además, cuando la grabadora 1420 incluye el aparato de decodificación de imágenes de acuerdo con cualquiera de las realizaciones que se han mencionado anteriormente, las señales de imagen que se graban en el disco DVD 1421 o la tarjeta SD 1422 pueden reproducirse por la grabadora 1420 y se visualizan en el monitor 1408.
En este punto, la estructura del sistema de navegación de automóviles 1413 puede incluir, por ejemplo, los componentes del teléfono móvil mostrado en la figura 28 diferentes de la unidad de cámara 1203, la unidad de interfaz de cámara 1233 y la unidad de codificación de imágenes 1242, y lo mismo se aplica para el ordenador 1111,
o la televisión (receptor) 1401.
Además, como terminal, tal como el teléfono móvil 1114, puede montarse uno de los tres tipos de terminales: una terminal de tipo transmisión-recepción que tiene tanto un codificador como un decodificador, una terminal de transmisión que tiene solamente un codificador, y una terminal de recepción que tiene solamente un decodificador.
Como se ha descrito anteriormente, el procedimiento de codificación de imágenes o el procedimiento de decodificación de imágenes de acuerdo con cualquiera de las realizaciones que se han mencionado anteriormente es aplicable a cualquiera de los dispositivos o sistemas que se han mencionado anteriormente, por lo que pueden obtenerse los efectos que se han descrito en las realizaciones anteriores.
El procedimiento de codificación de longitud variable y el procedimiento de decodificación de longitud variable de acuerdo con la presente invención eliminan de forma eficaz la información redundante incluida en los datos de coeficiente como un objetivo de un procedimiento de codificación de longitud variable, seleccionando una tabla de códigos de forma adaptable a las características de los coeficientes que componen los datos de coeficientes o estados de un procedimiento de codificación para los coeficientes, mejorando de esta manera en gran medida la eficiencia de la codificación de un procedimiento de codificación de longitud variable para señales de imagen o similares. Estos procedimientos de codificación de longitud variable y procedimiento de decodificación de longitud variable son útiles en el procesamiento de datos para transmitir o almacenar datos de imágenes en movimiento. Se hace constar que con relación a esta fecha, el mejor procedimiento conocido por la solicitante para llevar a la práctica la citada invención, es el que resulta claro de la presente descripción de la invención.
Claims (3)
- REIVINDICACIONES1. Un procedimiento para decodificar un valor de serie codificado para decodificar una imagen,en el que el valor de serie codificado se obtiene codificando un valor de serie, siendo el valor de serie un número de coeficientes de la transformada de valor cero continuo que preceden a un coeficiente de la transformada no cero,comprendiendo el procedimiento las siguientes etapas realizadas por un aparato decodificador:seleccionar una tabla de códigos de acuerdo con el número total de coeficientes de la transformada de valor cero no codificados en un bloque,en el que el coeficiente de la transformada de valor cero no decodificado indica un coeficiente de la transformada que tiene un valor de cero y no ha sido decodificado;decodificar por longitud variable el valor de serie codificado en el bloque usando la tabla de códigos seleccionada.
-
- 2.
- El procedimiento de decodificación de acuerdo con la reivindicación 1, en el que dicha selección de una tabla de código se realiza en dicha codificación por longitud variable del valor de serie codificado en una base bloque por bloque.
-
- 3.
- Un aparato de decodificación para decodificar un valor de serie codificado para decodificar una imagen,
en el que el valor de serie codificado se obtiene codificando un valor de serie, siendo el valor de serie un número de coeficientes de la transformada de valor cero continuo que preceden a un coeficiente de la transformada no cero, comprendiendo el aparato: una unidad de decodificador de longitud variable que funciona para- (i)
- seleccionar una tabla de códigos de acuerdo con un número total de coeficientes de la transformada de valor cero no codificados en un bloque, en la que el coeficiente de la transformada de valor cero no codificado indica un coeficiente de la transformada que tiene un valor de cero y no ha sido codificado, y
- (ii)
- decodificar por longitud variable el valor de serie codificado en el bloque usando la tabla de códigos seleccionada.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001358197 | 2001-11-22 | ||
JP2001358197 | 2001-11-22 | ||
JP2002099227 | 2002-04-01 | ||
JP2002099227 | 2002-04-01 | ||
PCT/JP2002/012230 WO2003045065A2 (en) | 2001-11-22 | 2002-11-22 | Variable length coding method and variable length decoding method |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2373944T3 true ES2373944T3 (es) | 2012-02-10 |
Family
ID=26624666
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02803564T Expired - Lifetime ES2373944T3 (es) | 2001-11-22 | 2002-11-22 | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable. |
ES16175243T Expired - Lifetime ES2752804T3 (es) | 2001-11-22 | 2002-11-22 | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable |
ES16175245T Expired - Lifetime ES2741562T3 (es) | 2001-11-22 | 2002-11-22 | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable |
ES16175248T Expired - Lifetime ES2741563T3 (es) | 2001-11-22 | 2002-11-22 | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable |
ES10180714.7T Expired - Lifetime ES2599624T3 (es) | 2001-11-22 | 2002-11-22 | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable |
ES10180698.2T Expired - Lifetime ES2587022T3 (es) | 2001-11-22 | 2002-11-22 | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable |
Family Applications After (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES16175243T Expired - Lifetime ES2752804T3 (es) | 2001-11-22 | 2002-11-22 | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable |
ES16175245T Expired - Lifetime ES2741562T3 (es) | 2001-11-22 | 2002-11-22 | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable |
ES16175248T Expired - Lifetime ES2741563T3 (es) | 2001-11-22 | 2002-11-22 | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable |
ES10180714.7T Expired - Lifetime ES2599624T3 (es) | 2001-11-22 | 2002-11-22 | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable |
ES10180698.2T Expired - Lifetime ES2587022T3 (es) | 2001-11-22 | 2002-11-22 | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable |
Country Status (14)
Country | Link |
---|---|
US (16) | US6967600B2 (es) |
EP (7) | EP3099068B1 (es) |
JP (7) | JP4158995B1 (es) |
KR (16) | KR100993443B1 (es) |
CN (3) | CN1301014C (es) |
AT (1) | ATE528924T1 (es) |
AU (5) | AU2002357584B2 (es) |
BR (3) | BR0206628A (es) |
CA (2) | CA2450360C (es) |
DK (3) | DK1413139T3 (es) |
ES (6) | ES2373944T3 (es) |
MX (2) | MXPA04000912A (es) |
PT (3) | PT2268033T (es) |
WO (2) | WO2003045065A2 (es) |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MXPA04000912A (es) | 2001-11-22 | 2004-04-02 | Matsushita Electric Ind Co Ltd | Metodo de codificacion de longitud variable y metodo de decodificacion de longitud variable. |
JP4368575B2 (ja) * | 2002-04-19 | 2009-11-18 | パナソニック株式会社 | 可変長復号化方法、可変長復号化装置およびプログラム |
ES2378462T3 (es) | 2002-09-04 | 2012-04-12 | Microsoft Corporation | Codificación entrópica por adaptación de codificación entre modalidades de nivel y de longitud/nivel de cadencia |
US7133523B2 (en) * | 2002-12-20 | 2006-11-07 | Pitney Bowes Inc. | Method and system for solving the word problem in braid group cryptosystems |
CN1214649C (zh) * | 2003-09-18 | 2005-08-10 | 中国科学院计算技术研究所 | 用于视频预测残差系数编码的熵编码方法 |
US7522774B2 (en) * | 2004-03-10 | 2009-04-21 | Sindhara Supermedia, Inc. | Methods and apparatuses for compressing digital image data |
US7519229B2 (en) * | 2004-03-30 | 2009-04-14 | Apple, Inc. | Video coding system providing separate coding chains for dynamically selected small-size or full-size playback |
JP2005333609A (ja) * | 2004-04-22 | 2005-12-02 | Sanyo Electric Co Ltd | 符号化制御回路及び符号化回路 |
ATE532270T1 (de) * | 2004-07-14 | 2011-11-15 | Slipstream Data Inc | Verfahren, system und computerprogramm für die optimierung von datenkomprimierung |
CN101032081B (zh) * | 2004-07-14 | 2010-05-26 | 喷流数据有限公司 | 用于数据压缩优化的方法和系统 |
US7570827B2 (en) * | 2004-07-14 | 2009-08-04 | Slipstream Data Inc. | Method, system and computer program product for optimization of data compression with cost function |
JP3990392B2 (ja) * | 2004-08-31 | 2007-10-10 | 松下電器産業株式会社 | 可変長復号化装置、可変長復号化方法および撮像システム |
US7209059B2 (en) * | 2004-12-06 | 2007-04-24 | Matsushita Electric Industrial Co., Ltd. | Decoding method and encoding method |
US8599925B2 (en) | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
JP4682102B2 (ja) | 2005-09-02 | 2011-05-11 | キヤノン株式会社 | 画像符号化装置及び画像符号化方法 |
JP4548348B2 (ja) * | 2006-01-18 | 2010-09-22 | カシオ計算機株式会社 | 音声符号化装置及び音声符号化方法 |
JP4749195B2 (ja) | 2006-03-28 | 2011-08-17 | 京セラ株式会社 | 通信制御装置、無線通信装置、通信制御方法及び無線通信方法 |
US8599841B1 (en) | 2006-03-28 | 2013-12-03 | Nvidia Corporation | Multi-format bitstream decoding engine |
US8593469B2 (en) * | 2006-03-29 | 2013-11-26 | Nvidia Corporation | Method and circuit for efficient caching of reference video data |
JP2007329903A (ja) * | 2006-05-11 | 2007-12-20 | Matsushita Electric Ind Co Ltd | 可変長復号化装置、可変長復号化方法および撮像システム |
US7324026B2 (en) * | 2006-05-19 | 2008-01-29 | Nvidia Corporation | Optimization of decoder memory usage for VLC tables |
US7884742B2 (en) * | 2006-06-08 | 2011-02-08 | Nvidia Corporation | System and method for efficient compression of digital data |
EP2067356A1 (en) * | 2006-09-28 | 2009-06-10 | THOMSON Licensing | Flexible redundancy coding |
US7796825B2 (en) * | 2007-02-16 | 2010-09-14 | Cisco Technology, Inc. | Losslessly improving compression of compressed image data |
US7774205B2 (en) * | 2007-06-15 | 2010-08-10 | Microsoft Corporation | Coding of sparse digital media spectral data |
CN101106715B (zh) * | 2007-07-26 | 2012-08-29 | 昊迪移通(北京)技术有限公司 | 一种视频带宽适配方法及装置 |
NO20074463A (no) * | 2007-09-03 | 2009-02-02 | Tandberg Telecom As | Metode for entropikoding av transformasjonskoeffisienter i videokomprimeringssystemer |
US8031959B2 (en) * | 2008-02-22 | 2011-10-04 | Himax Technologies Limited | Compression system for a bit-plane |
US8902972B2 (en) * | 2008-04-11 | 2014-12-02 | Qualcomm Incorporated | Rate-distortion quantization for context-adaptive variable length coding (CAVLC) |
US8179974B2 (en) * | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US20090304073A1 (en) * | 2008-06-06 | 2009-12-10 | Mohammad Usman | Systems and Methods for the Bandwidth Efficient Processing of Data |
JPWO2009157581A1 (ja) * | 2008-06-27 | 2011-12-15 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
KR101501568B1 (ko) * | 2008-07-04 | 2015-03-12 | 에스케이 텔레콤주식회사 | 영상 부호화 및 복호화 장치 및, 방법 |
US7791509B2 (en) * | 2008-07-15 | 2010-09-07 | International Business Machines Corporation | Preprocessing variable-length code (VLC) bitstream information |
US7777653B2 (en) * | 2008-07-15 | 2010-08-17 | International Business Machines Corporation | Decoding variable-length code (VLC) bitstream information |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
TWI482499B (zh) * | 2008-10-03 | 2015-04-21 | Ind Tech Res Inst | 影像訊號處理裝置和方法 |
AU2009324014A1 (en) * | 2008-12-03 | 2011-06-23 | Nokia Corporation | Switching between DCT coefficient coding modes |
US8676775B2 (en) * | 2008-12-12 | 2014-03-18 | At&T Intellectual Property I, L.P. | Support 3-screen user experience in the context of a services marketplace |
JP5490404B2 (ja) * | 2008-12-25 | 2014-05-14 | シャープ株式会社 | 画像復号装置 |
EP2395755A4 (en) | 2009-02-09 | 2015-01-07 | Samsung Electronics Co Ltd | VIDEO PROCESSING AND DEVICE WITH LOW-COMPLEX FREQUENCY CONVERSION AND VIDEO PROCESSING AND DEVICE |
WO2010133763A1 (en) * | 2009-05-19 | 2010-11-25 | Nokia Corporation | Method for variable length coding and apparatus |
JP5492206B2 (ja) | 2009-07-27 | 2014-05-14 | 株式会社東芝 | 画像符号化方法および画像復号方法、ならびに、画像符号化装置および画像復号装置 |
US20110158310A1 (en) * | 2009-12-30 | 2011-06-30 | Nvidia Corporation | Decoding data using lookup tables |
TWI415397B (zh) * | 2010-05-19 | 2013-11-11 | Mstar Semiconductor Inc | 媒體編碼系統、量化係數編碼裝置及量化係數編碼方法 |
JP2012010263A (ja) * | 2010-06-28 | 2012-01-12 | Sony Corp | 符号化装置、撮像装置、符号化伝送システムおよび符号化方法 |
US20120147947A1 (en) * | 2010-12-08 | 2012-06-14 | Qualcomm Incorporated | Codeword adaptation for variable length coding |
US9338449B2 (en) | 2011-03-08 | 2016-05-10 | Qualcomm Incorporated | Harmonized scan order for coding transform coefficients in video coding |
JP2012253420A (ja) * | 2011-05-31 | 2012-12-20 | Toshiba Corp | 可変長符号復号装置、復号システムおよび可変長符号復号方法 |
KR101943425B1 (ko) * | 2011-06-30 | 2019-01-30 | 에스케이 텔레콤주식회사 | 비균등 양자화를 이용한 효과적인 부호화/복호화 방법 및 장치 |
JP5685683B2 (ja) * | 2011-10-28 | 2015-03-18 | 株式会社Gnzo | バイトアラインメント装置及びバイトアラインメント方法 |
US20130114687A1 (en) * | 2011-11-07 | 2013-05-09 | Sharp Laboratories Of America, Inc. | Fixed intra run-level mode for cavlc in hevc |
WO2013077108A1 (ja) * | 2011-11-24 | 2013-05-30 | タツタ電線株式会社 | シールドフィルム、シールドプリント配線板、及び、シールドフィルムの製造方法 |
US9654139B2 (en) | 2012-01-19 | 2017-05-16 | Huawei Technologies Co., Ltd. | High throughput binarization (HTB) method for CABAC in HEVC |
US9860527B2 (en) | 2012-01-19 | 2018-01-02 | Huawei Technologies Co., Ltd. | High throughput residual coding for a transform skipped block for CABAC in HEVC |
US9743116B2 (en) | 2012-01-19 | 2017-08-22 | Huawei Technologies Co., Ltd. | High throughput coding for CABAC in HEVC |
US10616581B2 (en) | 2012-01-19 | 2020-04-07 | Huawei Technologies Co., Ltd. | Modified coding for a transform skipped block for CABAC in HEVC |
US20130188736A1 (en) * | 2012-01-19 | 2013-07-25 | Sharp Laboratories Of America, Inc. | High throughput significance map processing for cabac in hevc |
PL3910947T3 (pl) | 2012-03-26 | 2023-12-27 | JVC Kenwood Corporation | Urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program do dekodowania obrazu |
US9386326B2 (en) | 2012-10-05 | 2016-07-05 | Nvidia Corporation | Video decoding error concealment techniques |
JP6213879B2 (ja) * | 2012-12-17 | 2017-10-18 | パナソニックIpマネジメント株式会社 | 情報処理装置および制御方法 |
WO2014110652A1 (en) * | 2013-01-16 | 2014-07-24 | Blackberry Limited | Context determination for entropy coding of run-length encoded transform coefficients |
US9160363B2 (en) * | 2014-02-27 | 2015-10-13 | Samsung Display Co., Ltd. | Run length encoding with non-sequential input |
US10750198B2 (en) | 2014-05-22 | 2020-08-18 | Qualcomm Incorporated | Maximum palette parameters in palette-based video coding |
US10264285B2 (en) * | 2014-05-22 | 2019-04-16 | Qualcomm Incorporated | Coding runs in palette-based video coding |
JP6512928B2 (ja) * | 2015-04-28 | 2019-05-15 | キヤノン株式会社 | 画像符号化装置、画像処理装置、画像符号化方法 |
JP6502739B2 (ja) | 2015-04-28 | 2019-04-17 | キヤノン株式会社 | 画像符号化装置、画像処理装置、画像符号化方法 |
US10171810B2 (en) | 2015-06-22 | 2019-01-01 | Cisco Technology, Inc. | Transform coefficient coding using level-mode and run-mode |
KR101746799B1 (ko) | 2015-11-04 | 2017-06-14 | 주식회사 쏠리드 | 분산 안테나 시스템 |
US10063892B2 (en) * | 2015-12-10 | 2018-08-28 | Adobe Systems Incorporated | Residual entropy compression for cloud-based video applications |
US10264262B2 (en) | 2016-02-29 | 2019-04-16 | Adobe Inc. | Codebook generation for cloud-based video applications |
WO2018173862A1 (ja) * | 2017-03-21 | 2018-09-27 | シャープ株式会社 | 画像復号装置及び画像符号化装置 |
JP6787231B2 (ja) * | 2017-04-04 | 2020-11-18 | 富士通株式会社 | データ処理プログラム、データ処理方法およびデータ処理装置 |
CN106941610B (zh) * | 2017-04-25 | 2019-12-24 | 西安电子科技大学 | 基于改进方块编码的二值roi掩模编码方法 |
US11086843B2 (en) | 2017-10-19 | 2021-08-10 | Adobe Inc. | Embedding codebooks for resource optimization |
US10942914B2 (en) | 2017-10-19 | 2021-03-09 | Adobe Inc. | Latency optimization for digital asset compression |
US11120363B2 (en) | 2017-10-19 | 2021-09-14 | Adobe Inc. | Latency mitigation for encoding data |
US11044495B1 (en) | 2018-02-13 | 2021-06-22 | Cyborg Inc. | Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation |
US10491240B1 (en) * | 2019-01-17 | 2019-11-26 | Cyborg Inc. | Systems and methods for variable length codeword based, hybrid data encoding and decoding using dynamic memory allocation |
KR101997599B1 (ko) * | 2019-01-22 | 2019-07-08 | 에스케이 텔레콤주식회사 | 비균등 양자화를 이용한 효과적인 부호화/복호화 방법 및 장치 |
CN110545437B (zh) * | 2019-08-30 | 2021-07-20 | 北京大学 | 系数编码、解码方法、电子设备及介质 |
JP2021177628A (ja) * | 2020-05-07 | 2021-11-11 | ブラックマジック デザイン ピーティーワイ リミテッドBlackmagic Design Pty Ltd | 変換係数処理方法 |
CN117097906B (zh) * | 2023-10-20 | 2023-12-26 | 河北天英软件科技有限公司 | 一种区域医疗资源高效利用的方法及系统 |
Family Cites Families (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
LU42775A1 (es) * | 1962-11-28 | 1964-05-28 | ||
JPH03285460A (ja) | 1990-04-02 | 1991-12-16 | Fuji Facom Corp | 画像データ圧縮符号化方式 |
DE69132076T2 (de) | 1990-12-28 | 2000-08-24 | Canon K.K., Tokio/Tokyo | Vorrichtung zur Bildverarbeitung |
US5230938A (en) * | 1991-03-11 | 1993-07-27 | Moore Business Forms, Inc. | Protected fold and seal label for demand printing |
US5838834A (en) * | 1991-11-07 | 1998-11-17 | Canon Kabushiki Kaisha | Image processing apparatus and method for quantizing image data and quantization errors using single quantizing unit and pluralities of quantization tables |
US5233348A (en) * | 1992-03-26 | 1993-08-03 | General Instrument Corporation | Variable length code word decoder for use in digital communication systems |
KR0162197B1 (ko) * | 1992-05-30 | 1998-12-15 | 강진구 | 영상데이타의 가변장부호와/복호화방법 및 장치 |
GB2268667B (en) * | 1992-06-24 | 1995-11-08 | Sony Broadcast & Communication | Serial data decoding |
JPH0621830A (ja) * | 1992-06-30 | 1994-01-28 | Sony Corp | 2次元ハフマン符号化方法 |
US5821885A (en) * | 1994-07-29 | 1998-10-13 | Discovision Associates | Video decompression |
US5325092A (en) * | 1992-07-07 | 1994-06-28 | Ricoh Company, Ltd. | Huffman decoder architecture for high speed operation and reduced memory |
KR950010913B1 (ko) | 1992-07-23 | 1995-09-25 | 삼성전자주식회사 | 가변장부호화 및 복호화시스템 |
KR940017747A (ko) * | 1992-12-29 | 1994-07-27 | 에프. 제이. 스미트 | 영상 처리 디바이스 |
US5400075A (en) * | 1993-01-13 | 1995-03-21 | Thomson Consumer Electronics, Inc. | Adaptive variable length encoder/decoder |
JPH06237184A (ja) * | 1993-02-10 | 1994-08-23 | Fujitsu Ltd | 可変長符号化回路 |
US5381145A (en) * | 1993-02-10 | 1995-01-10 | Ricoh Corporation | Method and apparatus for parallel decoding and encoding of data |
US5583500A (en) * | 1993-02-10 | 1996-12-10 | Ricoh Corporation | Method and apparatus for parallel encoding and decoding of data |
US5717394A (en) * | 1993-02-10 | 1998-02-10 | Ricoh Company Ltd. | Method and apparatus for encoding and decoding data |
US5861921A (en) * | 1993-03-29 | 1999-01-19 | Canon Kabushiki Kaisha | Controlling quantization parameters based on code amount |
JPH0766982A (ja) | 1993-08-26 | 1995-03-10 | Canon Inc | 符号量制御装置 |
JP3382292B2 (ja) | 1993-04-22 | 2003-03-04 | キヤノン株式会社 | 画像符号化装置及びその方法 |
JPH079088A (ja) | 1993-06-28 | 1995-01-13 | Sumitomo Heavy Ind Ltd | 小ロット生産用連続鋳造設備による鋳片の製造法 |
JP3210996B2 (ja) * | 1993-07-30 | 2001-09-25 | 三菱電機株式会社 | 高能率符号化装置及び高能率復号化装置 |
JPH0766882A (ja) | 1993-08-23 | 1995-03-10 | Matsushita Electric Works Ltd | インターホンシステム |
JPH07143488A (ja) * | 1993-11-19 | 1995-06-02 | Fujitsu Ltd | 画像データ復号化方法および装置 |
US5479527A (en) * | 1993-12-08 | 1995-12-26 | Industrial Technology Research Inst. | Variable length coding system |
KR0155784B1 (ko) * | 1993-12-16 | 1998-12-15 | 김광호 | 영상데이타의 적응형 가변장 부호화/복호화방법 |
KR970009408B1 (ko) * | 1994-01-18 | 1997-06-13 | 대우전자 주식회사 | 인터/인트라 테이블 선택 회로 |
KR0148151B1 (ko) * | 1994-05-11 | 1998-09-15 | 김광호 | 개선된 차분동부호테이블을 이용한 차분동벡터값의 가변장부호화방법 및 그 장치 |
JP3220598B2 (ja) * | 1994-08-31 | 2001-10-22 | 三菱電機株式会社 | 可変長符号テーブルおよび可変長符号化装置 |
KR0147948B1 (ko) * | 1994-09-15 | 1998-09-15 | 배순훈 | 영상 부호화장치 |
US6141446A (en) * | 1994-09-21 | 2000-10-31 | Ricoh Company, Ltd. | Compression and decompression system with reversible wavelets and lossy reconstruction |
US6549666B1 (en) * | 1994-09-21 | 2003-04-15 | Ricoh Company, Ltd | Reversible embedded wavelet system implementation |
CA2156889C (en) | 1994-09-30 | 1999-11-02 | Edward L. Schwartz | Method and apparatus for encoding and decoding data |
JP3144456B2 (ja) | 1995-01-20 | 2001-03-12 | 三菱自動車工業株式会社 | 助手席エアバッグモジュールのリアクションカン構造 |
JP3285460B2 (ja) | 1995-01-31 | 2002-05-27 | 株式会社ケット科学研究所 | 近赤外成分分析器の光源装置 |
KR100209410B1 (ko) * | 1995-03-28 | 1999-07-15 | 전주범 | 영상 신호 부호화 장치 |
US5740283A (en) * | 1995-07-06 | 1998-04-14 | Rubin, Bednarek & Associates, Inc. | Digital video compression utilizing mixed vector and scalar outputs |
US5812788A (en) * | 1995-07-21 | 1998-09-22 | Intel Corporation | Encoding/decoding video signals using quantization tables based on explicitly encoded base and scale matrices |
JP3883618B2 (ja) * | 1995-10-26 | 2007-02-21 | 株式会社ハイニックスセミコンダクター | データ圧縮方法 |
US5835145A (en) * | 1996-01-19 | 1998-11-10 | Lsi Logic Corporation | Conversion system using programmable tables for compressing transform coefficients |
JP3141149B2 (ja) | 1996-04-26 | 2001-03-05 | 株式会社日立製作所 | 画像符号化装置 |
CN1183769C (zh) * | 1996-05-28 | 2005-01-05 | 松下电器产业株式会社 | 图像预测编码/解码装置和方法以及记录媒体 |
US5825312A (en) * | 1996-11-25 | 1998-10-20 | Xerox Corporation | DX JPEG Huffman decoder |
US5995148A (en) * | 1997-02-14 | 1999-11-30 | At&T Corp | Video coder having scalar dependent variable length coder |
JPH10271017A (ja) | 1997-03-27 | 1998-10-09 | Kawasaki Steel Corp | 符号量制御装置 |
JP3189876B2 (ja) * | 1997-06-09 | 2001-07-16 | 日本電気株式会社 | 可変長符号復号化回路 |
US6151075A (en) * | 1997-06-11 | 2000-11-21 | Lg Electronics Inc. | Device and method for converting frame rate |
FI107496B (fi) * | 1997-07-18 | 2001-08-15 | Nokia Mobile Phones Ltd | Kuvan kompressointi |
US6016111A (en) * | 1997-07-31 | 2000-01-18 | Samsung Electronics Co., Ltd. | Digital data coding/decoding method and apparatus |
KR19990036476A (ko) * | 1998-04-28 | 1999-05-25 | 백정한 | 가변양자의 부호화를 이용한 화상압축방법및 그 장치 |
US6477280B1 (en) * | 1999-03-26 | 2002-11-05 | Microsoft Corporation | Lossless adaptive encoding of finite alphabet data |
US6241778B1 (en) * | 1999-06-18 | 2001-06-05 | Lucent Technologies Inc. | Methods and apparatus for implementing run-length limited and maximum transition run codes |
JP2001025053A (ja) * | 1999-07-09 | 2001-01-26 | Mitsubishi Electric Corp | 携帯電話のメモリシステム |
AUPQ668500A0 (en) * | 2000-04-04 | 2000-05-04 | Canon Kabushiki Kaisha | Accessing items of information |
AU769072B2 (en) | 2000-04-04 | 2004-01-15 | Canon Kabushiki Kaisha | Accessing items of information |
JP4109404B2 (ja) * | 2000-04-26 | 2008-07-02 | 松下電器産業株式会社 | 符号化装置および符号化方法 |
US6731814B2 (en) * | 2000-05-01 | 2004-05-04 | Xerox Corporation | Method for compressing digital documents with control of image quality and compression rate |
US6912070B1 (en) * | 2000-08-08 | 2005-06-28 | Qualcomm, Inc. | Sub-optimal variable length coding |
US6661355B2 (en) * | 2000-12-27 | 2003-12-09 | Apple Computer, Inc. | Methods and apparatus for constant-weight encoding & decoding |
US6757429B2 (en) * | 2001-02-21 | 2004-06-29 | Boly Media Communications Inc. | Method of compressing digital images |
US20030012287A1 (en) * | 2001-03-05 | 2003-01-16 | Ioannis Katsavounidis | Systems and methods for decoding of systematic forward error correction (FEC) codes of selected data in a video bitstream |
US6763070B1 (en) | 2001-05-29 | 2004-07-13 | Cisco Technology, Inc. | Methods and apparatus for selecting a cut-off index |
US7046852B2 (en) * | 2001-09-13 | 2006-05-16 | Sharp Laboratories Of America, Inc. | Fast image decompression via look up table |
US6856701B2 (en) * | 2001-09-14 | 2005-02-15 | Nokia Corporation | Method and system for context-based adaptive binary arithmetic coding |
MXPA04000912A (es) * | 2001-11-22 | 2004-04-02 | Matsushita Electric Ind Co Ltd | Metodo de codificacion de longitud variable y metodo de decodificacion de longitud variable. |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
US6690307B2 (en) * | 2002-01-22 | 2004-02-10 | Nokia Corporation | Adaptive variable length coding of digital video |
US6823015B2 (en) * | 2002-01-23 | 2004-11-23 | International Business Machines Corporation | Macroblock coding using luminance date in analyzing temporal redundancy of picture, biased by chrominance data |
US7206448B2 (en) | 2002-02-28 | 2007-04-17 | At&T Corp. | System and method for using pattern vectors for video and image coding and decoding |
US6717394B2 (en) * | 2002-03-21 | 2004-04-06 | Eaton Corporation | Method and apparatus for determining frequency of an alternating current signal of an electric power system |
US7099387B2 (en) * | 2002-03-22 | 2006-08-29 | Realnetorks, Inc. | Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses |
JP4130780B2 (ja) * | 2002-04-15 | 2008-08-06 | 松下電器産業株式会社 | 画像符号化方法および画像復号化方法 |
EP1478190B1 (en) * | 2002-04-26 | 2013-01-02 | NTT DoCoMo, Inc. | Image encoding device, image encoding method, and image encoding program |
PT1467491E (pt) * | 2002-05-02 | 2007-03-30 | Fraunhofer Ges Forschung | Codificação aritmética de coeficientes de transformação |
US6731841B1 (en) * | 2002-05-24 | 2004-05-04 | Alliance Fiber Optic Products, Inc. | Folded waveguide optical devices |
JP3707456B2 (ja) * | 2002-08-12 | 2005-10-19 | ヤマハ株式会社 | 画像データ圧縮方法および画像データ伸張装置並びに伸張プログラム |
JP3679083B2 (ja) * | 2002-10-08 | 2005-08-03 | 株式会社エヌ・ティ・ティ・ドコモ | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、画像符号化プログラム、画像復号プログラム |
US6646578B1 (en) * | 2002-11-22 | 2003-11-11 | Ub Video Inc. | Context adaptive variable length decoding system and method |
EP1494413A1 (en) * | 2003-07-02 | 2005-01-05 | CoreOptics, Inc., c/o The Corporation Trust Center | Channel estimation and sequence estimation for the reception of optical signal |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
JP4484630B2 (ja) * | 2004-01-29 | 2010-06-16 | パナソニック株式会社 | 可変長復号化装置および可変長復号化方法および再生システム |
US7450775B2 (en) * | 2004-03-12 | 2008-11-11 | Kabushiki Kaisha Toshiba | Image processing apparatus for efficient storage of variable block length data |
US7132963B2 (en) * | 2004-09-13 | 2006-11-07 | Ati Technologies Inc. | Methods and apparatus for processing variable length coded data |
-
2002
- 2002-11-22 MX MXPA04000912A patent/MXPA04000912A/es active IP Right Grant
- 2002-11-22 ES ES02803564T patent/ES2373944T3/es not_active Expired - Lifetime
- 2002-11-22 AT AT02803564T patent/ATE528924T1/de active
- 2002-11-22 KR KR1020097017951A patent/KR100993443B1/ko active IP Right Grant
- 2002-11-22 EP EP16175248.0A patent/EP3099068B1/en not_active Expired - Lifetime
- 2002-11-22 KR KR1020037015866A patent/KR100947399B1/ko active IP Right Grant
- 2002-11-22 DK DK02803564T patent/DK1413139T3/da active
- 2002-11-22 EP EP16175243.1A patent/EP3099066B1/en not_active Expired - Lifetime
- 2002-11-22 CN CNB028132823A patent/CN1301014C/zh not_active Expired - Lifetime
- 2002-11-22 WO PCT/JP2002/012230 patent/WO2003045065A2/en active Application Filing
- 2002-11-22 KR KR1020107007955A patent/KR101030908B1/ko active IP Right Grant
- 2002-11-22 KR KR1020107007956A patent/KR101030903B1/ko active IP Right Grant
- 2002-11-22 KR KR1020107007957A patent/KR101030850B1/ko active IP Right Grant
- 2002-11-22 PT PT101806982T patent/PT2268033T/pt unknown
- 2002-11-22 WO PCT/JP2002/012232 patent/WO2003044964A1/ja not_active Application Discontinuation
- 2002-11-22 KR KR10-2004-7007783A patent/KR20040054794A/ko not_active Application Discontinuation
- 2002-11-22 AU AU2002357584A patent/AU2002357584B2/en not_active Expired
- 2002-11-22 KR KR1020087009133A patent/KR100921031B1/ko active IP Right Grant
- 2002-11-22 CN CN2006101436850A patent/CN101001385B/zh not_active Expired - Lifetime
- 2002-11-22 ES ES16175243T patent/ES2752804T3/es not_active Expired - Lifetime
- 2002-11-22 EP EP10180698.2A patent/EP2268033B1/en not_active Expired - Lifetime
- 2002-11-22 KR KR1020087009127A patent/KR100913633B1/ko active IP Right Grant
- 2002-11-22 DK DK10180698.2T patent/DK2268033T3/en active
- 2002-11-22 CA CA002450360A patent/CA2450360C/en not_active Expired - Lifetime
- 2002-11-22 EP EP16175245.6A patent/EP3099067B1/en not_active Expired - Lifetime
- 2002-11-22 US US10/480,038 patent/US6967600B2/en not_active Expired - Lifetime
- 2002-11-22 BR BR0206628A patent/BR0206628A/pt not_active Application Discontinuation
- 2002-11-22 KR KR1020087009136A patent/KR100921032B1/ko active IP Right Grant
- 2002-11-22 MX MXPA04004770A patent/MXPA04004770A/es unknown
- 2002-11-22 PT PT02803564T patent/PT1413139E/pt unknown
- 2002-11-22 KR KR1020097023346A patent/KR100992336B1/ko active IP Right Grant
- 2002-11-22 CN CNA028224728A patent/CN1586042A/zh not_active Withdrawn
- 2002-11-22 EP EP20020790698 patent/EP1453208A1/en not_active Withdrawn
- 2002-11-22 EP EP20020803564 patent/EP1413139B1/en not_active Expired - Lifetime
- 2002-11-22 KR KR1020107007960A patent/KR101022091B1/ko active IP Right Grant
- 2002-11-22 ES ES16175245T patent/ES2741562T3/es not_active Expired - Lifetime
- 2002-11-22 US US10/494,753 patent/US20050015248A1/en not_active Abandoned
- 2002-11-22 PT PT101807147T patent/PT2268034T/pt unknown
- 2002-11-22 KR KR1020097023335A patent/KR100992246B1/ko active IP Right Grant
- 2002-11-22 AU AU2002366142A patent/AU2002366142A1/en not_active Withdrawn
- 2002-11-22 ES ES16175248T patent/ES2741563T3/es not_active Expired - Lifetime
- 2002-11-22 KR KR1020087009140A patent/KR100921033B1/ko active IP Right Grant
- 2002-11-22 EP EP10180714.7A patent/EP2268034B1/en not_active Expired - Lifetime
- 2002-11-22 ES ES10180714.7T patent/ES2599624T3/es not_active Expired - Lifetime
- 2002-11-22 BR BRPI0206629-7A patent/BRPI0206629B1/pt unknown
- 2002-11-22 CA CA 2467266 patent/CA2467266A1/en not_active Withdrawn
- 2002-11-22 ES ES10180698.2T patent/ES2587022T3/es not_active Expired - Lifetime
- 2002-11-22 BR BR0206629A patent/BR0206629A/pt active IP Right Grant
- 2002-11-22 KR KR1020087009131A patent/KR100921034B1/ko active IP Right Grant
- 2002-11-22 DK DK10180714.7T patent/DK2268034T3/en active
- 2002-11-22 KR KR1020087009132A patent/KR100921030B1/ko active IP Right Grant
- 2002-11-22 KR KR1020107007959A patent/KR101030862B1/ko active IP Right Grant
-
2005
- 2005-04-21 US US11/110,922 patent/US7161508B2/en not_active Expired - Lifetime
- 2005-04-21 US US11/110,921 patent/US6992605B2/en not_active Expired - Lifetime
- 2005-04-21 US US11/110,916 patent/US6954157B2/en not_active Expired - Lifetime
- 2005-11-08 US US11/268,667 patent/US7109898B2/en not_active Expired - Lifetime
-
2006
- 2006-07-31 US US11/495,600 patent/US7541948B2/en not_active Expired - Lifetime
- 2006-07-31 US US11/495,601 patent/US7411526B2/en not_active Expired - Lifetime
- 2006-07-31 US US11/495,598 patent/US7283071B2/en not_active Expired - Lifetime
- 2006-10-06 US US11/543,860 patent/US7339506B2/en not_active Expired - Lifetime
- 2006-10-06 US US11/543,854 patent/US7312730B2/en not_active Expired - Lifetime
- 2006-10-06 US US11/543,857 patent/US7312731B2/en not_active Expired - Lifetime
-
2007
- 2007-05-31 AU AU2007202509A patent/AU2007202509B2/en not_active Expired
- 2007-10-31 US US11/980,403 patent/US7714752B2/en not_active Expired - Lifetime
-
2008
- 2008-04-21 JP JP2008109896A patent/JP4158995B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109899A patent/JP4158998B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109900A patent/JP4158999B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109895A patent/JP4158994B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109898A patent/JP4158997B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109894A patent/JP4158993B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109897A patent/JP4158996B2/ja not_active Expired - Lifetime
-
2010
- 2010-02-19 US US12/708,884 patent/US7956774B2/en not_active Expired - Fee Related
- 2010-03-10 AU AU2010200907A patent/AU2010200907B2/en not_active Expired
- 2010-03-10 AU AU2010200906A patent/AU2010200906B2/en not_active Expired
-
2011
- 2011-04-21 US US13/091,611 patent/US8604947B2/en not_active Expired - Lifetime
-
2013
- 2013-11-04 US US14/070,857 patent/US8941514B2/en not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2373944T3 (es) | Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable. | |
AU2007202520B2 (en) | Variable length coding method and variable length decoding method | |
CA2608610C (en) | Variable length coding method and variable length decoding method |