ES2261353T3 - Aparato y procedimiento de codificacion para nodo interpolador de la orientacion. - Google Patents

Aparato y procedimiento de codificacion para nodo interpolador de la orientacion.

Info

Publication number
ES2261353T3
ES2261353T3 ES01308904T ES01308904T ES2261353T3 ES 2261353 T3 ES2261353 T3 ES 2261353T3 ES 01308904 T ES01308904 T ES 01308904T ES 01308904 T ES01308904 T ES 01308904T ES 2261353 T3 ES2261353 T3 ES 2261353T3
Authority
ES
Spain
Prior art keywords
data
key
rotation
unit
differential
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
Application number
ES01308904T
Other languages
English (en)
Inventor
Sung-Jin Kim
Do-Kyoon Kim
Seok-Yoon Jung
Sang-Oak Woo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020010040705A external-priority patent/KR100590522B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Application granted granted Critical
Publication of ES2261353T3 publication Critical patent/ES2261353T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/27Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding involving both synthetic and natural picture components, e.g. synthetic natural hybrid coding [SNHC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Abstract

Un aparato de codificación para un nodo interpolador de la orientación que proporciona información sobre la rotación de un objeto en un espacio de tres dimensiones, comprendiendo el aparato de codificación: una unidad de entrada de datos de campo que incluye una unidad de clave (200, 800) para extraer los datos de campo que se vayan a codificar en el momento actual, mediante el análisis del nodo interpolador de la orientación, los datos de campo incluyendo datos de clave que indican la información sobre una posición en un eje de tiempo en el que ocurre un cambio del movimiento de rotación y de traslación y los datos de valor de clave que incluyen los valores de clave que indican la información de rotación correspondiente a la información de la posición; una unidad de procesado para convertir los valores de clave en un cuaternión, caracterizada porque la unidad de procesado es una unidad (205, 210, 215, 801) de procesado de modulación diferencial adaptativa de impulsos codificados (ADPCM) adaptada para el procesado ADPCM del cuaternión usando diferenciación de rotación, y para el procesado de modulación diferencial de impulsos codificados (DPCM) de los datos de clave; y una unidad de cuantificación (220, 805) para cuantificar los datos de clave y los datos de valor de clave y sacar los datos cuantificados.

Description

Aparato y procedimiento de codificación para nodo interpolador de la orientación.
La presente invención se refiere a una codificación sintética de la imagen, y de manera más particular a un aparato y a un procedimiento de codificación para un nodo interpolador de la orientación.
El formato binario para escenas (BIFS) MPEG-4, que es uno de varios estándares multimedia internacionales, soporta una tecnología de representación de animación basada en trama clave entre una variedad de tecnologías para representar información de animación usadas en una imagen sintética. Los datos que forman la animación basada en trama clave están representados por claves y por valores clave que están expresados en sintaxis de nodo interpolador en las BIFS MPEG-4. En las BIFS MPEG-4, se necesita una gran cantidad de claves y valores de clave para proporcionar una animación suave de las tramas clave. Una trama clave consiste en una clave y en un valor de clave. Una clave que representa un instante específico en el que se expresa la animación, es un número entre -\infty y +\infty ambos inclusive. Los valores de clave representan la información en el giro de un objeto en una imagen sintética en un instante indicado en cada clave. La información sobre el giro del objeto en un instante distinto del instante indicado por cada clave se obtiene mediante la interpolación entre los valores de clave correspondientes a dos claves: una indica el instante anterior más cercano y la otra indica el instante siguiente más cercano. En este instante, dependiendo del tipo de nodo interpolador, se pueden usar diferentes procedimientos de interpolación.
Un procedimiento de interpolación que usa la información sobre la rotación de un objeto expresa el movimiento de giro con los ejes de rotación y un ángulo de rotación. Al igual que un Lenguaje de Modelado de la Realidad Virtual (Virtual Reality Modeling Language, VRML), el BIFS MPEG-4 soporta el movimiento de giro que se expresa con ejes de rotación y con un ángulo de rotación como se ha descrito anteriormente, a través de un nodo interpolador de la orientación. Esto es, usando un procedimiento de expresión del desplazamiento de ángulo para expresar los ejes y el ángulo de rotación, el nodo interpolador de la orientación expresa la información de rotación y proporciona información de rotación como valores de clave. cuando los datos de valores de clave expresan una animación suave de acuerdo con una característica de interpolación, la distribución de los valores diferencia entre conjuntos de valores de clave sucesivos es compacta.
Por lo tanto, es eficiente usar un procedimiento de codificación que use valores diferenciales entre los conjuntos de datos. En las BIFS MPEG-4, se usan dos procedimientos representativos para la codificación de datos de campo que estén representados por una clave y valores de clave de un nodo interpolador de la orientación y se vayan a procesar: un procedimiento que no use Modulación Diferencial de Impulsos Codificados (DPCM) y un procedimiento que use la DPCM.
En primer lugar, en el procedimiento que no use la DPCM, solamente se realiza la cuantificación con respecto a las claves y a los valores de clave de los datos que se vayan a codificar. Por lo tanto, como las únicas características de los datos que se van a codificar no se consideran, el procedimiento es ineficiente. El procedimiento que no usa la DPCM se explica brevemente a continuación. Se introducen los datos de campo de un nodo interpolador de la orientación y se convierten los valores de clave de los datos de campo a valores de un espacio cuaternión. A continuación, la precisión de datos de la clave o de los valores de clave se ajusta y los valores de clave son cuantificados. Después, los datos de campo cuantificados se sacan como datos en formato binario. A continuación, con el fin de comprobar el resultado de la cuantificación, los datos en formato binario de salida se restauran de nuevo a datos de campo mediante la cuantificación inversa, y cada valor cuaternión restaurado es asignado a un formato de valor de clave que está formado de ejes de rotación y un ángulo de rotación. A continuación, se guardan los datos de campo restaurados del nodo de orientación y se sacan por una pantalla. También, usando los datos restaurados, se mide la distorsión visual de un error de cuantificación. La distorsión D se podría medir mediante la siguiente ecuación 1:
... (1)D = \sqrt{\left(\sum\limits^{i<N}_{i=0}(\varepsilon_{i})^{2} /N\right)} = \sqrt{\left(\sum\limits^{i<N}_{i=0}(Q_{i} - \tilde{Q}_{i})^{2} /N\right)}
Aquí, N representa el número de datos de campo, \varepsilon_{i} representa la diferencia entre un valor (Q_{i}) que se vaya a codificar en el momento (i) y un valor restaurado (\tilde{Q_{i}}).
A continuación, el procedimiento que usa la DPCM considera la correlación entre datos sucesivos y por lo tanto puede mejorar una eficiencia mayor en la codificación que la del procedimiento que no usa DPCM. Las diferencias entre los dos procedimientos se explicarán a continuación brevemente. En el procedimiento que usa la DPCM, el valor diferencia entre los valores de clave restaurados anteriormente y un valor que vaya a ser codificado en el momento presente, se calcula antes de la cuantificación, y se cuantifica el valor de la diferencia. Haciendo esto de esta forma, las características de los datos que ocurrieron en esta diferenciación mejora la eficiencia en la codificación hasta cierto grado.
La figura 1 es un diagrama de bloques para explicar el principio general de la DPCM.
\newpage
Una unidad DPCM 100 calcula el valor de diferencia (E_{i}) entre un valor (Q_{i}) que vaya a ser codificado en el momento presente y un valor restaurado (\tilde{Q}_{i-1}) usando un restador 102. El valor de diferencia calculado se cuantifica en un cuantificador 120. El valor cuantificado (\hat{E}_{i}) se envía a un destino y un cuantificador inverso 140, mediante el cual, el valor cuantificado (\hat{E}_{i}) es cuantificado inversamente (\breve{E}_{i}).
Sin embargo, en el interpolador de la orientación que interpola entre valores de clave sucesivos mediante la interpolación lineal esférica, el procedimiento DPCM mostrado en la figura 1 no puede tener una alta eficiencia. Esto se puede encontrar cuando se analizan en un espacio cuaternión los valores de clave que determinan la posición rotacional de un objeto.
Un valor de clave (q) que determina la posición rotacional de un objeto sobre un espacio de tres dimensiones se expresa como una combinación de ejes de rotación y un ángulo de rotación. En las siguientes ecuaciones 2, la ecuación (aa) muestra cómo el interpolador de la orientación expresa un valor de clave, y la ecuación (bb) es una ecuación para convertir el valor de clave en un cuaternión.
(aa)(\tilde{r}, \theta) = (n_{x}, n_{y}, n_{t}, \theta) \hskip0.5cm (0 \leq\theta\leq\pi)
(bb) ... (2)q = \left(cos\frac{\theta}{2}, \frac{n_{x}}{\left\Arrowvert n\right\Arrowvert}sen\frac{\theta}{2}, \frac{n_{y}}{\left\Arrowvert n\right\Arrowvert} sen\frac{\theta}{2}\frac{n_{t}}{\left\Arrowvert n\right\Arrowvert} sen\frac{\theta}{2}\right)
Como se muestra en la ecuación (bb), si los vectores del eje de rotación y los ángulos de rotación de dos cuaterniones tienen los mismos valores absolutos y signos opuestos en el espacio cuaternión, los dos cuaterniones son los mismos. Esto significa que en el aspecto físico, dos movimientos de rotación son los mismos y los factores que afectan a un movimiento de rotación son la dirección del eje de rotación y el ángulo de rotación, y no los vectores del eje de rotación. Por lo tanto, la expresión del cuaternión que representa el movimiento de rotación de un objeto, expresa de manera
exitosa la dirección del eje de rotación y del ángulo de rotación que son factores que afectan al movimiento de rotación.
Mientras tanto, el procedimiento DPCM de la figura 1, en el que se usa la ecuación (aa) para calcular el valor de tiempo diferencial entre los valores de clave que indican transformaciones de rotación, considera la diferencia entre los vectores de eje de rotación, y por lo tanto, no muestra correlación de cambios en las direcciones del eje de rotación con respecto a los cambios temporales y se reduce la eficiencia en la codificación.
El documento US 4.797.836 describe un procedimiento para interpolar imágenes usando cuaterniones para proporcionar rotaciones suaves en vídeo digital.
En un primer aspecto de la presente invención, se proporciona un aparato de codificación como el que se declara en la reivindicación 1. El aparato de codificación es para un nodo interpolador de la orientación que proporciona información sobre la rotación de un objeto en un espacio tridimensional, incluyendo el aparato de codificación una unidad de entrada de datos de campo para extraer los datos de campo que se vayan a codificar en el momento presente de una clave que indique la información sobre una posición sobre un eje de tiempo en el que ocurra un cambio en el movimiento de rotación y de traslación y los valores de clave que indiquen la información de rotación correspondiente a la información de la posición, mediante el análisis del nodo interpolador de la orientación; una unidad de procesado de modulación diferencial de impulsos codificados (ADPCM) para convertir los datos de valores de clave en un cuaternión, y después el procesado ADPCM del cuaternión usando diferenciación de la rotación, y procesado de modulación diferencial de impulsos codificados (DPCM) para los datos de clave; y una unidad de cuantificación para cuantificar los datos de clave y los datos de valor de clave y sacar los datos cuantificados.
La presente invención proporciona de esta forma un aparato y un procedimiento de codificación para un nodo interpolador de la orientación en el que mediante la codificación de los datos de campo de un nodo interpolador de la orientación a través de un procesado DPCM adaptativo que use una matriz de conversión diferencial de rotación, se elimina la redundancia de datos en una región de tiempo, la redundancia binaria entre símbolos, que están cuantificados a través de una codificación aritmética adicional, se elimina, y la información adicional para los elementos se elimina, lo que se refleja en las características físicas del movimiento de rotación y de traslación en un espacio cuaternión, de forma que la eficiencia en la transmisión de datos se ve mejorada, y el grado de distorsión de la calidad visual se mide de manera más objetiva.
En un segundo aspecto de la presente invención, se proporciona un procedimiento de codificación para un nodo interpolador de la orientación que proporciona información sobre la rotación de un objeto en un espacio de tres dimensiones, el procedimiento de codificación teniendo las etapas de (a) extraer los datos de campo que se vayan a codificar en el momento presente a partir de una clave que indique la información sobre una posición en un eje de tiempo en el que ocurra un cambio en el movimiento de rotación y de traslación y los valores de clave que indiquen la información de rotación correspondiente a la información de posición, por medio de del análisis del nodo interpolador de la orientación; (b) convertir los datos del valor de clave en un cuaternión, y después la modulación adaptativa diferencial de modulación de impulsos codificados (ADPCM) que procesa el cuaternión usando una matriz de conversión diferencial de rotación y un procesado de modulación diferencial de impulsos codificados (DPCM) de los datos de clave; y (c) cuantificar los datos de clave y los datos de valor de clave y sacar los datos cuantificados.
Los objetos y las ventajas anteriores de la presente invención serán más aparentes mediante la descripción en detalle de las realizaciones preferidas de la misma con referencia a los dibujos anejos en los que:
La figura 1 es un diagrama de bloques para explicar el principio general de la modulación diferencial de impulsos codificados (DPCM);
Las figuras 2 a la 7 son diagramas para explicar una primera realización preferida de la presente invención; y
Las figuras 8 a la 22 son diagramas para explicar una segunda realización preferida de la presente invención.
La presente invención se refiere a un aparato y a un procedimiento de codificación que puede mejorar la eficiencia de la transmisión de datos mediante el aumento de la redundancia de valores de clave usando un procedimiento de representación de cuaternión y las características de datos de un nodo interpolador de la orientación para proporcionar información rotacional de un objeto. También, se puede proporcionar un procedimiento de medida del error puede medir de manera objetiva el grado de distorsión visual provocado por un error que ocurra en la compresión de los datos.
La figura 2 es un diagrama esquemático de bloques de un aparato de codificación de un nodo interpolador de la orientación de acuerdo con una primera realización preferida de la presente invención.
El aparato de codificación de acuerdo con la presente invención incluye una unidad de entrada de datos de campo de un nodo interpolador de la orientación 200, una unidad de procesado ADPCM adaptativo para los datos de campo, una unidad de cuantificación 220, una unidad de salida de datos de campo binarios comprimidos 230, y de manera adicional, una unidad de codificación de la entropía 225. Aquí, la unidad de procesado DPCM adaptativo incluye una unidad de conversión de espacio cuaternión 205, una unidad DPCM 210 y una unidad de conversión de datos de rotación diferencial 215. El aparato de codificación incluye también una unidad de descodificación para comprobar el resultado de la restauración de los datos de salida en una pantalla y medir el grado de distorsión visual debida a un error de cuantificación. La unidad de descodificación incluye una unidad de descodificación de la entropía 235, una unidad de cuantificación inversa 240, una unidad DPCM inversa 245, una unidad de conversión diferencial de rotación inversa 250, una unidad de conversión inversa de cuaternión 255, una unidad de salida de datos de campo de un nodo interpolador de la orientación restaurado 260 y una unidad de medida de la distorsión 265.
La figura 5 es un diagrama de flujo para explicar un procedimiento de codificación de un nodo interpolador de la orientación de acuerdo con una primera realización preferida de la presente invención. Con referencia a la figura 2 y a la figura 5, se explicar a continuación el funcionamiento del aparato de codificación de la presente invención.
En primer lugar, los datos de campo de un nodo interpolador de la orientación que se vayan a codificar se introducen en la etapa 500. De manera más específica, la unidad de entrada de datos de campo 200 analiza un nodo interpolador de la orientación en los datos VRML de entrada y extrae los datos de campo que se forman con claves y valores de clave. La clave indica la información acerca de una posición sobre un eje de tiempo en el que ocurre un cambio de un movimiento rotacional y de traslación. Los valores de clave, indican la información rotacional correspondiente con la información de la posición.
A continuación, los datos de valores de clave se convierten a formato cuaternión, y después se realiza un procesado DPCM adaptativo (ADPCM) de acuerdo con una ecuación de conversión de rotación diferencial, y el procesado DPCM de los datos de clave se realiza en la etapa 510. De manera más específica, se elimina la redundancia en entre datos relativos a los datos de valor de clave (KV_{i}, 0 - i - N-1) que se extraen en la unidad de entrada de datos de campo 200, y se ajusta la precisión de la representación de los datos. En particular, en la presente invención, los datos de valor de clave se envían a la unidad de conversión de cuaternión 205 antes del procesado ADPCM. La unidad de conversión de cuaternión 205 convierte los datos de valor de clave, esto es, la información rotacional, a un formato de cuaternión representado por un número real (un ángulo de rotación) y tres números imaginarios (ejes de rotación). A continuación, la unidad de conversión de los datos de rotación diferencial 215 calcula los datos de rotación diferenciales entre el valor de clave actual y la entrada de valor de clave previo proveniente de la unidad de conversión de cuaternión 205.
En la DPCM de la técnica anterior de los datos de valor de clave, en el cálculo de una distancia de movimiento desde una posición actual p de un objeto hasta una posición q del objeto después de un movimiento de rotación, el valor del movimiento de rotación se define mediante el valor de diferencia entre cada elemento formado de ejes de rotación y un ángulo de rotación. Cuando se considera solamente el valor de la diferencia, la redundancia de los datos que se van a codificar es más baja, y no se pueden expresar las características físicas del movimiento del objeto. Por lo tanto, es difícil medir los efectos visuales sobre un error de codificación. También, desde el aspecto de la restauración de los datos, con el fin de expresar el elemento entre todos los datos de valor de clave que tengan el valor más grande, se transmiten adicionalmente dos bits de información desde un aparato de codificación a un aparato de descodificación, como se muestra en la figura 7a.
Por lo tanto, en la presente invención, con el fin de codificar una distancia de movimiento rotacional entre valores de clave de nodos de interpolación de la orientación, se implementa un procedimiento de procesado que es diferente de la DPCM de la técnica anterior, a través de la unidad de conversión de rotación diferencial 215. En base al hecho de que la rotación de un objeto en un espacio de cuaternión se describe mediante una combinación de ejes de rotación y un ángulo de rotación, se construye la unidad de conversión de rotación diferencial 215, por ejemplo, como se muestra en la figura 3, de forma que la distancia de movimiento rotacional con respecto al trayecto del movimiento rotacional real también pueda estar definida por medio de una matriz de conversión de rotación diferencial usando los ejes de rotación y un ángulo de rotación.
A continuación, se explicará el principio de la matriz de conversión de rotación diferencial usada en la unidad de conversión de rotación diferencial 215.
Suponiendo que \vec{x} denota el vector de posición actual de un objeto, (\vec{n}_{i-l}, \theta_{i-l}) denota los valores de clave (valor_de_clave) cuando una clave satisface que clave = k_{i-1}, e \vec{y}_{i-l} denota un vector de desplazamiento de \vec{x} en el movimiento rotacional del objeto, una ecuación de movimiento rotacional en un espacio cuaternión se expresa como en la siguiente ecuación 3:
... (3)Y_{i-1} = Q_{i-1} * X * Q^{\text{*}}_{i-1}
Donde X, Q_{i-1} y Q_{i-1} son expresiones de cuaternión de \vec{x}, \vec{y} y (\vec{n}_{i-1}, \theta_{i-1}) respectivamente.
De la misma manera, cuando clave = k_{i}, la ecuación del movimiento rotacional en un espacio cuaternión se expresa como en la siguiente ecuación 4:
... (4)Y_{i} = Q_{i} * X * Q^{\text{*}}_{i}
A partir de las ecuaciones 3 y 4, se deriva una ecuación matricial para obtener un valor de rotación diferencial como la siguiente ecuación 5:
... (5)Y_{i} = Q_{i} * X * Q^{\text{*}}_{i} = Q_{i} * Q_{i-1} * Y_{i-1} * Q_{i-1} * Q_{1} = Q'_{i} * Y_{i-1} * Q'_{i}
Por lo tanto, una ecuación matricial de conversión diferencial de rotación de cuaternión que represente una rotación diferencial se define como la siguiente ecuación 6:
... (6)Q'_{i} = Q_{i} * Q^{\text{*}}_{i-1}
Con referencia a la figura 3, en base a estas ecuaciones, la unidad de conversión de rotación diferencial 215 incluye una matriz conversora de rotación diferencial 300, una unidad de ajuste de elemento 320, una unidad de acumulación 335, y una unidad de retardo 340. La unidad de generación de matriz de conversión de rotación diferencial 300 recibe datos de valor de clave que se convierten en un espacio de cuaternión y que van a ser codificadas en el momento presente, y define una matriz de conversión de rotación diferencial que va a ser codificada en el momento presente de acuerdo con la ecuación 6. La unidad de ajuste de elemento 320 redefine la matriz de conversión de rotación diferencial que se va a codificar en el momento presente de forma que se satisface una condición que en la matriz de conversión de rotación diferencial (esto es, los ángulos de rotación y los ejes de rotación) que están formados por cuatro elementos (v[0], v[1], v[2], v[4]), el valor de un primer elemento (v[0] = cos \theta/2, aquí \theta denota un ángulo de rotación), siempre es mayor que cualquier valor de los tres restantes elementos. En respuesta a la salida de la unidad de conversión de rotación diferencial 215, la unidad de retardo 340 almacena las matrices conversoras de rotación diferencial que se están restaurando en el momento presente y proporciona matrices de conversión de rotación diferencial que fueron restaurados anteriormente. La unidad de acumulación 335 acumula las matrices de conversión de rotación diferencial restauradas antes mediante la recepción secuencial de las matrices de conversión de rotación diferencial anteriores provenientes de la unidad de retardo 340, y saca el resultado a la unidad de generación de matriz de conversión de rotación diferencial 300.
La unidad de ajuste de elemento 320 usa el principio mostrado en la figura 4 de forma que se satisface una condición que entre cuatro elementos (v[0], v[1], v[2], v[3]) que forman la información de rotación, que el valor del primer elemento sea siempre mayor que cualquier valor de los restantes tres elementos. Esto es, cuando un objeto se mueve desde una posición A a una posición B y gira \Omega grados en la figura 4, si el primer elemento entre los elementos de una matriz de conversión de rotación diferencial de este movimiento rotacional no satisface la condición anteriormente mencionada, se usa un procedimiento de redefinición de una matriz de conversión de rotación diferencial. En este procedimiento de redefinición de una posición P (A < P < B, 0 < \theta < \Omega) que se obtiene cuando el objeto gira \theta grados a lo largo del trayecto más corto de movimiento se define de manera arbitraria de forma que se satisface la condición anteriormente mencionada.
Aquí se usa un procedimiento para comparar magnitudes de diferencias de dos cuaterniones como un procedimiento para seleccionar un trayecto de movimiento más corto que se produce en un movimiento rotacional y de traslación del objeto. Por ejemplo, la información de movimiento rotacional sobre dos arcos a través de los que el cuaternión A de una posición de comienzo se mueve y gira al cuaternión B de la posición tras un movimiento rotacional incluye el cuaternión B y el cuaternión -B. En este momento, un cuaternión que produce el valor más pequeño entre la magnitud de diferencia desde el cuaternión A al cuaternión B y la magnitud de diferencia desde el cuaternión A al cuaternión -B se selecciona como una (en el ejemplo, B) que tenga el trayecto más corto de movimiento. Por lo tanto, se define una matriz conversora de rotación diferencial que satisfaga este trayecto más corto de movimiento como las siguientes ecuaciones 7:
|A| = |B| = |P| = 1
A \bullet B = cos \Omega
... (7)P = A\frac{sen(\Omega - \theta)}{sen\theta} + B\frac{sen\theta}{sen\Omega}
Además, si la posición del punto P se define como una posición que está en la mitad de las posiciones A y B (\theta = \Omega/2), se deriva una matriz de conversión de rotación diferencial que también satisface la siguiente ecuación 8:
... (8)P = \frac{A+B}{2cos\frac{\Omega}{2}}
Por lo tanto, si la primera componente (q_{0}) del cuaternión Q (q_{0}, q_{1}, q_{2}, q_{3}) que es introducida desde la unidad de generación de la matriz de conversión de rotación diferencial 300 a un estado 305 en la unidad de ajuste de elemento 320 no es la más grande de entre las cuatro componentes, la unidad de generación de valor de clave 310 define nuevos valores de clave a partir del valor de clave previo y del valor de clave actual, esto es, la información de rotación, de forma que el primer elemento satisfaga la condición 305 de acuerdo con la ecuación 8. En este momento, la información de rotación nuevamente definida es almacenada en una memoria intermedia de trama 315 y al mismo tiempo se saca a la unidad generadora de matriz de conversión de rotación diferencial 300. La memoria intermedia de trama 315 almacena los datos de valor de clave que se vayan a codificar en el momento actual. La memoria intermedia de trama 315 almacena de manera secuencial datos de valor de clave generados en la unidad de generación de valor de clave 310 y proporciona información de rotación actual y anterior. También, la memoria intermedia de trama 315 proporciona \theta, \Omega y un índice de valor de clave correspondiente a la unidad DPCM 210 con el fin de generar una clave de acuerdo con la generación de valores de clave por \theta. La siguiente ecuación 9 describe la generación de clave en la unidad DPCM 210:
... (9)K_{i} = K_{i-1} + (K_{1} - K_{i-1})*\frac{\theta}{\Omega}
Los datos de clave (K_{i}, 0 - i - N-1) que se extraen en la unidad de entrada de datos de campo 200 se aplican a la unidad DPCM 210. La unidad DPCM 210 genera una nueva clave también mediante la unidad de conversión de rotación diferencial 215. La unidad DPCM 210 saca los primeros datos de clave (K_{0}) sin cambio, y saca los restantes datos de clave calculando el valor de diferencia (KD_{i}) entre la clave (K_{i-1}) que fue previamente restaurada y la clave (K_{i}) que se va a codificar en el momento presente. La unidad DPCM 210 elimina la redundancia entre datos y ajusta la precisión de la representación de datos de forma que se realice un proceso de compresión real.
Como se ha descrito anteriormente, mediante el ajuste de un valor de un primer elemento de un cuaternión, en la unidad de ajuste de elemento 320 de forma que el valor de primer elemento tenga el valor más grande, información adicional de dos bits, esto es, información que indique qué elemento es el mayor entre los cuatro elementos, de solamente los valores de clave iniciales se transmite al aparato de descodificación. En la técnica anterior, la información adicional de dos bits sobre todos los valores de clave se transmite al aparato de descodificación. Por lo tanto, la sintaxis de la técnica primera mostrada en la figura 7a se puede cambiar a una sintaxis mejorada de acuerdo con la presente invención mostrada en la figura 7b. De acuerdo con esto, cuando se codifiquen realmente N datos de valor de clave, se generan 2 (N-1) bits menos en la presente invención en comparación con los bits generados en la técnica anterior debido a la información adicional que se transmite en la técnica anterior.
Con referencia de nuevo a la figura 5, tras la etapa 510, la clave y los datos de los valores de clave que son procesados ADPCM son cuantificados en la etapa 520. Con el fin de eliminar la redundancia de bits en los valores cuantificados, la clave cuantificada y los valores de clave cuantificados son codificados de manera aritmética y sacados como datos de flujo en formato binario en la etapa 530.
Un factor importante en la reducción de manera efectiva de la cantidad de datos que realmente vayan a ser codificados es la retirada de la redundancia de bits. Esto es, los bits cuantificados tienen redundancia y procedimientos conocidos para eliminar esta redundancia incluyen un procedimiento de Codificación de Longitud Variable (VLC) y un procedimiento de codificación de Huffman que usan un patrón de símbolos. En la presente invención, se usa un procedimiento de codificación aritmética en el que se elimina la redundancia de bit por medio del cálculo de la frecuencia de la generación de símbolos usando probabilidades condicionales. La unidad de codificación de la entropía 225 de la figura 2 realiza este procedimiento y la unidad de salida de datos de campo binarios 230 para sacar los datos binarios comprimidos saca los datos codificados como datos de flujo en formato binario.
Aquí, la determinación de la estructura de los datos del flujo con respecto a los tipos y a las funciones de los servicios de flujo es considerada en la etapa de formación del flujo. Las figuras 6a y 6b muestran dos tipos de estructuras de datos de flujo. La figura 6a muestra una estructura de datos que es proporcionada cuando la característica en tiempo real de servicios no es considerada y tiene la forma más simple. En esta estructura, el retardo ocurre durante el mismo periodo de tiempo que el periodo de tiempo en el que se restauran los datos de clave. En comparación con la estructura de la figura 6b, la estructura de la figura 6a tiene un coste de procesamiento mayor del aparato de codificación y un coste de procesamiento menor del aparato de descodificación. La estructura de la figura 6b proporciona la característica en tiempo real y funcionalidad adicional de servicios de datos. En esta estructura, inmediatamente tras la restauración de una clave y de los correspondientes valores de clave, se habilita la visualización. También, una función adicional es la resistencia al error. Esto es, aunque los datos actuales tienen una pérdida, la pérdida se puede recuperar hasta un grado con los datos anteriores y con los siguientes datos que se vayan a restaurar. Para proporcionar las estructuras de datos mostradas en las figuras 6a y 6b, los datos que se vayan a codificar se codifican en orden de
200 \rightarrow 205 \rightarrow 215 \rightarrow 210 \rightarrow 220 \rightarrow 225 de la figura 2. En la etapa 225, se realiza una codificación aritmética en la clave y en los valores de clave. De acuerdo con la estructura de datos de las figuras 6a y 6b, el orden de las claves y de los valores de clave que van a ser codificados es diferente.
Con referencia de nuevo a la figura 5, tras la etapa 530, los datos de salida codificados son restaurados en el proceso inverso del proceso de codificación descrito anteriormente. Con respecto al resultado de la restauración, en la etapa 540 se mide la distorsión visual para evaluar el funcionamiento del aparato de codificación. Cuando se restauran los datos de salida codificados, la unidad de medida de la distorsión 265 mide la calidad visual con respecto a la información original antes de la codificación. Para esto, la unidad de descodificación está formada por los elementos 235 al 260 de la figura 2 y el proceso que se realiza en la unidad de descodificación es el proceso inverso al que se realiza en la unidad de codificación.
El funcionamiento del aparato de codificación se mide por medio de un valor característico, esto es, la distorsión de la calidad visual con respecto a una disminución en la cantidad de datos. En los procedimientos de codificación de la técnica anterior para medir el funcionamiento de un aparato de codificación, se usa un valor característico, por ejemplo, usando la ecuación 1. Sin embargo, en este procedimiento, se calcula un error de cuantificación para cada elemento para la rotación, de forma que las característica de un espacio cuaternión no se pueden mostrar y no se puede expresar de manera objetiva el grado de la distorsión visual de un movimiento de rotación real. Por lo tanto el aparato de codificación de acuerdo con la presente invención incluye de manera adicional una unidad mejorada de medida de la distorsión 265 que satisface las características de un espacio cuaternión y que es capaz de medir de manera objetiva la distorsión visual con respecto a la cuantificación. La unidad de medida de la distorsión 265 mide los errores de cuantificación, relativos a todos los puntos sobre la superficie de un objeto como todos los puntos sobre una superficie esférica unidad. El principio básico de la medida se explicará a continuación.
Un error de codificación se define como un valor de diferencia de dos transformaciones rotacionales. Esto es, suponiendo que (\vec{r}, \theta) denota valores de clave de un nodo interpolador de la orientación y que (\vec{r} ', \theta') denota valores de clave obtenidos mediante la restauración de valores de clave a través de la unidad de descodificación (\vec{r} denota un eje de rotación, \theta denota un ángulo de rotación, y el ángulo de rotación satisface \theta \in[-\pi, \pi]), \vec{x} es un vector de posición arbitrario sobre una superficie esférica y satisface S = {\vec{x}| {\left\Arrowvert \vec{x}\right\Arrowvert} = 1}. Cuando se realiza una transformación rotacional desde \vec{x} a \vec{y} e \vec{y}' mediante (\vec{r}, \theta) y (\vec{r} ', \theta'), se calcula un error de codificación que ocurre como la diferencia entre \vec{y} e \vec{y}'. Un vector de error de codificación \vec{e}(\vec{x}) satisface \vec{e}(\vec{x}) = \vec{y} - \vec{y}'. Cuando los vectores de error de codificación \vec{e}(\vec{x}) de todos los puntos sobre una superficie esférica unidad se calculan usando esta ecuación, se calculan las RMS (D_{m}) para toda la superficie esférica y se calcula un error máximo (D_{p}) por medio de las siguientes ecuaciones 10:
1
Mientras tanto, la relación entre \vec{y} e \vec{y}' se puede expresar en una ecuación de transformación rotacional como la siguiente ecuación 11:
... (11)\vec{y}' = T_{\vec{y}', \theta'} (\vec{y})
\newpage
Un vector error de la codificación que se deriva de estas ecuaciones se define como las siguientes ecuaciones 12:
\left\Arrowvert \vec{e}(\vec{x})\right\Arrowvert = 2 cos \varphi \ sin \frac{\theta''}{2}
donde
\vec{x} = (1, \phi, \varphi), \phi = ángulo acimutal, \phi \in[-\pi, \pi],
\varphi = ángulo de longitud, \varphi \in \left[-\frac{\pi}{2}, \frac{\pi}{2}\right]
\hskip9.5cm
... (12)
La RMS (D_{m}) y un error máximo (D_{p}) que se derivan nuevamente de acuerdo con las ecuaciones 10 a la 12 se definen como la siguiente ecuación 13:
2
Mientras tanto, \vec{x}, \vec{y} e \vec{y} están definidos en un espacio de cuaternión como:
3
\newpage
Si (\vec{r}, \theta) y (\vec{r}, \theta') que representan una transformación rotacional son expresados en un espacio cuaternión y se hace referencia a ellos como Q y Q' respectivamente, se pueden derivar las ecuaciones Y = Q * X * Q^{\text{*}} y X = Q^{\text{*}} * Y * Q. Aquí, A*B indica una multiplicación de cuaternión y A^{\text{*}} denota el conjugado de A. A partir de estas ecuaciones, se derivan las siguientes ecuaciones:
Y' = Q' * X * Q'{}^{\text{*}} = Q' * Q^{\text{*}} * Y * Q * Q'{}^{\text{*}} = Q'' * Y * Q''{}^{\text{*}}
Q'' denota la operación de transformación de rotación entre \vec{y} e \vec{y}', y se define como en la siguiente ecuación 14:
... (14)Q'' = Q' * Q^{\text{*}}
Por lo tanto, usando las ecuaciones 13 y 14, RMS (D_{m}) de un error de codificación para toda la superficie esférica unidad y el error máximo (D_{p}) se definen como en las siguientes ecuaciones 15 o la ecuación 16:
4
(\bullet indica operación producto interior)
\vskip1.000000\baselineskip
5
Las ecuaciones 15 y 16 reflejan las características físicas del movimiento rotacional y de traslación de un objeto en un espacio cuaternión y por lo tanto, son valores más precisos que los de la ecuación 1. Por lo tanto, en la presente invención, la unidad de medida de la distorsión 265 está formada para usar la ecuación 15 o la ecuación 16. De acuerdo con esto, la presente invención se caracteriza porque puede medir el grado de la distorsión visual debido a un error de cuantificación de una manera más objetiva y más precisa que en los procedimientos de la técnica anterior.
La figura 8 es un diagrama de bloques esquemático de un aparato de codificación para un nodo interpolador de la orientación de acuerdo con una segunda realización preferida de la presente invención.
Con referencia a la figura 8, el aparato de codificación básicamente incluye una unidad de entrada de datos de campo de un nodo interpolador de la orientación 800, una unidad de procesado de datos de campo, una unidad de cuantificación 805, una unidad diferencial lineal 807 y una unidad de salida de datos de campo binarios comprimidos 810, e incluye de manera adicional una unidad de codificación de la entropía 809. La unidad de procesado de datos de campo incluye una unidad de conversión de cuaternión 801, una unidad de eliminación de trama de clave 802, y una unidad diferencial lineal/rotacional 803, y de manera adicional incluye una unidad de cuantificación inversa 806, una unidad de retardo 819 y una unidad de integración lineal/rotacional 804.
La unidad de conversión de cuaternión 801 convierte los valores de clave a valores de cuaternión. Usando similitud en la transformación de rotación con respecto a cambios continuos en el tiempo, la unidad de eliminación 802 de trama de clave elimina tramas de clave y claves, respectivamente, de los valores de cuaternión provenientes de la unidad de conversión de cuaternión 801 y claves provenientes de la unidad de entrada de datos de campo de un nodo interpolador de la orientación 800, dentro de un límite de error permisible, y saca después las tramas de clave y las claves seleccionadas. La unidad diferencial lineal 803 recibe las tramas de clave y las claves seleccionadas y obtiene diferenciales rotacionales entre diferentes valores entre claves y valores de cuaternión. La unidad de cuantificación 805 cuantifica los valores convertidos por la unidad diferencial lineal/rotacional 803. La unidad diferencial lineal/rotacional 807 obtiene diferenciales lineales de valores de cuaternión cuantificados. La unidad de codificación de entropía 809 elimina la redundancia de bit. Mientras tanto, el aparato de codificación incluye además la unidad de cuantificación inversa 806 para recibir la salida proveniente de la unidad de cuantificación 805 y cuantifica inversamente la salida, la unidad de retardo 819 para retardar la salida de la unidad de cuantificación inversa 806, y la unidad de integración lineal/rotacional 804 para la rotación - integración (o acumulación) de la salida de la unidad de retardo 819 e introducir el resultado a la unidad diferencial lineal/rotacional 803.
También, con el fin de confirmar el resultado restaurado de los datos de salida en la pantalla y para medir el grado de distorsión visual debido al error de cuantificación, el aparato de cuantificación incluye de manera adicional una unidad de descodificación para realizar de manera inversa el procedimiento de codificación de la unidad de procesado de datos de campo menos la función de la unidad de retirada de trama de clave 802. La unidad de descodificación incluye una unidad de descodificación de entropía 811, una unidad de integración lineal 813, una unidad de retardo 821, una unidad de cuantificación inversa 814, una unidad de integración lineal/rotacional 815, una unidad de retardo 822, una unidad conversora de cuaternión 815, una unidad de salida de datos de campo de un nodo interpolador de la orientación 817, y una unidad de medida de la distorsión 818.
La unidad de medida de la distorsión 818 mide el grado de distorsión de calidad visual del cuadro con respecto a una disminución en la cantidad de datos. De acuerdo con la realización preferida de la presente invención, la unidad de medida de la distorsión 818 mide de manera más objetiva y más precisa el grado de distorsión de la calidad visual del cuadro debido a la cuantificación, reflejando las características de la transformación de rotación. A continuación se explica el principio básico de la medida. Un error de cuantificación se define como un ángulo de rotación diferencial en una transformación de rotación diferencial de la transformación de rotación original y la transformación de rotación restaurada. Esto es, suponiendo que (\vec{r}, \theta) denota un valor de clave de un nodo interpolador de la orientación y que (\vec{r} ', \theta') denota un valor de clave obtenido mediante la restauración del valor de clave a través de la unidad de descodificación (\vec{r} denota un eje de rotación, \theta denota un ángulo de rotación, y el ángulo de rotación satisface \theta \in[-\pi, \pi]), cuando se realiza una transformación de rotación desde una posición arbitraria \vec{x} a \vec{y} e \vec{y}' sobre un espacio tridimensional por medio de (\vec{r}, \theta) y (\vec{r} ', \theta'), se calcula un error de cuantificación \vec{e}(\vec{x}) que ocurre como la diferencia entre \vec{y} e \vec{y}', es decir, \vec{e}(\vec{x}) = \vec{y} - \vec{y}'. En la expresión de cuaternión, \vec{x}, \vec{y} e \vec{y}' se definen como en las siguientes ecuaciones 17:
6
Si (\vec{r}, \theta) y (\vec{r}', \theta') que representan una transformación de rotación están expresados en un espacio de cuaternión y se hace referencia a los mismos como Q y Q' respectivamente, se derivan las siguientes ecuaciones 18:
Y = Q * X * Q^{\text{*}}
... (18)X = Q^{\text{*}} * Y * Q
En las que A*B indica la multiplicación de cuaternión y A^{\text{*}} denota al conjugado de A. Por lo tanto, se deriva la siguiente ecuación 19:
... (19)Y' = Q' * X * Q'{}^{\text{*}} = Q' * Q^{\text{*}}* Y * Q * Q'{}^{\text{*}} = Q''*Y*Q''{}^{\text{*}}
Aquí, Q'' denota la información de la transformación de rotación entre \vec{y} e \vec{y}', \theta'' que se define como la siguiente ecuación 20:
... (20)Q'' = Q' * Q^{\text{*}}
Por lo tanto, si \theta'' denota un ángulo de rotación diferencial entre \vec{y} e \vec{y}', \theta'' se puede obtener usando la ecuación de conversión de cuaternión y la ecuación 20 como la siguiente:
... (21)\theta'' = 2cos^{-1} q_{0}'' = 2cos^{-1}(Q'\bullet Q), \theta'' \in [0,\pi], q_{0}'' = Q'\bullet Q,
(\bullet indica la operación producto interior).
La ecuación 21 indica un error de cuantificación instantáneo que ocurre en un instante predeterminado entre todas las tramas de clave de animación. Con el fin de derivar una ecuación para obtener un error de cuantificación de todos los intervalos de animación, la ecuación 21 se puede expresar por medio de un error de cuantificación instantáneo en un instante predeterminado t como en la siguiente ecuación 22:
... (22)e(t) = 2arccos\{Q(t)\bullet Q^{1}(t)\}
Si la ecuación 20 se aplica a todos los intervalos de trama de clave que realizan la animación mediante el procedimiento de interpolación de la orientación, se pueden derivar el error promedio E_{m} y el error máximo E_{p} para todos los intervalos [t_{0}, t_{L}] como en las siguientes ecuaciones 23:
7
Aquí, la suma parcial E_{m}^{i} se obtiene primero del intervalo [t_{i-1}, t_{i}] con el fin de obtener E_{m} como en la siguiente ecuación 24:
... (24)E^{i}_{m} = \int^{t_{i}}_{t_{i-1}} e^{2}(t)dt = 4 \int^{t_{i}}_{t_{i-1}} arccos^{2}[Q(t)\bullet Q' (t)]dt
Mientras tanto, como:
4 \ arccos^{2} Q(t)\bullet Q'(t) = \phi^{2} (\alpha), t = t_{i-1} + \alpha(t_{i} - t_{i-1})
se puede derivar la siguiente ecuación 25:
... (25)E^{i}_{m} = (t_{i} - t_{i-1})\int^{1}_{0} \phi^{2}(\alpha)d\alpha
Como es difícil obtener la integral definida de la función \phi^{2} (\alpha), en el intervalo de integración [0, 1], se realiza una aproximación como la de las siguientes ecuaciones 26 y 27:
... (26)\phi(\alpha)\cong\phi(0) + \alpha\{\phi(1)-\phi(0)\}
... (27)\phi^{2}({\alpha})\cong\phi^{2}(0) + \alpha^{2}\{\phi(1)-\phi(0)\}^{2} + 2\alpha\phi\{\phi(1)-\phi(0)\}
Aquí,
\hskip0.5cm
cos\frac{\phi (0)}{2} = Q(t_{i-1}) \bullet Q'(t_{i-1}),
\hskip0.5cm
y
\hskip0.5cm
cos\frac{\phi(I)}{2} = Q(t_{i}) \bullet Q'(t_{i}).
Usando la función aproximada, la suma parcial E_{m}^{1} se puede obtener como la siguiente ecuación 28:
... (28)E^{i}_{m} \cong\frac{1}{3}(t_{i} - t_{i-1})\{\phi^{2}(0)+\phi^{2}(1) + \phi(0)\phi(1)\}
La ecuación 28 se puede escribir como la siguiente ecuación 29:
E^{i}_{m}\cong\frac{4}{3}(t_{i}-t_{i-1})[arccos^{2}(Q(t_{i-1})\bullet Q'(t_{i-1})) + arccos^{2}(Q(t_{i})\bullet Q'(t_{1}))
... (29)arccos(Q(t_{i-1})\bullet Q'(t_{i-1}))arccos(Q(t_{1})\bullet Q'(t_{i}))]
También, la suma parcial E_{m}^{i} se puede sumar a todos los intervalos [t_{0}, t_{L}] y el error medio E_{m} se obtiene como la siguiente ecuación 30:
... (30)E_{m}\cong\sqrt{\frac{1}{t_{L} - t_{0}} \sum\limits^{L}_{i=1} E^{i}_{m}}
\newpage
Para obtener el error máximo E_{p}, se selecciona un valor máximo entre el error máximo E_{p}^{i} en cada intervalo
[t_{i-1}, t_{i}], que se obtiene mediante la siguiente ecuación 31:
100
Usando la función de aproximación descrita anteriormente, E_{p}^{i} se puede aproximar usando la siguiente ecuación 32:
... (32)E^{i}_{p}\cong max\{\phi(0), \phi(1)\} = max\{2\left\bracevert arccos(Q(t_{i-1}) \bullet Q'(t_{i-1})) \right\bracevert.2\left\bracevert arccos(Q(t_{i}) \bullet Q'(t_{i}))\right\bracevert\}
El error máximo E_{p} en todos los intervalos [t_{0}, t_{L}] se expresa como la siguiente ecuación 33:
101
Por lo tanto, la unidad de medida de la distorsión 818 mide la distorsión en base a las ecuaciones 32 y 33, de forma que puede medir de manera más objetiva y más precisa el grado de distorsión visual debido a un error de cuantificación en un espacio de cuaternión.
La unidad de eliminación de trama de clave 802 elimina las tramas de clave dentro de un límite de error permisible, usando la similitud en la transformación de rotación con respecto a cambios continuos en el tiempo. Este procedimiento para eliminar tramas de clave es uno de un grupo de procedimientos de codificación de pérdida. En la codificación de pérdida de la animación de trama de clave, las BIFS MPEG-4 de la técnica anterior usan un procedimiento en el que la cuantificación baja de bit se realiza de manera uniforme para los valores de clave de todas las tramas de clave. Sin embargo, el procedimiento no puede reflejar cuánto es responsable cada trama de la degradación de la calidad visual del cuadro. De acuerdo con esto, la cuantificación baja de bit da como resultado una gran degradación en la calidad del cuadro. La unidad de eliminación de trama de clave 802 realiza una cuantificación de bit relativamente alta para cada trama de clave, mientras elimina las tramas de clave con el fin de tener una menor influencia en la degradación de la calidad visual del cuadro. Por lo tanto, la unidad de eliminación de la trama de clave 802 genera una cantidad de datos similar a la de la técnica anterior mientras que mantiene una mucho mejor calidad visual del cuadro.
Con referencia a las figuras 14 a la 19, se explica ahora en detalle el proceso para eliminar las tramas de clave en la unidad de eliminación de tramas de clave 802.
Etapa 1
Haciendo referencia a la figura 14, un punto negro indica valores de clave (= Q_{0}, Q_{1}, Q_{2}, ..., Q_{n}) de cada trama de clave con respecto a n+1 puntos de tiempo en el trayecto original de animación.
Etapa 2
Como se muestra en la figura 15, se seleccionan primero dos tramas de clave (= Q_{0}, Q_{n}) correspondientes a dos finales del trayecto de animación entre tramas de clave en el trayecto de animación. Los puntos seleccionados se muestran como puntos blancos.
Etapa 3
Como se muestra en la figura 16, se selecciona una trama de clave entre las tramas de clave excepto las dos tramas de clave finales seleccionadas. En este momento, el número de procedimientos para seleccionar una trama de clave es (n - 1). La figura 16 muestra un ejemplo en el que se seleccionan y se marcan las dos candidatas mediante líneas oblicuas. A continuación, usando un total de tres tramas de clave seleccionadas (Q_{0}, Q_{1}, y Q_{n}, o Q_{0}, Q_{k}, y Q_{n}), se realiza la interpolación lineal esférica para las (n - 1) candidatas que no estén seleccionadas.
Etapa 4
Mediante la comparación del trayecto de animación original y los (n-1) trayectos interpolados, se selecciona un trayecto de animación que tenga el error de trayecto más pequeño, y se selecciona una nueva trama de clave del trayecto de animación seleccionado. El error entre trayectos se obtiene mediante el uso de un error promedio E_{m} descrito anteriormente
\newpage
Etapa 5
La figura 17 muestra un ejemplo en el que se selecciona el trayecto de candidato 2
Etapa 6
Como se muestra en la figura 18, se selecciona una trama de clave entre las tramas de clave excepto las tres tramas de clave seleccionadas. Después, se realizan las etapas 3 y 4
Etapa 7
La figura 19 muestra un ejemplo en el que se selecciona el trayecto de candidato 1
Etapa 8
Las etapas 6 y 7 se realizan de manera repetitiva hasta que el error promedio comienza a ser menor que un error permisible
La unidad diferencial lineal/rotacional 803 obtiene diferenciales rotacionales entre valores de clave correspondientes a claves continuas sobre el espacio de cuaternión, usando la ecuación diferencial rotacional.
En el procedimiento diferencial lineal de la técnica anterior, se calcula un diferencial lineal entre un cuaternión Q_{1} de transformación de rotación de un objeto correspondiente a una clave actual y un cuaternión Q_{2} de transformación de rotación del objeto correspondiente a la siguiente clave, mediante las siguientes ecuaciones 34:
Q_{1} = (q_{01}, q_{11}, q_{21}, q_{31}), Q_{2} = (q_{02}, q_{12}, q_{22}, q_{32})
... (34)Q_{DPCM} = (q_{01}-q_{02}, q_{11}-q_{12}, q_{21}-q_{22}, q_{31}-q_{32})
De esta forma, el procedimiento que considera solamente los valores diferencia entre las componentes de cuaternión no puede mostrar los valores diferenciales de rotación que tienen en cuenta la transformación de rotación real, de forma que el procedimiento da como resultado una disminución en la redundancia de datos que se vayan a codificar. También, con el fin de reducir el número de bits que se vayan a codificar, solamente se codifican tres componentes excepto un componente que tenga el valor más grande de entre cuatro componentes de cuaternión. A partir del aspecto de la restauración de los datos, en este procedimiento diferencial lineal de la técnica anterior, se deberá transmitir de manera adicional una información de 2 bits de longitud desde el aparato de codificación al aparato de descodificación con el fin de indicar un componente que tenga el valor más grande en cada valor de clave.
Por lo tanto, al codificar los datos mediante el uso de diferenciales de transformación de rotación entre valores de clave de un nodo interpolador de la orientación, la unidad diferencial lineal/rotacional 803 de la realización preferida de la presente invención adopta un procedimiento diferencial lineal/rotacional diferente al del procedimiento de la técnica anterior. El procedimiento adoptado se explicará a continuación en detalle.
Suponiendo que \vec{x} denota el vector de posición actual de un objeto, (\vec{n}_{i-1}, \theta_{i-1}) denota los valores de clave (valor_clave) cuando una clave satisface clave = k_{i-1}, y \vec{y}_{i-1} denota un vector desplazamiento de \vec{x} después de un movimiento de rotación y de traslación del objeto, una ecuación del movimiento de rotación y de traslación en un espacio de cuaternión se expresa como la siguiente ecuación 35:
... (35)Y_{i-1} = Q_{i-1}*X*Q^{\text{*}}_{i-1}
Aquí, X, Y_{i-1}, y Q_{i-1} son expresiones de cuaternión de \vec{x}, (\vec{n}_{i-1}, \theta_{i-1}) y \vec{y}_{i-1} respectivamente. De la misma manera, cuando clave = k_{i}, la ecuación del movimiento de rotación y de traslación en un espacio cuaternión se expresa como la siguiente ecuación 36:
... (36)Y_{i} = Q_{i}*X*Q^{\text{*}}_{i}
Mientras tanto, a partir de la ecuación
q = \left(cos\frac{\theta}{2}, \frac{n_{x}}{\left\Arrowvert n\right\Arrowvert} sen \frac{\theta}{2}, \frac{n_{y}}{\left\Arrowvert n\right\Arrowvert} sen \frac{\theta}{2}, \frac{n_{t}}{\left\Arrowvert n\right\Arrowvert} sen \frac{\theta}{2}\right)
\newpage
y de la ecuación Q'' = Q' * Q^{\text{*}}, se deriva una ecuación para obtener un valor de rotación diferencial como la siguiente ecuación 37:
... (37)Y_{i} = Q_{i} * X * Q^{\text{*}}_{i} = Q_{i}* Q^{\text{*}}_{i-1} * Y_{i-1} * Q_{i-1} * Q^{\text{*}}_{i-1} = Q'{}^{\text{*}}_{i} * Y_{i-1} * Q'{}^{\text{*}}_{i}
Por lo tanto, se define una ecuación matricial diferencial de rotación de conversión de cuaternión que represente un diferencial de rotación, como la siguiente ecuación 38:
... (38)Q'_{i} = Q_{i} * Q^{\text{*}}_{i-1}
En la presente realización, con el fin de reducir el número de bits que se vayan a codificar, solamente se codifican tres componentes, excluyendo el primer componente, de cuatro componentes que forman un valor de rotación diferencial. Por lo tanto, usando las tres componentes, la unidad de descodificación restaura el componente restante. A continuación se explicará en detalle el procedimiento de descodificación. Todos los valores diferenciales de rotación están representados por medio de valores de expresión de cuaternión unidad. Por lo tanto, la norma de un cuaternión que represente un diferencial de rotación siempre es 1. En base a esto, se restaura el componente restante usando la siguiente ecuación 39:
... (39)\hat{q}_{0} = \sqrt{1-(\hat{q}^{2}_{1} + \hat{q}^{2}_{2} + \hat{q}^{2}_{3})}
En la ecuación 39, \hat{q}_{1}, \hat{q}_{2} y \hat{q}_{3} son los tres componentes de los valores diferenciales de rotación restaurados, respectivamente, y \hat{q}_{0} es el primer componente restaurado usando los tres componentes. En este caso, la suma de los cuadrados de los tres componentes del valor diferencial de rotación restaurado puede sobrepasar 1 debido a un error de cuantificación. En este momento, el valor de \hat{q}_{0} es un valor muy cercano a cero y menor que una unidad mínima que se puede cuantificar por medio de la unidad de cuantificación 805. Físicamente, esto significa una transformación de rotación de ángulo de 180 grados. Por lo tanto, la unidad de descodificación debería tener un procedimiento para determinar el valor de \hat{q}_{0} en este caso. Además, la influencia del valor de \hat{q}_{0} determinado en los otros tres componentes se debería minimizar. Como un ejemplo, se puede determinar un valor unidad mínimo de cuantificación o su valor múltiplo
proporcional como el valor de \hat{q}_{0}. Una ecuación específica para obtener el valor es como en la siguiente ecuación 40:
... (40)\hat{q}_{0} = \alpha \cdot 2^{\sim m} = \alpha \cdot\frac{1}{2^{m}}
Aquí, \alpha denota una constante de proporcionalidad y m denota el número de bits de cuantificación. Este procedimiento tiene mérito en que la información adicional de 2 bits, que se da a cada uno de todos los valores de clave en el procedimiento diferencial lineal de la técnica anterior, no necesita ser enviada al aparato de descodificación. Además, como se muestra en la figura 13, la presente realización puede derivar la sintaxis (b) a partir de la sintaxis (a) del procedimiento diferencial lineal de la técnica anterior. Como resultado, cuando se codifica realmente N valores de clave, la presente realización puede reducir la cantidad de bits generados por 2N bits a partir de la cantidad de bits generados en la información adicional de la técnica primera.
La figura 11 es un diagrama de referencia para explicar un error de dirección de rotación en la codificación de cuaternión usando un diferencial de rotación. el error de dirección de rotación ocurre porque la codificación de cuaternión es un tipo de codificación con pérdidas.
Haciendo referencia a la figura 11, y suponiendo que Q_{i} denota la posición del objeto en base a la información de rotación que es introducida en el momento actual, y que Q_{i-1} denota la posición anterior del objeto, la relación de las dos posiciones se puede expresar mediante cuatro áreas diferentes. Esto es, si el objeto gira desde la posición Q_{i-1} a la posición Q_{i} a través del arco más corto y la relación de las dos posiciones está en el área 1 ó en el área 3, el objeto rota en el sentido contrario a las agujas del reloj desde Q_{i-1} a Q_{i}. También, si el objeto gira desde la posición Q_{i-1} a Q_{i} a través del arco más corto y la relación de las dos posiciones está en el área 2 ó en el área 4, el objeto gira en el sentido de las agujas del reloj desde Q_{i-1} a Q_{i}.
Si el objeto gira de acuerdo con la información de rotación que está codificada y que después se descodifica, la unidad de descodificación gira el objeto usando dos valores: la información de descodificación \hat{Q}_{i-1} correspondiente a la información de rotación original Q_{i-1}, y \hat{Q}_{i} correspondiente a Q_{i}. Por lo tanto, haciendo referencia de nuevo a la figura 11, la posición de \hat{Q}_{i} frente a \hat{Q}_{i-1} está en el área 2 y en el área 3, el objeto gira en el sentido contrario a las agujas del reloj y si la posición está en el área 1 y en el área 4, el objeto gira en el sentido de las agujas del reloj. De esta forma, haciendo girar el objeto usando la información de rotación original y haciendo girar el objeto usando la información de rotación de descodificación se provoca rotaciones en sentidos contrarios en el área 1 y en el área 2. Esto es porque en la codificación de cuaternión, se realiza la codificación con pérdidas y por lo tanto Q_{i} no es la misma que \hat{Q}_{i}. Esto ocurre de manera inevitable en la codificación con pérdidas. Como área 1 y área 2 son esencialmente áreas, se necesita una operación para minimizar la rotación inversa o para hacer que la dirección de rotación sea la misma que la de la dirección original. En la presente realización, se adoptó la última operación.
\global\parskip0.990000\baselineskip
Brevemente, la explicación de la función de corrección de la dirección de rotación, con referencia a la figura 11, se detectan las áreas 1 y 2 en las que ocurre un error en la dirección de rotación, el valor de cuaternión diferencial que va a ser codificado es controlado de manera obligatoria de forma que la dirección de rotación sea la misma que la dirección de rotación original. Aunque la inconsistencia en las direcciones de rotación también ocurre en el área 2, en el área 2 a diferencia del área 1, el valor de cuaternión original y el valor de cuaternión restaurado son convergentes. Por lo tanto, la función de corrección de la dirección de rotación se realiza en el área 1 y no en el área 2.
Las figuras 9 y 10 son diagramas de bloques para explicar la función de corrección de la dirección de rotación del aparato de codificación de la figura 8.
Con referencia a la figura 9, una unidad de cálculo de error de la dirección de rotación 950 y una unidad de determinación 960 detectan un caso del área 1.
Como se muestra en la figura 10, la unidad de cálculo de error de la dirección de rotación 950 incluye las unidades de cálculo de diferencia de rotación de cuaternión 952, 953 y 954 para calcular tres valores de cuaternión de rotación diferencial. Los tres valores obtenidos de rotación diferencial A, B y C son de la siguiente manera:
Valor de rotación diferencial A:
\hskip0.3cm
Q_{i} (Q_{i-1})^{\text{*}}
Aquí, el valor de rotación diferencial A indica la dirección de rotación del objeto en un intervalo de tiempo [t_{i-1}, t_{i}] mediante la información original de rotación.
Valor de rotación diferencial B:
\hskip0.3cm
Q_{i-1} (\hat{Q}_{i-1})^{\text{*}}
Aquí, el valor de rotación diferencial B indica el error de rotación y la dirección del objeto debido a un error de la codificación en el instante t_{i-1}.
Valor de rotación diferencial C:
\hskip0.3cm
Q_{i} (\hat{Q}_{i-1})^{\text{*}}
Aquí, el valor de rotación diferencial C indica la dirección de información de cuaternión diferencial que se proporciona para su codificación en el instante t_{i}.
La unidad de determinación 960 determina el área 1 como se explicó en la figura 11, usando los tres valores de rotación diferencial A, B y C. Si es el caso del área 1, la unidad de determinación 980 selecciona una entrada desde la unidad de saturación de dirección de la rotación 970 para fijar la dirección de rotación a un valor de saturación, de forma que la dirección de rotación se corrija al mismo valor que la dirección de rotación original. Si no es el caso del área 1, la unidad de determinación 980 selecciona una entrada desde la unidad de cálculo de diferencia de rotación de cuaternión 940 de forma que no se realiza la función de corrección de la dirección de rotación, y saca la señal seleccionada. El funcionamiento en este momento es el mismo que el caso anteriormente descrito, en el que se obtiene un valor de cuaternión diferencial y se entrega a la unidad de cuantificación 805. A continuación se explicará en detalles el principio del funcionamiento de la unidad de determinación 960. La unidad de determinación 960 incluye cinco unidades lógicas de determinación, y saca el resultado de realizar una función lógica "AND" sobre cinco salidas de valores lógicos. Cinco operaciones lógicas incluidas en la unidad de determinación 960 son de la siguiente manera:
Expresión lógica A:
8
Aquí, si el valor de rotación diferencial A de la figura 10 es Q_{A}, y Q_{A} = (q_{A,0}, q_{A,1}, q_{A,2}, q_{A,3})^{T}
9 indica un vector tridimensional (q_{A,1}, q_{A,2}, q_{A,3})^{T} que está formado por tres elementos exceptuando el primer elemento q_{A,0} entre los cuatro elementos.
Igualmente, 10 indica un vector tridimensional formado por tres elementos excepto el primer elemento del valor de rotación diferencial C de la figura 10.
11 indica el producto interior de dos vectores tridimensionales. Si el producto interior es un número negativo, el valor lógico A es definido como "verdadero", y en caso contrario se define como "falso".
Expresión lógica B:
12
Aquí, 13 indica un vector tridimensional (q_{B,1}, q_{B,2}, q_{B,3})^{T} que está formado por tres elementos exceptuando el primer elemento del valor de rotación diferencial B de la figura 10.
14 indica un vector tridimensional formado por tres elementos excepto el primer elemento en el valor de rotación diferencial C de la figura 10.
15 indica el producto interior de dos vectores tridimensionales. Si el producto interior es un número negativo, el valor lógico B se define como "verdadero", y en caso contrario se define como "falso".
\newpage
Expresión lógica C: A_{TH} < 2 cos^{-1} |q_{A,0}|
Aquí, q_{A,0} indica el primer elemento en el valor de rotación diferencial A de la figura 10, como se describe en las expresiones lógicas A y B. Si el resultado de realizar la expresión lógica C usando el valor absoluto de q_{A,0} es mayor que una constante predeterminada A_{TH}, la expresión lógica C se define como "verdadera" y en caso contrario se define como "falsa". En este momento, la constante A_{TH} se fija a un valor cercano a 0 (por ejemplo, 0,02) y se puede fijar en un valor apropiado dependiendo de una operación real.
Expresión lógica D: A_{TH} < 2 cos^{-1} |q_{B,0}|
Aquí, q_{B,0} indica el primer elemento en el valor de rotación diferencial B de la figura 10, como se describe en las expresiones lógicas A y B. Si el resultado de realizar la expresión lógica D usando el valor absoluto de q_{B,0} es mayor que una constante predeterminada A_{TH}, la expresión lógica D se define como "verdadera" y en caso contrario se define como "falsa". En este momento, la constante A_{TH} se fija como en la expresión lógica C.
Expresión lógica E: A_{TH} < 2 cos^{-1} |q_{C,0}|
Aquí, q_{C,0} indica el primer elemento en el valor de rotación diferencial C de la figura 10, como se describe en las expresiones lógicas A y B. Si el resultado de realizar la expresión lógica E usando el valor absoluto de q_{C,0} es mayor que una constante predeterminada A_{TH}, la expresión lógica E se define como "verdadera" y en caso contrario se define como "falsa". En este momento, la constante A_{TH} se fija como en la expresión lógica C.
Si se realiza la operación "AND" para los cinco valores lógicos obtenidos, de la siguiente manera, se genera la salida de la unidad de determinación 960 de la figura 9.
Salida de la unidad de determinación 960: (expresión lógica A) AND (expresión lógica B) AND (expresión lógica C) AND (expresión lógica D) AND (expresión lógica E).
Si el valor lógico es "verdadero", la unidad de selección 980 recibe la salida de la unidad de saturación de la dirección de rotación 970 y saca la señal recibida. Si el valor lógico es "falso", la unidad de selección 980 recibe la salida de la unidad de cálculo de la diferencia de rotación de cuaternión 940 y saca la señal recibida.
A continuación se explica el funcionamiento de la unidad de saturación de la dirección de rotación 970. Con referencia de nuevo a la figura 11, en el caso del área 1, la información rotacional que recibe la unidad de descodificación es \hat{Q}_{i} y la información de posición de rotación que se introduce en el momento presente es Q_{i}, y por lo tanto, la unidad de descodificación gira el objeto en el sentido de las agujas del reloj. Sin embargo, como de acuerdo con la dirección de rotación original, el objeto gira desde Q_{i-1} a Q_{i}, el objeto deberá girar en el sentido contrario al de las agujas del reloj. Por lo tanto, la unidad de saturación de la dirección de rotación 970 hace que el objeto gire desde la posición \hat{Q}_{i} en una dirección que es la misma que la dirección original, esto es, en una dirección a una posición de rotación que tiene el movimiento mayor contrario al movimiento de las agujas del reloj. Esto es, la unidad de saturación de la dirección de rotación 970 fija nueva información de rotación con la que el objeto puede girar a una posición cercana a 180 grados desde la posición \hat{Q}_{i}. De acuerdo con esto, la dirección de rotación se puede corregir como la dirección de rotación original, y se puede minimizar el error de posición de rotación. El funcionamiento de la unidad de saturación de la dirección de rotación 970 se expresa como en la siguiente ecuación 41:
\vskip1.000000\baselineskip
16
\newpage
Aquí, (q_{R,0,} q_{R,1,} q_{R,2,} q_{R,3})^{T} indica la unidad de cálculo de la diferencia de rotación de cuaternión 940 de la figura 9, y \delta_{T} es un valor cercano a 0 (por ejemplo, 0,001) y se determina con respecto al grado de precisión de la codificación.
La unidad diferencial lineal 807 obtiene el diferencial lineal de los cuaterniones sucesivos de los valores de clave. Esto es, se cuantifica una salida de valor desde la unidad diferencial lineal/rotacional 803 en la unidad de cuantificación 805, y después se obtiene el diferencial lineal del valor cuantificado. Haciendo esto, la redundancia de datos ocurrentes aumenta como se muestra en la figura 12, y como resultado de esto, se consigue una eficiencia mayor en la codificación. Por lo tanto, se obtiene un efecto similar al de realizar realmente una diferenciación de segundo orden para los datos de valor de clave. Como se ha descrito al explicar el control de la dirección de la unidad diferencial lineal/rotacional 803, de acuerdo con el diferencial de segundo orden de la técnica anterior, la codificación es una codificación con más pérdidas que el esquema de codificación de la presente invención descrito anteriormente. Por lo tanto, cuando el objeto gira usando la información de rotación codificada, se produce la rotación inversa del objeto. A medida que aumentan los errores de cuantificación, las rotaciones inversas ocurren de manera más frecuente. Esto es, el diferencial de segundo orden provoca un incremento en los errores de cuantificación, mientras que la unidad diferencial lineal 807 descrita en la presente realización aplica diferenciación lineal al cuaternión de los valores de clave ya cuantificados y por lo tanto aumenta la redundancia de datos y evita la ocurrencia de los errores de cuantificación.
La unidad de codificación de la entropía 809 mejora la eficiencia de la codificación de los datos que se cuantifican usando el procedimiento de codificación aritmética 809 para eliminar la redundancia de bit mediante el cálculo de la frecuencia de la generación de símbolo en base a probabilidades condicionales. De acuerdo con esto, la cantidad de datos que realmente se tienen que codificar disminuye de una manera efectiva.
En base a la estructura anteriormente descrita, se explicará ahora con detalle el procedimiento de codificación de acuerdo con una segunda realización preferida.
El procedimiento de codificación de acuerdo con la segunda realización se basa en la diferenciación lineal (DPCM) que usa la diferencia entre un valor previamente restaurado y un valor que se vaya a codificar en el momento actual como una clave en los datos de campo de un nodo interpolador de la orientación. Mientras, para los datos de valor de clave, las tramas de clave son eliminadas dentro de un límite de error permisible usando la similitud de la transformación rotacional sobre un espacio cuaternión, y se obtienen los valores diferenciados usando diferenciación de rotación, y después los valores diferenciados se cuantifican, se diferencian linealmente y se codifican de manera aritmética. Haciendo esto, se mejora la eficiencia de la codificación y se mide de manera objetiva la distorsión de la calidad visual del resultado restaurado. A continuación se explicará el procedimiento etapa a etapa.
Etapa 1
Los datos de campo de un nodo interpolador de la orientación que se vayan a codificar se reciben y se interpretan. De manera más específica, se reciben los datos VRML, se interpreta el nodo interpolador de la orientación y se extraen respectivamente la clave y los valores de clave a partir del valor interpretado para codificar los datos de campo formados con una clave y con valores de clave.
Etapa 2
La unidad de eliminación de trama de clave 802 selecciona algunas clave de entrada y valores de clave del total de claves de entrada y valores de clave dentro de un límite de error permisible.
Etapa 3
La unidad diferencial lineal/rotacional 803 diferencia linealmente los datos de clave de entrada de forma que se genera la redundancia entre estos datos linealmente diferenciados, y la unidad de cuantificación 805 cuantifica los datos.
Etapa 4
La unidad diferencial lineal/rotacional 803 realiza la diferenciación rotacional para los datos de valor de clave de entrada.
Etapa 5
Con el fin de compensar los errores de cuantificación de la clave y de los valores de clave que se vayan a introducir en el siguiente punto en el tiempo, los valores diferenciados de la clave y de los valores de clave cuantificados en la unidad de cuantificación 805 en las etapas 3 y 4 son cuantificados inversamente en la unidad de cuantificación inversa 806, son retardados en la unidad de retardo 819 y después son acumulados en la unidad de integración (o acumulación) lineal/de rotación 804. La clave y los valores de clave acumulados se usan en el procesado diferencial de una clave y de valores de clave introducidos en el siguiente punto en el tiempo. Las ecuaciones que se usan para la acumulación en la unidad integradora lineal/rotacional 804 vienen dadas como las ecuaciones 42 y 43:
... (42)\hat{K}_{i-1} = \sum\limits^{i-1}_{j=0} \tilde{K}_{j}
Aquí, \tilde{K}_{j} denota una clave diferencial cuantificada inversa que ocurre en el orden j-ésimo.
... (43)\hat{Q}_{i-1} = \prod\limits^{i-1}_{j=0} \tilde{Q}_{j}
Aquí, \tilde{Q}_{j} denota un valor de clave diferencial cuantificado inverso que ocurre en el orden j-ésimo.
Etapa 6
La clave cuantificada se introduce en la unidad de codificación de la entropía 809, aritméticamente codificada, y procesada en flujo de acuerdo con el formato de los servicios que se vayan a proporcionar
Etapa 7
Los valores de clave cuantificados son linealmente diferenciados en la unidad diferencial lineal 807, son codificados aritméticamente en la unidad de codificación de la entropía 809 y procesados en flujo. En el flujo, se debería considerar cómo determinar la estructura de los datos de flujo de acuerdo con los formatos y las funciones de los servicios de flujo. Esto es, la estructura de datos (a) mostrada en la figura 6 es la más sencilla para un caso en el que no se considera la característica en tiempo real de los servicios. En esta estructura, ocurre un retardo en la unida de descodificación durante el mismo periodo de tiempo que el periodo de tiempo en el que se restauró la clave. En comparación con la estructura de datos (b), la estructura de datos (a) provoca un coste de codificación más bajo y un coste de descodificación más alto. La estructura de datos (b) puede proporcionar características en tiempo real y una funcionalidad adicional de servicios de datos. En la estructura de datos (b) inmediatamente después de restaurar una clave y los correspondientes valores de clave, se permite la visualización. La estructura de datos (b) es resistente al error. Esto es, aunque se hayan perdido los datos actuales, la pérdida se puede restaurar hasta un cierto grado con los datos anteriores o con los datos siguientes que se vayan a restaurar. Solamente mediante el ajuste del orden de codificación de una clave y de los valores de clave en la unidad de codificación de la entropía 809, se pueden hacer las estructuras (a) y (b) de la figura 6.
Etapa 8
La información binaria que se introduce a través de la unidad de salida de datos de campo binarios 810 se descodifica a través de la inversa del procedimiento de codificación excluyendo una etapa de la unidad de eliminación de trama de clave 802. Mediante la medida de la distorsión visual de los datos descodificados en la unidad de medida de la distorsión 818, se evalúa el funcionamiento de la unidad de codificación. La unidad de descodificación descodifica los datos en el procedimiento inverso del procedimiento de codificación anteriormente descrito.
La figura 20 es un ejemplo en el que el procedimiento de descodificación de acuerdo con la segunda realización está expresado en sintaxis de flujo binario. Cuando finaliza el proceso de descodificación como se muestra en la figura 20, la unidad de medida de la distorsión 818 recibe la salida de la unidad de entrada de datos de campo de un nodo interpolador de la orientación 817, y mide la distorsión visual en un número objetivo, usando la ecuación 30 ó 33. Las ecuaciones 30 y 33 usadas en este instante son ecuaciones que reflejan las características físicas de la transformación de rotación de un objeto en un espacio cuaternión, y proporcionan valores medidos más objetivos y precisos que los de la ecuación 1 usada en la técnica anterior.
Al codificar los datos de campo de un nodo interpolador de la orientación, la presente realización, que implementa el procedimiento de codificación que usa las etapas descritas anteriormente, elimina la redundancia de datos en una región del tiempo y la redundancia binaria entre símbolos cuantificados, y mejora la eficiencia de la transmisión de datos mediante el reflejo de las características físicas de la transformación de rotación. Las figuras 21 y 22 son gráficos que muestran las tasas de distorsión (Tasa-Distorsión) del procedimiento de codificación de la animación de las BIFS MPEG-4 de la técnica anterior y de los de la realización preferida de la presente invención. Con referencia a las figuras 21 y 22, en el mismo error, el procedimiento de codificación de la presente realización genera un número de bits relativamente más pequeño.
Como se ha descrito anteriormente, en la codificación de los datos de un nodo interpolador de la orientación, la presente invención elimina la redundancia de los datos en una región del tiempo y la redundancia de bits entre los símbolos cuantificados, y mejora la eficiencia de la transmisión de datos reflejando las características físicas de un movimiento rotacional y de traslación y eliminando la información adicional para los elementos.

Claims (19)

1. Un aparato de codificación para un nodo interpolador de la orientación que proporciona información sobre la rotación de un objeto en un espacio de tres dimensiones, comprendiendo el aparato de codificación:
una unidad de entrada de datos de campo que incluye una unidad de clave (200, 800) para extraer los datos de campo que se vayan a codificar en el momento actual, mediante el análisis del nodo interpolador de la orientación, los datos de campo incluyendo datos de clave que indican la información sobre una posición en un eje de tiempo en el que ocurre un cambio del movimiento de rotación y de traslación y los datos de valor de clave que incluyen los valores de clave que indican la información de rotación correspondiente a la información de la posición;
una unidad de procesado para convertir los valores de clave en un cuaternión, caracterizada porque la unidad de procesado es una unidad (205, 210, 215, 801) de procesado de modulación diferencial adaptativa de impulsos codificados (ADPCM) adaptada para el procesado ADPCM del cuaternión usando diferenciación de rotación, y para el procesado de modulación diferencial de impulsos codificados (DPCM) de los datos de clave; y
una unidad de cuantificación (220, 805) para cuantificar los datos de clave y los datos de valor de clave y sacar los datos cuantificados.
2. El aparato de codificación para un nodo interpolador de la orientación de la reivindicación 1, en el que la unidad de procesado ADPCM comprende:
una unidad (205, 801) de conversión de cuaternión para convertir los datos de valor de clave extraídos por la unidad de entrada de datos de campo en un cuaternión;
una unidad DPCM (210) para calcular un valor diferencia entre una clave anteriormente restaurada y la clave que se vaya a codificar en el momento presente para los datos de clave extraídos en la unidad de entrada de datos de campo; y
una unidad (215, 803) de conversión diferencial de rotación para producir una matriz de conversión diferencial de rotación en la que los datos de valor de clave convertidos a un cuaternión se representan mediante una distancia de movimiento rotacional más corta del objeto, y, cuando se generan los datos de valor de clave en base a la matriz de conversión diferencial de rotación, haciendo que la unidad DPCM refleje la generación de los datos de clave correspondientes a los nuevos datos de valores de clave.
3. El aparato de codificación para un nodo interpolador de la orientación de la reivindicación 2, en el que la unidad de conversión diferencial de rotación comprende:
una unidad (300) de generación de matriz de conversión diferencial de rotación para producir una matriz de conversión diferencial de rotación que es un producto de los datos de valor de clave que se van a codificar en el momento actual y los datos complejos conjugados obtenidos mediante la acumulación de las matrices de conversión diferencial de rotación que se restauraron anteriormente;
una unidad (320) de ajuste de elemento para redefinir la matriz de conversión diferencial de rotación para satisfacer una condición de que un primer elemento de un cuaternión siempre es el más grande de todos los elementos del cuaternión, y sacando la matriz de conversión diferencial de rotación;
una unidad de retardo (340) que almacena una matriz de conversión diferencial de rotación que se restaura en el momento actual en respuesta a la salida de la unidad de ajuste de elemento, y proporcionando una matriz de conversión diferencial de rotación que se restauró y se almacenó anteriormente; y
una unidad acumuladora (335) para recibir de manera secuencial las matrices de conversión diferencial de rotación, que se almacenaron anteriormente provenientes de la unidad de retardo, y sacando los datos obtenidos mediante la acumulación de las matrices de conversión diferencial de rotación que se restauraron anteriormente.
4. El aparato de codificación para un nodo interpolador de la orientación de la reivindicación 3, en el que la unidad (320) de ajuste del elemento comprende:
una unidad de condición (305) para determinar si el valor del primer elemento del cuaternión es o no es el más grande de entre todos los elementos de la matriz de conversión diferencial de rotación; y
una unidad (310) de generación de valor de clave para generar nuevos datos de valor de clave mediante la definición arbitraria de una posición de rotación que pueda tener una distancia de movimiento rotacional más corta del objeto si la determinación de la unidad de condición indica que el valor del primer elemento no es el más grande, y haciendo que la unidad DPCM refleje la generación de los datos de clave correspondientes a los nuevos valores de datos de clave.
5. El aparato de codificación para un nodo interpolador de la orientación de cualquiera de las reivindicaciones anteriores, comprendiendo además:
una unidad de (225, 809) codificación de la entropía para la codificación aritmética de la clave y de los datos de valor de clave cuantificados.
6. El aparato de codificación para un nodo interpolador de la orientación de la reivindicación 5, comprendiendo además:
una unidad de salida (230, 810) para sacar los datos codificados de manera aritmética como datos en flujo en formato binario,
en la que la estructura del flujo de datos, los datos de clave y los datos de valor de clave se forman de manera separada.
7. El aparato de codificación para un nodo interpolador de la orientación de la reivindicación 5, comprendiendo además:
una unidad de salida (230, 810) para sacar los datos codificados de manera aritmética como datos en flujo en formato binario,
en la que la estructura del flujo de datos, los datos de clave y los datos de valor de clave forman un par unidad de manea secuencial.
8. El aparato de codificación para un nodo interpolador de la orientación de cualquiera de las reivindicaciones anteriores, comprendiendo además:
una unidad (265, 818) de medida de la distorsión para medir la distorsión de la calidad visual de los datos restaurados a partir de la información original cuando los datos de salida son restaurados, antes de codificar con respecto a los valores diferenciales de rotación.
9. Un procedimiento de codificación para un nodo interpolador de la orientación que proporciona información sobre la rotación de un objeto en un espacio de tres dimensiones, comprendiendo el procedimiento de codificación las etapas de:
(a) extraer (500) los datos de campo que se vayan a codificar, incluyendo los datos de campo los datos de clave que incluyen una clave que indica la información sobre una posición sobre un eje de tiempo en el que ocurre un cambio del movimiento de rotación y de traslación y los datos de valor de clave que incluyen valores de clave que indican la información de rotación correspondiente a la información de la posición, mediante el análisis del nodo interpolador de la orientación;
(b) convertir (510) los datos de valor de clave en un cuaternión, y después, la modulación diferencial adaptativa de impulsos codificados (ADPCM) procesando el cuaternión usando una matriz de conversión diferencial de rotación, y modulación diferencial de impulsos codificados (DPCM) procesando los datos de clave; y
(c) cuantificar (520) los datos de clave y los datos de valor de clave y sacar los datos cuantificados.
10. El procedimiento de codificación para un nodo interpolador de la orientación de la reivindicación 9, en el que la etapa (b) (510) comprende las etapas de:
(b1) convertir los datos de valor de clave extraídos en la etapa (a) en un cuaternión;
(b2) producir una matriz de conversión diferencial de rotación en la que los datos de valor de clave convertidos en un cuaternión estén representados mediante una distancia de movimiento rotacional más corta del objeto;
(b3) cuando se generan los nuevos datos de valor de clave en base a la matriz de conversión diferencial de rotación, generar datos de clave correspondientes a los nuevos datos de valor de clave; y
(b4) para los datos de clave extraídos en la etapa (a) y los datos de clave generados en la etapa (b3), calcular un valor de diferencia de una clave anteriormente restaurada y una clave que se vaya a codificar en el momento presente.
11. El procedimiento de codificación para un nodo interpolador de la orientación de la reivindicación 10, en el que en la etapa (b2) la matriz de conversión diferencial de rotación (Q_{i}') está definida mediante la siguiente
ecuación 6:
... (6)Q'_{i} = Q_{i} * Q^{\text{*}}_{i-1}
\newpage
donde, Q_{i} denota los datos de valor de clave que se convierten en un cuaternión y que se van a codificar en el momento presente, y Q^{\text{*}}_{i-1} denota el conjugado de los datos que se obtienen mediante la acumulación de las matrices de conversión diferencial de rotación anteriormente restauradas.
12. El aparato de codificación para un nodo interpolador de la orientación de la reivindicación 10 ó de la reivindicación 11, tras la etapa (b2) comprendiendo además las etapas de:
(b2-1) determinar si se satisface o no la condición de que el valor del primer elemento de un cuaternión es siempre el mayor de todos los elementos del cuaternión (= matriz de conversión diferencial de rotación);
(b2-2) redefinir la matriz de conversión diferencial de rotación y sacar la matriz de conversión diferencial de rotación a la etapa (c) si la condición no se satisface; y
(b2-3) sacar, si se satisface la condición, la matriz de conversión diferencial de rotación sin cambios.
13. El procedimiento de codificación para un nodo interpolador de la orientación de la reivindicación 12, en el que la etapa (b2-2), si no se satisface la condición, la matriz de conversión diferencial de rotación es redefinida mediante la generación de nuevos valores de clave usando la siguiente ecuación 7:
|A| = |B| = |P| = 1
A \bullet B = cos \Omega
... (7)P = A\frac{sen(\Omega - \theta)}{sen\Omega} + B\frac{sen\theta}{sen\Omega}
Aquí, P denota los nuevos valores de datos, B denota los datos de valor de clave originales que se van a codificar en el momento presente, A denota los datos de valor de clave anteriores, \Omega denota el ángulo de rotación entre A y B, y \theta denota el ángulo de rotación entre A y P.
14. El procedimiento de codificación para un nodo interpolador de la orientación de la reivindicación 10, 11, 12 ó 13, en el que en la etapa (b3) se generan los nuevos datos de clave usando la siguiente ecuación 9:
... (9)K_{i} = K_{i-1} + (K_{i} - K_{i-1})*\frac{\theta}{\Omega}
Aquí, K_{i} denota los datos de clave que se van a codificar en el momento presente, K_{i-1} denota los datos de clave anteriores, \Omega denota el ángulo de rotación entre los datos de valor de clave anteriores y los datos de valor de clave originales que se van a codificar en el momento presente, y \theta denota el ángulo de rotación entre los datos de valor de clave anteriores y los nuevos datos de valor de clave.
15. El procedimiento de codificación para un nodo interpolador de la orientación de cualquiera de las reivindicaciones 9 a la 14, comprendiendo además la etapa de:
(d) codificación aritmética (520) de la clave y de los datos de valor de clave cuantificados.
16. El procedimiento de codificación para un nodo interpolador de la orientación de la reivindicación 15, comprendiendo además la etapa de:
(e) sacar (530) los datos codificados de manera aritmética como datos de flujo en formato binario,
en el que en la estructura de datos de flujo, los datos de clave y los datos de valor de clave se forman por separado.
17. El procedimiento de codificación para un nodo interpolador de la orientación de la reivindicación 15, comprendiendo además la etapa de:
(e) sacar (530) los datos codificados de manera aritmética como datos de flujo en formato binario,
en el que en la estructura de datos de flujo, los datos de clave y los datos de valor de clave forman un par unidad de manera secuencial.
18. El procedimiento de codificación para un nodo interpolador de la orientación de cualquiera de las reivindicaciones anteriores de la 9 a la 17, tras la etapa (c), comprendiendo además la etapa de:
en el momento en el que se restauran los datos de salida, medir la distorsión de la calidad visual de los datos restaurados a partir de la información original antes de codificar con respecto a los valores diferenciales de rotación.
19. El procedimiento de codificación para un nodo interpolador de la posición de la reivindicación 18, en el que RMS(D_{m}) de un error de cuantificación y el error máximo (D_{p}) que son las bases para medir la distorsión de la calidad visual, se calculan usando las siguientes ecuaciones 15 ó la ecuación 16:
\theta'' = 2cos^{-1} q_{0}'' = 2cos^{-1}(Q' \bullet Q), \theta'' \in [0,\pi], q_{0}'' = Q' \bullet Q,
(\bullet indica la operación producto interior)
17
18
Aquí, Q denota los datos de valor de clave de la información antes de la codificación, los datos de valor de clave que se convierten en un cuaternión, y Q' denota los datos de valor de clave de la información descodificada, los datos de valor de clave que se convierten en un cuaternión.
ES01308904T 2000-10-20 2001-10-19 Aparato y procedimiento de codificacion para nodo interpolador de la orientacion. Expired - Lifetime ES2261353T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20000061985 2000-10-20
KR10-2000-061985 2000-10-20
KR1020010040705A KR100590522B1 (ko) 2000-10-20 2001-07-07 오리엔테이션 보간 노드의 부호화 장치 및 방법
KR10-2001-040705 2001-07-07

Publications (1)

Publication Number Publication Date
ES2261353T3 true ES2261353T3 (es) 2006-11-16

Family

ID=36274084

Family Applications (1)

Application Number Title Priority Date Filing Date
ES01308904T Expired - Lifetime ES2261353T3 (es) 2000-10-20 2001-10-19 Aparato y procedimiento de codificacion para nodo interpolador de la orientacion.

Country Status (8)

Country Link
US (1) US6834081B2 (es)
EP (1) EP1199894B1 (es)
JP (1) JP3521412B2 (es)
CN (1) CN1198462C (es)
CA (1) CA2359260C (es)
DE (1) DE60118491T2 (es)
ES (1) ES2261353T3 (es)
RU (1) RU2224290C2 (es)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7920143B1 (en) * 1997-03-27 2011-04-05 At&T Intellectual Property Ii, L.P. Method for defining animation parameters for an animation definition interface
JP2002163678A (ja) * 2000-09-13 2002-06-07 Monolith Co Ltd 擬似三次元画像生成方法および装置
EP2278807B1 (en) * 2001-11-27 2012-07-18 Samsung Electronics Co., Ltd. Apparatus for decoding a bitstrom with an orientation interpolator
US7430497B2 (en) * 2002-10-31 2008-09-30 Microsoft Corporation Statistical model for global localization
US7133563B2 (en) 2002-10-31 2006-11-07 Microsoft Corporation Passive embedded interaction code
US7502507B2 (en) * 2002-10-31 2009-03-10 Microsoft Corporation Active embedded interaction code
US7116840B2 (en) * 2002-10-31 2006-10-03 Microsoft Corporation Decoding and error correction in 2-D arrays
JP4037875B2 (ja) * 2005-02-24 2008-01-23 株式会社東芝 コンピュータグラフィックスデータ符号化装置、復号化装置、符号化方法、および、復号化方法
US7826074B1 (en) 2005-02-25 2010-11-02 Microsoft Corporation Fast embedded interaction code printing with custom postscript commands
US7421439B2 (en) 2005-04-22 2008-09-02 Microsoft Corporation Global metadata embedding and decoding
US7400777B2 (en) 2005-05-25 2008-07-15 Microsoft Corporation Preprocessing for information pattern analysis
US7729539B2 (en) 2005-05-31 2010-06-01 Microsoft Corporation Fast error-correcting of embedded interaction codes
US7817816B2 (en) 2005-08-17 2010-10-19 Microsoft Corporation Embedded interaction code enabled surface type identification
US20120029926A1 (en) 2010-07-30 2012-02-02 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for dependent-mode coding of audio signals
US9208792B2 (en) 2010-08-17 2015-12-08 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for noise injection
CN104092467A (zh) * 2014-07-09 2014-10-08 无锡梵天信息技术股份有限公司 一种利用双重四元数压缩矩阵的方法
US10560678B2 (en) 2016-11-09 2020-02-11 Mediatek Inc. Method and apparatus having video encoding function with syntax element signaling of rotation information of content-oriented rotation applied to 360-degree image content or 360-degree video content represented in projection format and associated method and apparatus having video decoding function

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4797836A (en) * 1986-11-19 1989-01-10 The Grass Valley Group, Inc. Image orientation and animation using quaternions
US5511153A (en) * 1994-01-18 1996-04-23 Massachusetts Institute Of Technology Method and apparatus for three-dimensional, textured models from plural video images
CA2144253C (en) 1994-04-01 1999-09-21 Bruce F. Naylor System and method of generating compressed video graphics images
US6084908A (en) * 1995-10-25 2000-07-04 Sarnoff Corporation Apparatus and method for quadtree based variable block size motion estimation
US6097854A (en) * 1997-08-01 2000-08-01 Microsoft Corporation Image mosaic construction system and apparatus with patch-based alignment, global block adjustment and pair-wise motion-based local warping
US6577310B1 (en) 1998-12-01 2003-06-10 Samsung Electronics Co., Ltd. 3D mesh coding/decoding method and apparatus for error resilience and incremental rendering
US6204854B1 (en) * 1998-12-04 2001-03-20 France Telecom Method and system for encoding rotations and normals in 3D generated scenes
US6559848B2 (en) * 2000-12-13 2003-05-06 Intel Corporation Coding and decoding three-dimensional data

Also Published As

Publication number Publication date
CN1367618A (zh) 2002-09-04
EP1199894A2 (en) 2002-04-24
US6834081B2 (en) 2004-12-21
CA2359260C (en) 2004-07-20
JP3521412B2 (ja) 2004-04-19
RU2224290C2 (ru) 2004-02-20
JP2002232897A (ja) 2002-08-16
US20020071488A1 (en) 2002-06-13
CA2359260A1 (en) 2002-04-20
DE60118491D1 (de) 2006-05-18
EP1199894A3 (en) 2003-07-09
EP1199894B1 (en) 2006-04-05
DE60118491T2 (de) 2007-05-03
CN1198462C (zh) 2005-04-20

Similar Documents

Publication Publication Date Title
ES2261353T3 (es) Aparato y procedimiento de codificacion para nodo interpolador de la orientacion.
ES2381777T3 (es) Procedimiento y aparato para codificar y decodificar un interpolador de orientación
US7181071B2 (en) Method and apparatus for encoding and decoding key value data of orientation interpolator node
Kammerl et al. Real-time compression of point cloud streams
KR100209132B1 (ko) 블럭-기반 물체 윤곽 부호화 방법
ES2248245T3 (es) Aparato y procedimiento de codificacion/descodificacion para datos de nodo interpolador de la orientacion.
ES2360786T3 (es) Codificación y decodificación de datos de valores clave de un modo interpolador de orientación.
EP0871331A2 (en) Method and apparatus for adaptively coding a contour of an object
US5881183A (en) Method and device for encoding object contour by using centroid
ES2417529T3 (es) Aparato y procedimiento de codificación para nodo interpolador de orientación
ES2282209T3 (es) Procedimiento y aparato de compresion de datos.
ES2350335T3 (es) Aparato y procedimiento de codificación y decodificación de datos clave para la animación gráfica.
EP1322120B1 (en) Encoding and decoding key value data of orientation interpolator node
Da Cunha et al. On the information rates of the plenoptic function
Daribo et al. Dynamic compression of curve-based point cloud
CN116708706A (zh) 低带宽视频会议实现方法、系统及装置
Tsuchiya et al. Optical flow detection using segmentation and MDL criterion
Senthil et al. Real-time compression strategy on various point cloud streams
JP2007053785A (ja) 属性検出方法及び装置
JP2004007392A (ja) 位置インタポレータの符号化/復号化方法、及び装置
KR19980051715A (ko) 비디오 신호에 있어서의 물체 윤곽선 근사화 방법 및 장치