Dispositivo de codificación y división de código de longitud variable
Descripción general
 Se proporciona un aparato de codificación y separación de código de longitud variable mejorado capaz de procesar la longitud de una palabra de código de longitud variable en una forma codificada. El aparato de la presente invención comprende un primer registro 10 para almacenar y generar una serie de códigos fuente, una tabla de consulta 20 para generar palabras de código de longitud variable y sus longitudes de código, un segundo registro para almacenar y generar palabras de código de longitud variable 28, tercera y registrar 30, la palabra de código de longitud variable que está conectado nuevamente la conexión de la longitud variable concatenados palabras de código antes y las palabras de código de entrada de longitud variable actuales para el almacenamiento y la generación de una longitud de código de las palabras de código de longitud variable Un cuarto desplazador de barril 40 para almacenar y generar un segmento de una longitud fija, un segundo desplazador de barril 40 para generar un segmento de una longitud fija, una longitud de código de la palabra de código de longitud variable de entrada actual y Un sumador 36 para agregar la longitud de código de la palabra de código de longitud variable añadida previamente para generar una longitud de código recién añadida, un comparador 36 para comparar la longitud de código recién añadida con una longitud de bit predeterminada, Señal de control de salida a palanca de cambios Eso tiene quinta registro 38, sexto registro 42 para el almacenamiento y la generación de un segmentos de longitud fija de la segunda palanca de cambios barril.
Campo técnico
La presente invención es para codificar el código de longitud variable (VLC) representado por las palabras de código de longitud variable y su longitud se refiere a un dispositivo para dividir una variable palabras de código de longitud de segmentos de longitud constante VLC para la transmisión , Y más particularmente a un aparato de codificación y división de VLC capaz de procesar la porción de longitud de un VLC en una forma codificada.
Antecedentes de la técnica
La codificación de longitud variable es un método que se usa a menudo para la compresión de datos sin pérdida. Este método se utiliza para convertir datos de longitud fija en palabras de código de longitud variable en función de la ocurrencia estadística de datos. Cada longitud de código de una palabra de código de longitud variable se define para representar datos que ocurren más ocasionalmente, representando cada palabra de código más corta los datos que ocurren más frecuentemente y una palabra de código más larga que ocasionalmente genera datos. Asignando apropiadamente la palabra de código de longitud variable a la biblioteca de todos los datos de origen posibles, la longitud de palabra promedio de la palabra de código de longitud variable se vuelve más corta que la longitud de palabra de los datos de origen, permitiendo la compresión de datos.
En general, el proceso de codificación de VLC representado por las palabras de código de longitud variable y su longitud, y de longitud variable de proceso división de palabras de código de VLC para la transmisión, almacenamiento variable de palabras de código de longitud y su longitud de datos Esto se hace usando una tabla de búsqueda. La codificación VLC tabla de búsqueda basada en la segmentación y el aparato, por ejemplo, los documentos de Shaw Min Lei, como el señor '' un sistema de codificación para Entorpy DigitalHDTVApplications', IEEE Transactions onCircuits y sistemas de tecnología de vídeo, 1, no. 1, 147, página 154 (marzo de 1991) 'Como componente principal de este aparato de codificación y división de VLC, existe aproximadamente una matriz de lógica programable (PLA) y tres cambios de barril . el PLA es mapear los datos de entrada de longitud fija a un código de longitud variable (VCR), un tabla de consulta para generar una palabras de código de longitud variable y su longitud. la primera palanca de cambios barril, cada palabra de código de longitud variable basado en la longitud de código, mediante la conexión de las palabras de código de longitud variable para generar una serie de palabras de código de longitud variable. el segundo desplazador de barril divide la serie de palabras de código de longitud variable de n bits de la palabra. la tercera palanca de cambios barril Acumula la longitud del código de cada palabra de código de longitud variable y genera una señal de control que indica si la salida del codificador VLC es válida. La información de longitud de código de la palabra de código de longitud variable generada desde el PLA se suministra al primer y tercer desplazador de barril en una forma descodificada, donde la forma codificada tiene un valor de 1 En el caso en que la longitud máxima del código de una palabra de código de longitud variable es 16, cada longitud de código de una palabra de código de longitud variable se expresa usando un conjunto de líneas de 16 bits. La palabra de código de longitud variable Al procesar la longitud de palabra de la palabra en forma descodificada, la tercera palanca de barril puede generar rápidamente la señal de control del segundo desplazador de barril.
Mientras Shinashi, la codificación VLC y aparato segmentación basado en la tabla de búsqueda descrita anteriormente, puesto que la palabra de código de longitud variable se requiere líneas de datos de n bits del número máximo de bits y la misma anchura, que puede haber, se requiere A medida que aumenta la longitud del código de la palabra de código de longitud variable, aumenta el tamaño del hardware, lo que resulta en un alto costo. Tal problema puede ser especialmente grave cuando se procesan palabras de código de longitud variable más largas en una forma descodificada.
Tarea de solución
De acuerdo con esto, un objeto principal de la presente invención es proporcionar un dispositivo mejorado de codificación y segmentación de código de longitud variable (VLC) capaz de procesar la longitud de código de las palabras de código de longitud variable en forma codificada.
Solución
Con el fin de lograr el objeto anterior, de acuerdo con la presente invención, se codifica un código de longitud variable (VLC) representado por una palabra de código de longitud variable y su longitud de código procesada en una forma codificada, Código de longitud para dividir la palabra de código de longitud variable del código de longitud variable en palabras de n bits para fines de transmisión, que se caracteriza porque almacena una serie de códigos fuente y cada entrada del código fuente Un primer registro para generar cada uno de los códigos fuente de acuerdo con una señal de habilitación asociada con un tiempo, y un segundo registro para asignar cada uno de los códigos fuente al código de longitud variable, y asignar cada palabra de longitud variable y su longitud de código Un segundo registro para almacenar la palabra de código de longitud variable y generar cada una de las palabras de código de longitud variable almacenadas de acuerdo con la señal de habilitación; Un tercer registro para almacenar cada longitud de código de la palabra de código de longitud variable y generar cada una de las longitudes de código almacenadas de acuerdo con la señal de habilitación, un tercer control para generar una longitud de código de la palabra de código de longitud variable de entrada actual. Un primer desplazador de barril para generar una palabra de código de longitud variable recién conectada al concatenar la palabra de código de longitud variable de entrada actual con una palabra de código de longitud variable conectada previamente en respuesta a la señal; tiendas de las palabras de código de longitud variable, en respuesta a la señal de habilitación, cuarto registro para generar las palabras de código de longitud variable que están conectados, en respuesta a la segunda señal de control, dichos entrada actual palabras de código de longitud variable una segunda palanca de cambios barril que divide la entrada que comprende una combinación de palabras de código concatena longitud variable de n bits de la palabra, y la longitud de código de la longitud variable de palabras de código se añaden antes de que la longitud de código de las palabras de código de longitud variable de entrada actual Se agrega , Un sumador para generar una longitud de código recién agregada, y medios para comparar la longitud del código recién agregado con una longitud de bit predeterminada, y si la longitud del código recién agregado es menor que dicha longitud predeterminada del código. Almacenar la longitud del código recién agregado, si no excede la longitud del bit, y si no, agregar un resto que representa el número de bits que exceden la longitud de bit predeterminada después de realizar la adición a la adición Como longitud de código, genera una señal de salida válida que indica la validez de un segmento de una longitud fija del segundo desplazador de barril, y en respuesta a la señal de habilitación, sumando cada una de las longitudes de código añadidas almacenadas a la segunda longitud de código quinto registro para la salida como dicha segunda señal de control de la palanca de cambios barril, almacena las palabras de n bits de la segunda palanca de cambios barril en respuesta a dicha señal de habilitación, dicha almacena uno Y un sexto registro que genera cada segmento de longitud fija.
Ejemplos
Descripción de las realizaciones preferidas Las realizaciones preferidas de la presente invención se describirán ahora en detalle con referencia a los dibujos. La figura 1 muestra un diagrama de bloques de un dispositivo de segmentación y codificación de VLC de acuerdo con una realización preferida de la presente invención. Este dispositivo de segmentación y codificación de VLC genera código de longitud variable (VLC) representado por una palabra de código de longitud variable y su longitud para concatenar palabras de código de longitud variable y conectar la cadena de bits concatenados a la Para la división de palabras en n bits. Como se muestra en la figura 1, se introducen una serie de códigos fuente en el primer registro 10. De acuerdo con MPEG (Moving Pictures Expert Group), por ejemplo, cada código fuente consta de un máximo de 63 longitudes de ejecución y un nivel que tiene un rango de 2047 2047. Aquí, la longitud de ejecución representa el número de ejecuciones consecutivas que tienen un valor de cero, y el nivel representa un valor distinto de cero después de un valor cero continuo. El primer registro 10 almacena secuencialmente la entrada del código fuente desde el codificador RLC (codificación de longitud de ejecución) (no mostrado), y de acuerdo con una señal de habilitación (no mostrada) asociada con cada tiempo de entrada del código fuente. , Y suministra el código fuente almacenado a la tabla de búsqueda 20.
La tabla de consulta 20 mapea cada código fuente a un VLC, y genera cada palabra de código de longitud variable correspondiente a cada código fuente a la línea guía 27 y la longitud del código de la misma a la línea guía 29, respectivamente. En una realización preferida de la presente invención, la tabla de consulta 20 se implementa mediante un circuito lógico programable (PLA). 1 incluye una tabla de palabras no codificadas Y un área de circuito (en lo sucesivo denominada tabla de palabras) 22, una tabla de palabras en clave O área de circuito (en lo sucesivo denominada tabla de palabras codificadas) 24 y Y una tabla de longitud de código O área de circuito (en lo sucesivo, una tabla de longitud de código) 26. La tabla de consulta 20 se describe en el artículo mencionado anteriormente por Shaw Min Lei et al.
Más específicamente, en la realización preferida de la presente invención, puesto que la longitud de las palabras de código de longitud variable están representados por forma codificada, si la variable palabra código de longitud se compone de longitud de código hasta 16 bits, el código Como la longitud está en el rango de 1 16, se puede expresar utilizando 5 bits. Cada palabra de código de longitud variable de la tabla de palabras codificadas 24 se suministra al segundo registro 28 a través de la línea guía 27 y la longitud del código de la tabla de longitud de códigos 26 se suministra al tercer registro 30 a través de la línea guía 29 .
El segundo registro 28, las respectivas palabras de código de longitud variable de la tabla de palabras de código 24, el tercer registro 30, así como cada secuencialmente almacenar la longitud de código correspondiente de la tabla de longitud de código 26, en respuesta a la señal de habilitación se ha descrito anteriormente, Y emite la palabra de código de longitud variable almacenada y su longitud de código, respectivamente.
Los 16 bits almacenados en el segundo registro 28 se introducen en el primer y segundo desplazador de barril 32, 40 a través del cable paralelo 25. Como se describirá más adelante, los otros 16 bits del cuarto registro 34 también se introducen en el primer y segundo desplazador de barril 32, 40 a través del cable paralelo 35. El primer desplazador de barril 32 forma una ventana de 16 bits en la entrada de 32 bits según la señal de longitud de código en el cable 31 generado desde el tercer registro 30. Esta ventana de 16 bits puede desplazar la entrada de 32 bits desde los cables conductores 25, 35 de forma limitada por 16 bits y su posición está directamente determinada por la señal de longitud de código introducida a través del cable conductor 31. Esta señal de longitud de código representa una señal de control que desplaza una ventana de 16 bits con una cantidad de desplazamiento entre bits cero y 15 bits. 0,1 desde el bit más a la izquierda de cada bit, ..., cuando numerada como 31, la señal de longitud de código M indica que rodea de M ésimo bit en los conductores 25 y 35 a (M + 15) ésimo bit . Después de formar la ventana, el primer desplazador de barril 32 suministra una cadena de bits de 16 bits al cuarto registro 34 a través de la guía 33. El cuarto registro 34 almacena la cadena de bits generada a partir del primer desplazador de barril 32 y suministra la cadena de bits almacenada al primer y al segundo desplazador de barril 32, 40 de acuerdo con la señal de habilitación.
Por otro lado, cada dato de longitud de código almacenado en el tercer registro 30 se ingresa secuencialmente al sumador 36 de acuerdo con la señal de habilitación. El sumador 36 agrega la longitud de código de la palabra de código de longitud variable actual y la longitud de código almacenada en el quinto registro 38 y añadida antes. Si la longitud del código recién agregado desde el sumador 36 no excede un número predeterminado (el número de bits del segmento para esa transmisión, es decir, un número entero positivo que representa 16 bits), el quinto registro 38 , Y almacena la longitud del código recién agregado. De lo contrario, el quinto registro 38 almacena los bits restantes que representan el número que excede 16 bits como la longitud de código añadida después de la adición y almacena la cadena de bits almacenada en el sexto registro 42 como n bits válidos. Palabra, y suministra cada longitud de código agregado almacenado al segundo desplazador de barril 40 de acuerdo con la señal de habilitación mencionada anteriormente.
Este segundo cambiador de barril 40 se coloca en la entrada de 32 bits suministrada a través de los dos cables 25, 35 de acuerdo con el valor de la longitud del código agregado almacenada en el quinto registro 38 en el cable conductor 39 De este modo, formando una ventana de 16 bits. Esta ventana de 16 bits puede desplazar la entrada de 32 bits de los conductores 25, 35 limitada por 16 bits y su posición está directamente determinada por la señal de longitud de código añadida. La señal de longitud de código añadida es una cantidad de desplazamiento entre bits cero y 15 bits y es una señal para desplazar la ventana de 16 bits. Cuando se ingresa la señal de longitud de código añadida N, la ventana de 16 bits del segundo desplazador de barril 40 encierra el (16 N) bit a la (32 N) th bit en los cables 25 y 35 . Después de formar la ventana, el segundo desplazador de barril 40 suministra una cadena de bits de 16 bits al sexto registro 42 a través del cable 41. El sexto registro 42 almacena la secuencia de bits de 16 bits del segundo desplazador de barril 40 y suministra la cadena de bits almacenada a la memoria intermedia de video (no mostrada) en respuesta a la señal de habilitación. Cuando se genera una señal de salida válida desde el quinto registro 38, la cadena de bits del sexto registro 42 se almacena en una memoria intermedia que almacena solo palabras válidas de 16 bits para su transmisión.
El funcionamiento del aparato de segmentación y codificación de VLC de la figura 1 se describirá con referencia al ejemplo de la fig. Aquí, se supone que la longitud máxima del código de la palabra de código de longitud variable es de 8 bits. La primera columna de la figura 2 representa la secuencia de entrada de cada registro. Es decir, el segundo registro 28 es para la palabra de código de longitud variable de la tabla de palabras codificadas 24, y el tercer registro 30 registra la longitud de código correspondiente a cada palabra de código de longitud variable almacenada en el segundo registro 28, El cuarto registro 34 almacena el segmento de salida del primer desplazador de barril 32, el quinto registro 38 almacena la longitud del código agregado del sumador 36, y el sexto registro 42 almacena el segmento de salida del segundo desplazador de barril 40, respectivamente Es para. La última columna en la figura 2 representa la señal de salida válida que indica si el segmento de salida del segundo desplazador de barril 40 es válido.
De acuerdo con el orden de entrada de la primera columna, se generan seis palabras de código de longitud variable secuencialmente como se muestra en la segunda columna, y las respectivas longitudes de código correspondientes a cada palabra de código de longitud variable se muestran en la tercera columna Se almacena como está hecho. La marca 'X' incluida en la segunda columna representa un bit completamente sin sentido entre todos los bits del segmento suministrado desde la tabla de palabras de código 24.
En la cuarta columna de la figura 2, se muestran cinco segmentos de salida del primer desplazador de barril 32 que conecta las palabras de código de longitud variable desplazando cada bit de palabra de código en serie. Con referencia a la figura 3, por ejemplo, cuando el orden de entrada es 2, se describirá brevemente la operación del primer desplazador de barril 32 que conecta palabras de código de longitud variable. Como se muestra en la figura, el primer segmento de 8 bits '111 X XXXX' del segundo registro 28 y el segundo segmento de 8 bits '1000 0011' del cuarto registro 34 están conectados al conductor paralelo 25, 35, el primer desplazador 32 de barril genera una ventana de 8 bits (8 bits) en la entrada de 16 bits según la señal M de longitud de código (es decir, M = 3) en la línea 31 conductora generada desde el tercer registro 30 . La posición de esta ventana de 8 bits se determina desplazando la ventana por M bits desde el lado izquierdo de la entrada de 16 bits. Es decir, M bits (es decir, 3 bits) se seleccionan del lado izquierdo del primer segmento '111 X XXXX' y (8 - M) bits del lado derecho (es decir, 5 Bits) para concatenar las palabras de código de longitud variable eliminando los cinco bits sin sentido del primer segmento '111 X XXXX'. Después de formar la ventana, el primer desplazador de barril 32 suministra el segmento de salida de ventana de 8 bits '0001 1111' al cuarto registro 34 a través de la línea de avance 33.
En la quinta columna de la figura 2, el quinto registro 38 almacena la longitud del código agregado o el resto después de restar 8 a la adición después de realizar la adición. Como se describió anteriormente, el sumador 36 agrega la longitud de código de la palabra de código de longitud variable actual almacenada en el tercer registro 30 y la longitud de código de palabra de código pre-suma almacenada en el quinto registro 38. Así, por ejemplo, el valor 1 y el orden 5 de la quinta registro de la Fig. 2, la que queda después de la sustracción de la suma y el valor 8 de la tercera y dos valores de 4,5 y el orden 4 de la quinta registro Ahí Es decir, el valor 4 es la longitud de código de palabra de código de longitud variable actual almacenada en el tercer registro 30, y el valor 5 es la longitud de código de palabra de código pre-suma almacenada en el quinto registro 38.
La sexta columna de la figura 2 muestra cinco segmentos de salida del segundo desplazador de barril 40. Este segundo desplazador de barril sirve para dividir una cadena de bits que comprende una palabra de código de longitud variable concatenada del primer desplazador de barril 32 y una palabra de código de longitud variable actual del segundo registro 28. Con referencia a la figura 4, por ejemplo, se ilustra esquemáticamente el funcionamiento del segundo desplazador de barril 40 para dividir la cadena de bits en el caso de la secuencia de entrada 4. En la figura, un primer segmento de 8 bits '1010 XXXX' del segundo registro 28 y un segundo segmento de 8 bits '0111 1101' del cuarto registro 34 se introducen a través de los cables 25, 35 Si es así, el segundo cambiador de barril 40 responde al código restante N (es decir, N = 5) después de la resta de la longitud del código de palabra añadida o el valor 8 almacenado en el quinto registro 38 a través de la derivación 39 , Y forma una ventana de 8 bits en la entrada de 16 bits. La posición de la ventana de 8 bits se determina desplazando (8 - N) bits desde el lado izquierdo de la entrada de 16 bits. Es decir, seleccionando N bits del lado derecho del segundo segmento '0111 1101' y seleccionando (8 - N) bits del lado izquierdo del primer segmento '1010 XXXX', el segmento de salida '1110 1101 'se saca y se almacena en el sexto registro 42 a través de la línea de avance 41.
En la última columna de la figura 2, cada vez que la longitud del código añadido del sumador 36 excede de 8, el quinto registro 38 genera la señal válida de salida 1 de modo que la secuencia de bits almacenada en el sexto registro 42 es válida Es una palabra de n bits.
Ha sido descrita con respecto a realizaciones específicas de la presente invención, sin apartarse del alcance de las reivindicaciones que aquí se describen, será evidente para los expertos en la técnica que muchos cambios y modificaciones pueden ser hechas.
Efecto de la invención
Por lo tanto, de acuerdo con la presente invención, la longitud del código de la palabra de código codificada de longitud variable se puede dividir y codificar de manera efectiva.
La figura 1 es un diagrama de bloques de un aparato de segmentación y codificación de VLC de acuerdo con la presente invención.
La figura 2 es un diagrama explicativo para explicar el funcionamiento del aparato de codificación y división de VLC de la figura 1.
La figura 3 es un diagrama para explicar esquemáticamente un primer desplazador de barril para conectar palabras de código de longitud variable.
La figura 4 ilustra esquemáticamente un segundo desplazador de barril para dividir una serie de palabras de código de longitud variable concatenadas.
10, 28, 30, 34, 38, 42 registro
20 Tabla de búsqueda
32, 40 barril de cambio
36 sumador
Reclamo
Se codifica un código de longitud variable representado por una palabra de código de longitud variable y su longitud de código procesada en una forma codificada y se codifica una palabra de código de longitud variable de dicho código de longitud variable. un aparato de codificación y la división del código de longitud variable se divide en una longitud de código fijo, almacena el conjunto de código fuente, en respuesta a dicha señal de habilitación asociado con cada tiempo de entrada del código fuente, el código de cada fuente Una tabla de búsqueda para mapear cada uno del código fuente al código de longitud variable y generar cada una de las palabras de código de longitud variable y una longitud de código de la misma, una tabla de búsqueda para mapear cada una de las palabras de código de longitud variable Un segundo registro para almacenar cada una de las palabras de código de longitud variable almacenadas según la señal de habilitación, un segundo registro para almacenar cada longitud de código de la palabra de código de longitud variable. Un tercer registro para generar las longitudes de código almacenadas en respuesta a la señal de habilitación, y un tercer registro para generar las longitudes de código almacenadas en respuesta a una primera señal de habilitación que indica una longitud de código de la palabra de código de longitud variable de entrada actual. Un primer desplazador de barril para generar una palabra de código de longitud variable concatenada concatenando la palabra de código de longitud variable con una palabra de código de longitud variable conectada a la palabra de código de longitud variable, Te, un cuarto registro para generar las palabras de código de longitud variable que están conectados, en respuesta a la segunda señal de control, comprendiendo dicha entrada una combinación de una palabra de código de longitud variable de la conexión de las palabras de código de longitud variable de entrada actual Se agrega una segunda palanca de barril que genera un segmento de longitud fija, una longitud de código de la palabra de código de longitud variable de entrada actual y una longitud de código de una palabra de código de longitud variable añadida previamente para generar un código recién agregado. Genera una longitud Comparando la longitud del código recién agregado con una longitud de bit predeterminada, y si la longitud del código recién agregado no excede la longitud de bit predeterminada, agregando la longitud del código recién agregado al nuevo Almacenar la longitud del código agregado a la segunda longitud del código, y si no, almacenar el resto que representa el número de bits que exceden la longitud de bit predeterminada después de la adición como la longitud del código agregado, Generar una señal de salida válida que indique la validez de un segmento de una longitud fija del desplazador de barril y la salida de cada longitud de código agregado almacenada como la segunda señal de control del segundo desplazador de barril en respuesta a la señal de habilitación Un quinto registro para almacenar el segmento de longitud constante desde el segundo desplazador de barril y para generar el segmento de longitud fija almacenado en respuesta a la señal de habilitación, Codificación y aparato de segmentación del código de longitud variable, y una estrella.
La reivindicación 2 en el que la primera palanca de cambios barril recibe los segmentos de datos de los primeros n bits que representan las palabras de código de longitud variable concatenados en el lado izquierdo de la primera palanca de cambios de barril, un segundo n que representa las palabras de código de longitud variable de entrada actual Medios para recibir una primera señal de control representativa de una longitud de código de dicha palabra de código de longitud variable de entrada actual, medios para recibir una primera ventana de n bits desde dicha primera palanca de cambio de barril, Medios para desplazarse de izquierda a derecha por la longitud del código de la palabra de código de longitud variable de entrada actual en los dos segmentos de datos para generar un primer segmento de n bits que representa la palabra de código de longitud variable concatenada recientemente; 2. El aparato de codificación y división de códigos de longitud variable de acuerdo con la reivindicación 1, que comprende además:
3. El método de la reivindicación 2, en el que el segundo desplazador de barril recibe el primer segmento de datos de n bits que representa la palabra de código de longitud variable concatenada en el lado izquierdo del primer desplazador de barril y un segundo Medios de entrada de 2n bits para recibir segmentos de datos de n bits a la derecha de dicho primer desplazador de barril, medios para recibir dicha señal de longitud de control añadida o dicha segunda señal de control que representa dicho resto, medios para recibir una segunda ventana de n bits , dos de dichos la longitud añadida o el resto de los n bits en el segmento de datos desde la izquierda por la resta la longitud del código se desplaza a la derecha, el segundo representante de la longitud predeterminada del segmento de la segunda palanca de cambios barril y medios para generar un segmento de n bits basado en el resultado de dicha comparación.
Dibujo :
Application number :1997-016373
Inventors :大宇電子株式會▲社▼
Original Assignee :姜東秀