ES2248245T3 - Aparato y procedimiento de codificacion/descodificacion para datos de nodo interpolador de la orientacion. - Google Patents

Aparato y procedimiento de codificacion/descodificacion para datos de nodo interpolador de la orientacion.

Info

Publication number
ES2248245T3
ES2248245T3 ES01308905T ES01308905T ES2248245T3 ES 2248245 T3 ES2248245 T3 ES 2248245T3 ES 01308905 T ES01308905 T ES 01308905T ES 01308905 T ES01308905 T ES 01308905T ES 2248245 T3 ES2248245 T3 ES 2248245T3
Authority
ES
Spain
Prior art keywords
value
quaternion
unit
differential
rotation
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
ES01308905T
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 KR1020010040706A external-priority patent/KR100612828B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Application granted granted Critical
Publication of ES2248245T3 publication Critical patent/ES2248245T3/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/25Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with scene description coding, e.g. binary format for scenes [BIFS] compression
    • 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
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Processing Or Creating Images (AREA)
  • Studio Circuits (AREA)

Abstract

Un aparato de codificación para los datos del nodo interpolador de la orientación teniendo datos de campo que proporciona la información rotacional de un objeto en un espacio de tres dimensiones, comprendiendo el aparato de codificación lo siguiente: una unidad de conversión de cuaternión (620) para convertir los valores de clave de un elemento de los datos de campo en información de un espacio cuaternión, incluyendo el elemento de los datos de campo una clave que indica información que especifica un instante en el que ocurre un cambio en el movimiento rotacional, y valores de clave que indican información de rotación correspondiente al instante; una unidad de cálculo de cuaternión diferencial (700) para generar un valor diferencial entre el valor de cuaternión y un valor de cuaternión de predicción; una unidad de cuantificación (810) configurada para cuantificar la salida del valor diferencial proveniente de la unidad de cálculo de cuaternión diferencial; una unidad de codificación de longitud variable (820) configurada para codificar con una longitud variable la salida del valor diferencial cuantificado proveniente de la unidad de cuantificación; una unidad de cuantificación inversa (910) configurada para cuantificar de manera inversa el valor diferencial cuantificado; una unidad de multiplicación de cuaternión (920) configurada para multiplicar el valor diferencial proveniente de la unidad de cuantificación inversa por un valor diferencial anterior para obtener un valor de cuaternión; una unidad de retardo (930) configurada para retardar el valor de cuaternión; y una unidad de predicción (1000) configurada para generar el valor de cuaternión de predicción en base al valor de cuaternión retardado y para controlar la generación del valor de cuaternión de predicción usando un valor de control del orden de predicción (fi).

Description

Aparato y procedimiento de codificación/descodificación para datos de nodo interpolador de la orientación.
La presente invención se refiere a un aparato y a un procedimiento de codificación/descodificación para un nodo interpolador de la orientación.
El formato binario para escenas (BIFS) MPEG-4 soporta una técnica de animación de trama clave que usa datos de nodo interpolador compuestos por datos de campo en los que la información de la animación está expresada en una clave y en valores de clave. La trama clave corresponde a una escena que es una base en la animación por ordenador. En el procedimiento de animación de trama clave, con el fin de proporcionar una animación suave, se necesita la interpolación lineal respecto a la pieza en una gran cantidad de datos de clave y de valor de clave. Debido a esta característica, el BIFS MPEG-4 mejora la eficiencia en la transmisión de datos por medio de la cuantificación de los datos de campo en cada nodo interpolador seguido de la compresión de los datos.
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.
Como los conjuntos de datos que tienen características de interpolación lineal tienen una correlación más alta entre conjuntos de datos sucesivos, es eficiente el uso de un procedimiento de codificación diferencial que usa valores diferenciales entre conjuntos sucesivos de datos. En el BIFS MPEG-4, se usan dos procedimientos representativos para codificar el campo de datos que está representado por claves y valores de clave de un nodo interpolador de la orientación y que va a ser procesado: un procedimiento que no usa Modulación Diferencial de Impulsos Codificados (DPCM) y un procedimiento que usa DPCM.
En primer lugar, en el procedimiento que no usa DPCM, solamente se realiza la cuantificación con respecto a las claves y a los valores de clave que se vayan a codificar. Por lo tanto, debido a que no se consideran las características de los datos que se van a codificar, el procedimiento es ineficiente. El procedimiento que no usa la DPCM será explicado a continuación de una manera breve. Los datos de campo de un nodo interpolador de la orientación se aplican y los valores de clave de los datos de campo se convierten a valores en un espacio cuaternión. A continuación, la clave y los valores de clave son cuantificados. A continuación, los datos binarios cuantificados 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. También, usando los datos restaurados, se mide la distorsión visual de un error de cuantificación. La distorsión se podría medir mediante la siguiente ecuación 1:
... 1D = \sqrt{\frac{\sum\limits_{i = 0}^{N - 1}(\varepsilon_{i})^{2}}{N}} = \sqrt{\frac{\sum\limits_{i = 0}^{N - 1} | Q_{i} - \tilde{Q}_{i} |^{2}}{N}}
donde 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.
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.
\newpage
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) \hskip1cm (\vec{r} ,\theta) = (n_{x}, n_{y}, n_{z}, \theta)
\hskip1cm
(0\leq \theta \leq \pi)
... (2)(bb) \hskip0,8cm q = (cos \frac{\theta}{2}, \frac{n_{x}}{||n||} sen\frac{\theta}{2}, \frac{n_{y}}{||n||} sen\frac{\theta}{2}, \frac{n_{z}}{||n||} sen\frac{\theta}{2})
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.
Mientras tanto, como los conjuntos de datos que tienen características de interpolación lineal, tienen una alta correlación entre datos sucesivos, se puede usar un procedimiento de codificación predictivo. En el procedimiento de codificación predictivo, la entrada de los datos actuales se predice en base a la información vecina que previamente se codifica y se descodifica. Después, la información que va a ser codificada en el momento presente se codifica mediante la obtención del valor diferencial entre el valor predicho y el valor de entrada, esto es, un error de predicción.
En el procedimiento DPCM de la técnica primera, se explicará a continuación un cálculo cuaternión diferencial. En primer lugar, se calcula un valor de rotación diferencial entre un valor restaurado previamente y un valor que vaya a ser codificado en el momento presente. El valor de rotación diferencial calculado se cuantifica y después se codifica con longitud variable. Al mismo tiempo, el valor de rotación diferencial cuantificado se cuantifica inversamente, y se multiplica por el valor previamente restaurado en una multiplicación de cuaternión. Haciendo esto, se obtiene un valor restaurado correspondiente al valor que se codificó en el momento presente y que se va a usar cuando se codifique la siguiente señal de entrada. Procedimientos para obtener un cuaternión diferencial incluyen un procedimiento en el que se obtiene un cuaternión diferencial mediante una resta entre factores de cuaterniones, cada uno de los cuales está formado por cuatro elementos, y un procedimiento en el que se obtiene una diferencia de rotación entre dos cuaterniones y se usa como un valor diferencial. Primeramente, el procedimiento en el que se obtiene un valor diferencial mediante una resta usa la siguiente ecuación:
\tilde{Q} = Q -\hat{Q} = (q_{0} - \hat{q}_{0}, q_{1} - \hat{q}_{1}, q_{2} -\hat{q}_{2}, q_{3} -\hat{q}_{3})^{T}
Sin embargo, de acuerdo con este procedimiento, no se muestra la característica de un valor de cuaternión, esto es, el significado físico indicado por medio de un movimiento rotacional, de forma que un valor de posición rotacional puede ocurrir en gran medida debido a un error en la codificación que ocurra en la codificación. Para resolver este problema, se puede usar una diferencia de rotación como un valor de cuaternión diferencial. En este caso, suponiendo que un valor de entrada actual es Q = (q_{0}, q_{1}, q_{2}, q_{3})^{T}, y un valor previamente restaurado es \hat{Q} = (\hat{q}_{0}, \hat{q}_{1}, \hat{q}_{2}, \hat{q}_{3})^{T}, se obtiene un valor de cuaternión diferencial mediante la siguiente ecuación:
\tilde{Q} = Q(\hat{Q})\text{*}
Según esto, en la realización de la codificación del nodo interpolador de la orientación, cuando se considera una correlación más alta entre valores de cuaternión sucesivos, el procedimiento en el que la cuantificación y la codificación de longitud variable es realizado después de obtener un valor de cuaternión diferencial correspondiente a la información rotacional de entrada mediante el uso de un valor previamente restaurado, puede compactar la distribución de valores de cuaternión diferenciales si un valor se puede predecir mediante un procedimiento de predicción apropiado. Por lo tanto, este procedimiento mejora la eficiencia de la compresión de información mediante la mejora de la eficiencia de la cuantificación y la codificación de longitud variable.
El documento US 4.797.836 describe un sistema que interpola orientaciones de un objeto para visualización entre tramas clave sucesivas usando un algoritmo lineal esférico de Bezier entre un par de cuaterniones de trama clave y un coeficiente de tiempo.
El documento FR 2.786.590 describe un esquema de codificación 3d resistente al error, y en particular, a un esquema para dividir un objeto 3d en uno o más componentes, generando un árbol en triángulo y un gráfico en vértice y reconstruyendo el gráfico en vértice y el árbol en triángulo.
El documento US 5.742.289 describe un sistema para sintetizar un flujo binario de vídeo compuesto. Los valores de error de predicción se calculan para cada una de un número de regiones y el tipo de codificación para las tramas de imagen posteriores se basa en los respectivos valores de error de predicción.
De acuerdo con la invención, se proporciona un aparato de codificación para los datos de nodo de interpolación de la orientación que tiene datos de campo que proporciona información rotacional de un objeto en un espacio de tres dimensiones, comprendiendo el aparato de codificación: una unidad de conversión de cuaternión (620) para convertir los valores de clave de un elemento de los datos de campo en una información de espacio cuaternión, el elemento de los datos de campo incluyendo una clave que indica la información que especifica un tiempo en el que ocurre un cambio de movimiento rotacional, y valores de clave que indican información de rotación correspondientes al tiempo; una unidad de cálculo de cuaternión diferencial (700) para generar un valor diferencial entre el valor de cuaternión y un valor de cuaternión de predicción; una unidad de cuantificación (810) configurada para cuantificar la salida de valor diferencial proveniente de la unidad de cálculo de cuaternión diferencial; una unidad de codificación de longitud variable (820) configurada codificar con longitud variable la salida del valor diferencial cuantificado proveniente de la unidad de cuantificación; una unidad de cuantificación inversa (910) configurada para cuantificar inversamente el valor diferencial cuantificado; una unidad de multiplicación de cuaternión (920) configurada para multiplicar el valor diferencial proveniente de la unidad de cuantificación inversa por un valor diferencial anterior para obtener un valor de cuaternión; una unidad de retardo (1000) configurada para generar el valor de cuaternión de predicción en base al valor de cuaternión retardado y para controlar la generación del valor de cuaternión de predicción usando un valor de control de orden de predicción (\beta).
De manera adicional, de acuerdo con la invención, se proporciona un procedimiento de acuerdo con la reivindicación 5.
Las realizaciones de la presente invención proporcionan un aparato y un procedimiento para codificar/descodificar para un nodo interpolador de la orientación, en el que por medio de la codificación del campo de datos de un nodo interpolador de la orientación a través de un procesado DPCM usando un valor de rotación diferencial, se elimina la redundancia de los datos en el dominio del tiempo, se elimina la redundancia de bits entre símbolos, que son cuantificados a través de codificación aritmética adicional y se elimina la información adicional para los elementos, con el reflejo de las características físicas de un movimiento de rotación y de traslación en un espacio cuaternión, de forma que se mejora la eficiencia de la transmisión de datos y se mide de manera más objetiva el grado de la distorsión de la calidad visual.
La presente invención puede proporcionar de manera adicional un aparato y un procedimiento de codificación/des-
codificación para un nodo interpolador de la orientación, en el que en la obtención de un valor de cuaternión diferencial usando un procedimiento de predicción mejorado, la distribución se compacta y se mejora la eficiencia del procesamiento de compresión.
La presente invención también puede proporcionar un aparato y un procedimiento de codificación/descodificación para corregir una rotación en una dirección inversa de la información rotacional original ya que la distorsión de la información de rotación original mediante un error de codificación que ocurre de manera inevitable en todos los procesos de codificación con pérdidas, incluyendo la codificación predictiva, cuando un objeto se gira en base a la información rotacional descodificada en un lado receptor.
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 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/descodificación que puede mejorar la eficiencia de la transmisión de datos mediante la reducción 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/descodificación de un nodo interpolador de la orientación de acuerdo con una primera realización preferida de la presente invención.
\newpage
El aparato de codificación/descodificació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 descodificación de los datos de salida en un receptor y medir el grado de distorsión visual de un error de procesado global. 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 de datos de rotación diferencial 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 es aplican en la etapa 500 en la figura 5. 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 análisis de campo de un nodo interpolador de la orientación en los datos VRLM de entrada y extrae datos de campo que están formados con claves y valores de clave. La clave indica la información acerca de una posición en un dominio del tiempo en el que ocurre un cambio de un movimiento rotacional y de traslación. Los valores de clave, indican la información rotacional.
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 datos de rotación diferencial. Y, el procesado DPCM de los datos de clave se realiza en el paso 510 de la figura 5. De manera más específica, se elimina la redundancia en entre datos sucesivos de los datos de valor de clave (KV_{i}, 0 \leq i \leq 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 primera de los datos de valor de clave, en el cálculo de un movimiento de rotación 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 diferencia como éste, 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 un elemento que tenga el valor más grande en cada componente de valor de clave, 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 un movimiento rotacional entre valores sucesivos 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 primera, a través de la unidad de conversión de los datos de rotación diferencial 215. En base al hecho de que la rotación de un objeto en un espacio de cuaternión está formada con una combinación de ejes de rotación y un ángulo de rotación, se construye la unidad de conversión de datos de rotación diferencial 215, por ejemplo, como se muestra en la figura 3, de forma que el movimiento rotacional con respecto al trayecto del movimiento rotacional real también pueda estar definido por medio de una ecuación de conversión de datos 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 ecuación de conversión de los datos de rotación diferencial usada en la unidad de conversión de datos de conversión diferencial 215.
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 en la clave = k_{i-1}, e \vec{y}_{i-1} 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} e Y_{i-1} son expresiones de cuaternión de \vec{x}_{0} (\vec{n}_{i-1}, \theta_{i-1}) e \vec{y}_{i-1}, respectivamente.
\newpage
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 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_{i} = Q'{}_{i} * Y_{i-1} * Q'\text{*},
Por lo tanto, una ecuación de conversión diferencial de datos de rotación cuaternión que represente unos datos de 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 datos de rotación diferencial 215 incluye una unidad de cálculo de datos 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 cálculo de datos de rotación diferencial 300 recibe datos de valor de clave que se convierten en un formato cuaternión y que van a ser codificadas en el momento presente, y define datos de rotación diferencial que van a ser codificados en el momento presente de acuerdo con la ecuación 6. La unidad de ajuste de elemento 320 redefine los datos de rotación diferencial que se van a codificar en el momento presente de forma que se satisface una condición que en los datos de rotación diferencial (esto es, los ángulos de rotación y 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 los datos de rotación diferencial 215, la unidad de retardo 340 almacena los datos de rotación diferencial que se están restaurando en el momento presente y proporciona datos de rotación diferencial que fueron restaurados anteriormente mediante la recepción secuencial de los datos de rotación diferencial anteriores provenientes de la unidad de retardo 340, y saca el resultado a la unidad de conversión de datos 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 formen la información rotacional, 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 unos datos de rotación diferencial de este movimiento rotacional no satisface la condición anteriormente mencionada, se usa un procedimiento de redefinición de unos datos de rotación diferencial, el procedimiento en el que la posición P (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 tamaños de magnitud de diferencia de dos cuaterniones como un procedimiento para seleccionar el trayecto de movimiento más corto que se produce en un movimiento rotacional 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 ecuación de unos datos de rotación diferencial que satisfagan este trayecto más corto de movimiento como las siguientes ecuaciones 7:
|A| = |B| = |P| = 1
A \cdot B = cos \Omega
... (7)P = A \frac{sen \ (\Omega - \theta)}{sen \ \Omega} + 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),
\newpage
se deriva una ecuación de los datos de rotación diferencial como la siguiente ecuación 8:
... (8)P = \frac{A + B}{2 \cos \ \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 conversión de datos de rotación diferencial 300 al estado 305 no es la más grande de entre las cuatro componentes, la unidad de generación de valor de clave 310 en la unidad de ajuste de elemento 320 define nuevos valores de clave a partir del valor de clave previo y del valor de clave actual, esto es, la información rotacional, de forma que el primer elemento satisfaga la condición 305 de acuerdo con la ecuación 8. En este momento, la información rotacional definida de manera adicional es almacenada en una memoria intermedia 315 y al mismo tiempo se saca a la unidad de conversión de datos de rotación diferencial 300. La memoria intermedia 315 almacena los datos de valor de clave que se vayan a codificar en el momento actual. La memoria intermedia 315 almacena datos de valor de clave generados en la unidad de generación de valor de clave 310 y proporciona información rotacional previa y actual. También, la memoria intermedia 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. Una ecuación de generación de clave en la unidad DPCM 210 es como la siguiente ecuación 9:
... (9)K_{i} = K_{i-1} + (K_{i} - K_{i-1})* \frac{\theta}{\Omega}
Los datos de clave (k_{i}, 0 \leq i \leq 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 clave adicional también mediante la unidad de conversión de datos 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 (dk_{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 sucesivos y ajusta la precisión de la representación de datos de forma que se realice un proceso de compre-
sión.
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. 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, los bits generados en la presente invención son reducidos en 2 (N-1) bits en comparación con los bits generados en las técnicas primeras debido a la información adicional.
Con referencia a la figura 5 de nuevo, tras la etapa 510, la clave y los valores de clave que son procesados ADPCM son cuantificados en el paso 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 símbolo 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 binarios 230 para sacar los datos binarios comprimidos saca los datos codificados como datos de flujo en formato binario.
Aquí, la arquitectura 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 estructura más simple. En esta estructura, el retardo ocurre para 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 menos 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 funcionalidad importante 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 unidad 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/descodificació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/descodificación se mide por medio de un valor característico, esto es, la calidad visual. En los procedimientos de codificación de la técnica primera para medir el funcionamiento de un aparato de codificación/descodificació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 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. La unidad de medida de la distorsión 265 mide los errores de codificació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}| ||\vec{x}|| = 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 el error RMS (D_{m}) para toda la superficie esférica y un error máximo (D_{p}) por medio de las siguientes ecuaciones 10:
\vskip1.000000\baselineskip
1
\vskip1.000000\baselineskip
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:
\vskip1.000000\baselineskip
...(11)\vec{y} \ ' = T_{\vec{r} \ ', \ \theta \ '} (\vec{y})
\vskip1.000000\baselineskip
Un vector error de la codificación que se deriva de estas ecuaciones se define como las siguientes ecuaciones 12:
\vskip1.000000\baselineskip
||\vec{e}(\vec{x})|| = 2 \ cos \ \phi \ sen \ \frac{\theta ''}{2}
\vskip1.000000\baselineskip
donde \vec{x} = (1, \phi, \varphi),\phi = ángulo acimutal, \phi \in [-\pi, \pi],
\vskip1.000000\baselineskip
... (12)\varphi = \text{ángulo de longitud}, \varphi \in [- \frac{\pi}{2}, \frac{\pi}{2}]
\newpage
El error (D_{m}) RMS 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
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' y X = Q' * Y * Q. Aquí, A*B indica una multiplicación de cuaternión y A 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'' es un valor para indicar la relación de la transformación rotacional 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, el error (D_{m}) RMS 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:
\theta'' = 2 \ cos^{-1} q_{0}'' = 2 \ cos^{-1} (Q' \cdot Q), \theta'' \in [0, \pi], q_{0}'' = Q' \cdot Q,
(\cdot indica operación producto interior)
4
5
Las ecuaciones 15 y 16 reflejan las características físicas del movimiento rotacional de un objeto sobre un espacio cuaternión y por lo tanto, proporcionan valores medidos más objetivos 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 de manera correcta la distorsión visual debido a un error de codificación más objetivo que en los procedimientos de la técnica primera.
La figura 8 es un diagrama de bloques esquemático de un aparato de codificación/descodificació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/descodificación incluye una unidad de conversión de cuaternión 620, una unidad de eliminación de trama 650, una unidad de cálculo de cuaternión diferencial 700 y una unidad de cuantificación 810.
La unidad de conversión de cuaternión 620 convierte los valores de clave de los datos de campo de entrada en información del espacio de cuaternión. La unidad de eliminación de trama de clave 650 elimina una trama de clave dentro de un límite de error permisible usando la similitud en unos datos de transformación rotacional. La unidad de cálculo de cuaternión diferencial 700 genera un valor DPCM mediante la obtención de un valor cuaternión rotacional diferencial. La unidad de cuantificación 810 cuantifica el valor diferencial.
Además, el aparato de codificación incluye de manera adicional una unidad de predicción 1000 que predice los datos de entrada actuales usando los datos previamente restaurados. La unidad de predicción 1000 reduce el valor diferencial de forma que se mejora la eficiencia de la compresión de la información por medio de la unidad de cuantificación 810 y la unidad de codificación de longitud variable 820. En particular, la unidad de predicción 1000 de la presente realización puede cambiar el orden de la predicción y ajustar el funcionamiento de la predicción usando un valor de control del orden de la predicción \beta.
También, el aparato de codificación incluye adicionalmente una unidad de corrección de la dirección de rotación que añade una función de corrección de la dirección de rotación a cada una de las unidades de predicción 1000 y a la unidad de cálculo de cuaternión diferencial 700 para eliminar un error de la dirección de rotación que se produce debido a un error en la codificación. Esta función se explicará con posterioridad.
El aparato de codificación/descodificación de acuerdo con la presente invención realiza la compresión de la información mediante el procesado de la información rotacional de entrada sobre un espacio de cuaternión. De manera más específica, la información rotacional que es introducida es expresada por medio de un vector de cuatro dimensiones, como el de la siguiente ecuación 17:
... (17)Información rotacional = (x_{i}, y_{i}, z_{i}, \theta_{i})^{T}
Donde el subíndice i denota la entrada i-ésima, (x_{i}, y_{i}, z_{i}, \theta_{i})^{T} denota un vector eje de rotación cuando se gira un objeto, y \theta denota un ángulo mediante el cual el objeto gira en sentido antihorario sobre el eje de rotación. El superíndice T denota la transposición para expresar un vector fila como un vector columna. Antes de la codificación, la unidad de conversión de cuaternión 620 convierte la información rotacional que está expresada en un formato de coordenadas rectangulares a un formato de cuaternión. El principio de convertir una información rotacional en un sistema de coordenadas rectangulares a un sistema de coordenadas de cuaternión es como el de la siguiente ecuación 18:
... (18)Q_{i} = (q_{i,0}, q_{i,1}, q_{i,2}, q_{i,3})^{T} = \left(cos \frac{\theta_{i}}{2}, x_{i} \ sen \ \frac{\theta_{i}}{2}, y_{i} \ sen \ \frac{\theta_{i}}{2}, z_{i} \ sen \ \frac{\theta_{i}}{2}\right)^{T}
Sin embargo, con el fin de convertir realmente los datos que se expresaron como la ecuación 18, son necesarios algunas etapas de procesamiento adicionales.
La figura 9 es un diagrama de bloques para explicar un ejemplo de la unidad de conversión de cuaternión 620.
Con referencia a la figura 9, la unidad de conversión de cuaternión 620 incluye una unidad de normalización del ángulo de rotación 621, una unidad de normalización del vector eje de rotación 622, una unidad de conversión de espacio de cuaternión 623, y una unidad de normalización de cuaternión 624.
La unidad de normalización del ángulo de rotación 621 normaliza un ángulo de rotación de información de valor de clave de entrada, y la unidad de normalización del vector de rotación 622 normaliza un vector eje de rotación. Esto es eliminar por adelantado un error que se puede incluir en la información de entrada. De manera más específica, la unidad de normalización del ángulo de rotación 621 normaliza la información del ángulo de rotación que se introduce, como en la siguiente ecuación 19:
... (19)\theta = \theta_{mod \ [-\pi, \ \pi]}
Esto es, el proceso de normalización del ángulo de rotación es para convertir la información del ángulo de rotación en un valor entre [-\pi, \pi]. Haciendo esto, se mantiene la información del ángulo de rotación a la vez que se simplifica el proceso del procesamiento.
La unidad de normalización del vector eje de rotación 622 es procesada como la siguiente ecuación 20:
\vskip1.000000\baselineskip
...(20)(x_{i}, y_{i}, z_{i})^{T} = \frac{1}{\sqrt{x^{2}_{i} + y^{2}_{i} + z^{2}_{i}}} \ (x_{i}, y_{i}, z_{i})^{T}
Esto es, el proceso de normalización del vector de rotación es hacer de un vector eje de rotación un vector unidad. La información rotacional de la que se han normalizado el ángulo de rotación y el vector eje de rotación como se ha descrito anteriormente, se convierte en un espacio cuaternión por medio de la ecuación 18. Después, la información de cuaternión convertida es expresada como un valor de cuaternión que tiene un tamaño unidad por medio de la unidad de normalización de cuaternión 624. El funcionamiento de la unidad de normalización de cuaternión es como el de la siguiente ecuación 21:
\vskip1.000000\baselineskip
... (21)Q = \frac{sgn \ (q_{0})}{\sqrt{q^{2}_{0} + q^{2}_{1} + q^{2}_{2} + q^{2}_{3}}} (q_{0}, q_{1},q_{2}, q_{3})^{T}
A continuación, la unidad de cálculo de cuaternión diferencial 700 obtiene un valor de cuaternión diferencial entre la información rotacional de entrada que es expresada en un valor de cuaternión y un valor de cuaternión que previamente es codificado y descodificado. La ecuación para obtener un valor de cuaternión diferencial es \tilde{Q} = Q - \hat{Q} = (q_{0} - \hat{q}_{0}, q_{1} - \hat{q}_{1}, q_{2} - \hat{q}_{2}, q_{3} - \hat{q}_{3})^{T} o \tilde{Q} = Q(\hat{Q})\text{*} como se ha descrito anteriormente. En la presente invención, la última ecuación se usa para obtener un valor de cuaternión diferencial.
Con referencia a la figura 8 de nuevo, la unidad de cuantificación 810 cuantifica el valor de cuaternión diferencial y la unidad de codificación de longitud variable 820 codifica con una longitud variable el valor cuantificado. En la presente invención, la unidad de codificación de longitud variable 820 usa un codificador aritmético adaptativo que generalmente es usado.
La unidad de cuantificación inversa 910 cuantifica de manera inversa el valor de cuaternión diferencial cuantificado. El valor cuantificado inverso se usa para generar un valor descodificado que se usa para codificar un siguiente valor de cuaternión de entrada. Mediante la multiplicación de cuaternión de la salida de la unidad de multiplicación de cuaternión 820 por la salida de la unidad de cuantificación inversa 910, y retardando después el resultado de la multiplicación de cuaternión en la unidad de retardo 930, se obtiene el valor codificado.
El funcionamiento de la unidad de multiplicación de cuaternión 920 se expresa como en la siguiente ecuación 22:
... (22)\hat{Q}_{i} \leftarrow \hat{\tilde{Q}}_{i}\hat{Q}_{i-1}
... (22)\hat{Q}_{i} = \hat{\tilde{Q}}_{i}\hat{Q}_{i-1}
Aquí, \hat{Q}_{i-1} denota un valor anteriormente descodificado que es proporcionado a la unidad de multiplicación de cuaternión 920 a través de la unidad de retardo 930, y \hat{\tilde{Q}}_{i-1} es el valor de salida de la unidad de cuantificación inversa 910 que se proporciona a la unidad de multiplicación de cuaternión 920. La salida de la unidad de multiplicación de cuaternión 920 es un valor de cuaternión descodificado. Aquí, el valor de cuaternión descodificado puede sacarse como un valor de información rotacional que es descodificado.
La unidad de predicción 1000 mejora la eficiencia de la descodificación. Esto es, en el proceso en el que la unidad de cálculo de cuaternión diferencial 700 recibe la salida de la unidad de retardo 930 y obtiene un cuaternión diferencial, la unidad de predicción 1000 compacta la distribución de valores de cuaternión diferenciales de forma que se mejora la eficiencia de la compresión de la información en la unidad de cuantificación 810 y la unidad de codificación de longitud variable 820. También, la unidad de predicción de la presente realización proporciona una función para controlar el orden de predicción.
La figura 10 es un diagrama de bloques detallado de la unidad de predicción 1000.
Con referencia a la figura 10, el orden de predicción de recepción \beta, la unidad de predicción 1000 genera un valor predictivo como en la siguiente ecuación:
...(23)\hat{Q'}_{i} = \{\hat{Q}_{i-1} (\hat{Q'}_{i-2})\text{*}\}\hat{Q}_{i-1}
Esto es, un valor obtenido mediante el giro del objeto a partir del valor anteriormente descodificado \hat{Q}_{i-1} a {\hat{Q}_{i-1}, (\hat{Q'}_{i-2})\text{*}} se usa como el valor predictivo para un valor de cuaternión que es introducido en el momento actual.
También, la unidad de predicción 1000 controla el orden de predicción a través del siguiente procedimiento. En el control del orden de la predicción, una señal que indica el orden de la predicción pasa a través de una unidad de control de la ganancia de la rotación 1040. Un bloque formado por una unidad de retardo 1030, una unidad de cálculo de la diferencia de la rotación de cuaternión 1020, y la unidad de control de ganancia de rotación 1040 realiza la operación de la ecuación 23, y un multiplicador de cuaternión 1050 saca el resultado de la operación realizada por el bloque.
En este momento, si se aplica un orden predictivo \beta, se realiza el funcionamiento de la unidad de control de la ganancia de rotación 1040 y la operación de control de la ganancia se expresa como en la siguiente ecuación 24:
... (25)Q_{p} = \left(\sqrt{1- \beta^{2} (1-q_{0})^{2}}, \beta q_{1}, \beta q_{2}, \beta q_{3}\right)^{T}
Aquí, si \beta = 1, Q_{p} = (q_{0}, q_{1}, q_{2}, q_{3},)^{T}, y si \beta = 0, Q_{p} = (1,0,0,0)^{T}. Por lo tanto, si \beta = 0, la unidad de multiplicación de cuaternión 1050 saca la salida de la unidad de retardo 930 sin cambios, de forma que la salida de la unidad de predicción 1000 de la figura 10 es la misma que la salida de la salida de la unidad de retardo 930. Si \beta = 1, el funcionamiento de la unidad de multiplicación de cuaternión 1050 es la multiplicación de la salida de la unidad de retardo 930 por la salida de la unidad de cálculo de la diferencia de rotación de cuaternión 1020, de forma que la salida de la unidad de predicción 1000 sea la misma que el valor de predicción de la ecuación 23. De esta forma, usando el orden de predicción \beta desde \beta = o a \beta = 1, el valor de salida de la unidad de predicción 1000 se puede cambiar de manera continua. En conclusión, la unidad de predicción 1000 proporcionada en la presente realización tiene la función de control del orden de la predicción, y por lo tanto, el aparato de codificación para un nodo interpolador de la orientación de acuerdo con la presente invención tiene la función de control del orden de la predicción.
La unidad de eliminación de trama de clave 650 elimina las tramas de clave dentro de un límite de error permisible, usando la similitud en la transformación rotacional con respecto a los cambios continuos en el tiempo. La unidad de eliminación de trama de clave 650 realiza una cuantificación binaria relativamente alta para cada trama de clave, mientras elimina las tramas de clave con el fin de que haya una influencia menor en la degradación de la calidad visual. Por lo tanto, una unidad de eliminación de la trama de clave 650 genera datos similares a los datos de las técnicas primeras a la vez que mantiene una mejor calidad.
Las figuras 16 a la 21 son diagramas de referencia para explicar un proceso para eliminar una trama de clave mediante la unidad de eliminación de trama de clave 650.
La etapa 1: Con referencia a la figura 16, un punto negro indica los valores de clave (= Q_{0}, Q_{1}, Q_{2}, ..., Q_{n}) de cada trama de clave con respecto a n+1 puntos de tiempo sobre el trayecto de animación original.
La etapa 2: Como se muestra en la figura 17, se seleccionan primero dos tramas de clave (= Q_{0}, Q_{n}) correspondientes a los dos extremos del trayecto de la animación de entre las tramas de clave sobre el trayecto de la animación. Los puntos seleccionados se muestran como puntos en blanco.
La etapa 3: Como se muestra en la figura 18, se selecciona una trama de clave de entre las tramas exceptuando las dos tramas de clave de los extremos seleccionadas. En este momento, el número de procedimientos para seleccionar una trama de clave es (n-1). La figura 18 muestra un ejemplo en el que se seleccionan dos candidatas y se marcan por medio de líneas oblicuas. A continuación, usando las tres tramas de clave seleccionadas totales (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 se hayan seleccionado.
La etapa 4: Mediante la comparación del trayecto de animación original con los (n-1) trayectos interpolados, se selecciona un trayecto de animación que tenga en menor error de trayecto y se selecciona una nueva trama de clave a partir del trayecto de animación seleccionado. El error entre trayectos se obtiene mediante el uso de un error promedio E_{m} descrito anteriormente.
La etapa 5: La figura 19 muestra un ejemplo en el que se selecciona el trayecto del candidato 2.
La etapa 6: Como se muestra en la figura 20, se selecciona una trama de clave de entre las tramas exceptuando las tres tramas de clave seleccionadas... Después, se realizan los pasos 3 y 4.
La etapa 7: La figura 21 muestra un ejemplo en el que se selecciona el trayecto del candidato 1.
La etapa 8: Se realizan de manera repetitiva las etapas 6 y 7 hasta que el error promedio sea menor que un error permisible.
Mientras tanto, se explica a continuación un proceso para obtener el error promedio E_{m}. Un error de codificación se define como un ángulo de rotación diferencial en una transformación de rotación diferencial de una información de rotación original y una informació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 por medio 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 que \theta \in [-\pi, \pi] cuando se realiza una transformación rotacional desde una posición arbitraria \vec{x} a \vec{y} e \vec{y}' sobre un espacio de tres dimensiones por medio de (\vec{r}, \theta) y (\vec{r}', \theta'), se calcula un error que se produce se calcula como la diferencia entre \vec{y} e \vec{y}'. Esto hace la relación \vec{e}(x) = \vec{y} - \vec{y}' de un vector error de codificación \vec{e}(x). En la expresión de cuaternión, X, Y e Y' están definidas como en las siguientes ecuaciones 25:
6
Si (\vec{r}, \theta) y (\vec{r}', \theta') que representan una información rotacional se expresan en un espacio de cuaternión y se hace referencia a los mismos como Q y Q' respectivamente, se derivan las siguientes ecuaciones 26:
Y = Q * X * Q\text{*}
... (26)X = Q\text{*} * Y * Q
En las que A*B indica la multiplicación de cuaternión y A^{*} denota al conjugado de A. Por lo tanto, se deriva la siguiente ecuación 27:
... (27)Y' = Q' * X * Q'\text{*} = Q' * Q\text{*} * Y * Q * Q'\text{*} = Q'' * Y * Q''\text{*}
Donde Q'' es un valor para indicar la relación de transformación rotacional entre \vec{y} e \vec{y}', y se define como la siguiente ecuación 28:
... (28)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 29 como la siguiente:
...(29)\theta'' = 2 \ cos^{-1} q_{0}'' = 2 \ cos^{-1} (Q' \cdot Q), \theta'' \in [0,\pi], q_{0}'' = Q' \cdot Q,
(\cdot indica la operación producto interior).
La ecuación 29 indica un error de codificación instantáneo que ocurre en un momento predeterminado entre todas las tramas de clave de animación. Con el fin de derivar una ecuación para obtener un error de codificación de todos los intervalos de animación, la ecuación 29 se puede expresar por medio de un error de codificación instantáneo en un momento predeterminado t como en la siguiente ecuación 30:
... (30)e(t) = 2 arccos {Q(t) \cdot Q'(t)}
Si la ecuación 30 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 31:
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 32:
100
Mientras tanto, como 4 arccos^{2} Q(t) \cdot Q'(t) = \phi^{2} (\alpha), t = t_{i-1} + \alpha(t_{i}-t_{i-1}) se puede derivar la siguiente ecuación 33:
... (33)E^{i}_{m} = (t_{i} - t_{i-1}) \int^{1}_{0} \phi^{2} \ (t) dt
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 34:
\phi(\alpha) \cong \phi (0) + \alpha \{\phi(1) - \phi(0)\}
... (34)\phi^{2} (\alpha) \cong \phi^{2} (0) + \alpha^{2} \{\phi(1) - \phi (0)\}^{2} + 2\alpha \phi \{\phi(1) - \phi(0)\}
Aquí, cos \frac{\phi(0)}{2} = Q(t_{i-1}) \cdot Q'(t_{i-1}), y cos \frac{\phi(1)}{2} = Q(t_{i}) \cdot Q'(t_{i}).
Usando la función aproximada, la suma parcial E_{m}' se puede obtener como la siguiente ecuación 35:
... (35)E'_{m} \cong \frac{1}{3} (t_{i} - t_{i-1})\{\phi^{2}(0) + \phi^{2}(1) + \phi(0)\phi(1)\}
La ecuación 32 se puede escribir como la siguiente ecuación 36:
... (36)E'_{m} \cong \frac{4}{3} (t_{i} - t_{i-1}) [arccos^{2} (Q(t_{i-1}) \cdot Q'(t_{i-1})) + arccos^{2} (Q(t_{i}) \cdot Q'(t_{i})) arccos (Q(t_{i-1}) \cdot Q'(t_{i-1})) arccos (Q(t_{i}) \cdot Q'(t_{i}))]
También, la suma parcial E_{m}' se puede sumar a todos los intervalos [t_{0}, t_{L}] y el error medio E_{m} se obtiene como la siguiente ecuación 37:
... (37)E_{m} \cong \sqrt{\frac{1}{t_{L} - t_{0}} \sum\limits^{L}_{i=1} E^{i}_{m}}
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 38:
101
\newpage
Usando la función de aproximación descrita anteriormente, E_{p}^{i} se puede aproximar usando la siguiente ecuación 39:
... (39)E^{i}_{p} \cong max{\phi(0), \phi(1)} = max {2| arccos(Q(t_{i-1}) \cdot Q' (t_{i-1})) |, 2| arccos(Q(t_{i}) \cdot Q'(t_{i}))|}
El error máximo E_{p} en todos los intervalos [t_{0}, t_{L}] se expresa como la siguiente ecuación 40:
102
La figura 12 es un diagrama en el que el cálculo para obtener el valor de rotación diferencial entre dos cuaterniones descritos anteriormente se forma como un macrobloque.
Con referencia a la figura 12, se explicará a continuación el principio para obtener un valor de rotación diferencial. Suponiendo que un valor de base es D200 y que un valor de rotación es D300 en los dos valores de entrada de cuaternión, se realiza una operación D130 para obtener el conjugado del valor de base, se realiza la multiplicación D110 por el valor de rotación, se realiza la normalización de cuaternión D120 y después se saca el resultado. Este cálculo para obtener el valor diferencia de cuaternión se usa de manera frecuente en la presente realización y cada parte que necesita el procesamiento de cuaternión y por lo tanto es conveniente considerarla como un solo macrobloque.
La figura 15 es un diagrama de referencia para explicar un error de dirección de rotación en la codificación de cuaternión usando una rotación diferencial. El error de dirección de rotación ocurre porque la codificación de cuaternión es una codificación con pérdidas.
Con referencia a la figura 15, suponiendo que Q_{i} denota la posición del objeto en base a la información rotacional que es introducida en el momento presente, y que Q_{i-1} denota la posición previa del objeto, la relación de las dos posiciones se puede expresar por medio de 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 es en área 1 ó en área 3, es decir, la posición actual Q_{i} cae sobre el arco en el área 1 ó en el área 3, el objeto gira 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 la posición Q_{i} a través del arco más corto y la relación de las dos posiciones es en área 2 ó en área 4, es decir, la posición actual Q_{i} cae sobre el arco en el área 2 ó en el área 4, el objeto gira en el sentido de las agujas del reloj desde la posición Q_{i-1} a la posición Q_{i} . Si el objeto gira de acuerdo con la información rotacional que está codificada y descodificada, la unidad de descodificación gira el objeto usando dos valores: la información descodificada \hat{Q}_{i-1} correspondiente a la información rotacional original Q_{i-1}, y \hat{Q}_{i} correspondiente a Q_{i}. Por lo tanto, con referencia de nuevo a la figura 15, la posición de \hat{Q}_{i} respecto de \hat{Q}_{i-1} está en área 2 y en área 3, el objeto gira en el sentido contrario a las agujas del reloj, y si la posición está en área 1 y en área 4, el objeto gira en el sentido de las agujas del reloj. De esta forma, la rotación del objeto usando la información rotacional original y la rotación del objeto usando la información rotacional descodificada provoca la dirección contraria en el caso de área 1 y área 2. Esto es porque en la codificación de cuaternión, se realiza la codificación con pérdidas y Q_{i} no es la misma que \hat{Q}_{i} . Esto ocurre de manera inevitable en la codificación con pérdidas. Como el área 1 y el área 2 son áreas esenciales, se necesita una operación para eliminar la rotación inversa o para hacer que la dirección de la rotación sea la misma que la dirección original. En la presente realización, se adopta el último funcionamiento.
Brevemente, la explicación de la función de corrección de la dirección de rotación, con referencia a la figura 15, 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 13 y 14 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 las figuras 13 y 14, una unidad de cálculo de error de la dirección de rotación 750 y una unidad de determinación 760 detectan el caso del área 1. Como se muestra en la figura 14, la unidad de cálculo de error de la dirección de rotación 750 incluye las unidades de cálculo de diferencia de rotación de cuaternión 752, 753 y 754 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: 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: 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: 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 760 determina si cae sobre el arco en el área 1 como se explicó en la figura 15, usando tres valores de rotación diferencial A, B y C. Si es el caso del área 1, la unidad de determinación 780 selecciona una entrada desde la unidad de saturación de dirección de la rotación 770 para fijar la dirección de rotación a un valor saturado, de forma que la dirección de rotación se corrija al mismo valor que la dirección original. Si no es el caso del área 1, la unidad de determinación 780 selecciona una entrada desde la unidad de cálculo de diferencia de cuaternión 740 de forma que la función de corrección de la dirección de rotación no realiza nada. 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 cuatificación 805. A continuación se explicará en detalles el principio del funcionamiento de la unidad de determinación 760. La unidad de determinación 760 incluye cinco unidades de determinación, y saca el resultado de la función lógica "AND" de cinco salidas de valores lógicos. Cinco operaciones lógicas incluidas en la unidad de determinación 760 son de la siguiente manera:
Expresión lógica A
\vskip1.000000\baselineskip
8
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Aquí, si el valor de rotación diferencial A de la figura 14 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 14.
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
\vskip1.000000\baselineskip
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 14.
14 indica un vector tridimensional formado por tres elementos excepto el primer elemento en el valor de rotación diferencial C de la figura 14.
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".
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 14, 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 14, 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 14, 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 a un valor cercano a 0 (por ejemplo, 0,02) y se puede fijar en un valor apropiado dependiendo de una operación real.
Si se realiza la operación "AND" para los cinco valores lógicos obtenidos, como en la siguiente ecuación 41, se genera la salida de la unidad de determinación 760 de la figura 13.
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) ... (41).
Si el valor lógico de la ecuación 41 es "verdadero", la unidad de selección 780 recibe la salida de la unidad de saturación de la dirección de rotación 770 y saca la señal recibida. Si el valor lógico es "falso", la unidad de selección 780 recibe la salida de la unidad de cálculo de la diferencia de cuaternión 740 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 770. Con referencia de nuevo a la figura 15, 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 rotacional 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 770 hace que el objeto gire desde \hat{Q}_{i} en una dirección que es la misma que la dirección original, esto es, en una direcció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 770 fija nueva información de rotación con la que el objeto puede girar a una posición cercana a 180 grados desde \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 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 42:
16
donde (q_{p,0}, q_{p,1}, q_{p,2}, q_{p,3})^{T} indica la salida del valor de ajuste de la ganancia de rotación de la figura 13, (q_{R,0}, q_{R,1}, q_{R,2}, q_{R,3})^{T} indica el valor de salida de la unidad de cálculo de diferencia de cuaternión 740, y \delta_{T} es un valor cercano a 0 (por ejemplo, 0,001) y se determina con respecto a la precisión del aparato de codificación.
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 temporal 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 eliminando la información adicional para los elementos.

Claims (8)

1. Un aparato de codificación para los datos del nodo interpolador de la orientación teniendo datos de campo que proporciona la información rotacional de un objeto en un espacio de tres dimensiones, comprendiendo el aparato de codificación lo siguiente:
una unidad de conversión de cuaternión (620) para convertir los valores de clave de un elemento de los datos de campo en información de un espacio cuaternión, incluyendo el elemento de los datos de campo una clave que indica información que especifica un instante en el que ocurre un cambio en el movimiento rotacional, y valores de clave que indican información de rotación correspondiente al instante;
una unidad de cálculo de cuaternión diferencial (700) para generar un valor diferencial entre el valor de cuaternión y un valor de cuaternión de predicción;
una unidad de cuantificación (810) configurada para cuantificar la salida del valor diferencial proveniente de la unidad de cálculo de cuaternión diferencial;
una unidad de codificación de longitud variable (820) configurada para codificar con una longitud variable la salida del valor diferencial cuantificado proveniente de la unidad de cuantificación;
una unidad de cuantificación inversa (910) configurada para cuantificar de manera inversa el valor diferencial cuantificado;
una unidad de multiplicación de cuaternión (920) configurada para multiplicar el valor diferencial proveniente de la unidad de cuantificación inversa por un valor diferencial anterior para obtener un valor de cuaternión;
una unidad de retardo (930) configurada para retardar el valor de cuaternión; y
una unidad de predicción (1000) configurada para generar el valor de cuaternión de predicción en base al valor de cuaternión retardado y para controlar la generación del valor de cuaternión de predicción usando un valor de control del orden de predicción (\beta).
2. El aparato de codificación de la reivindicación 1, en el que la unidad de predicción (1000) comprende:
una unidad de cálculo de la diferencia de la rotación de cuaternión (1020) configurada para generar un valor diferencial en base al valor de cuaternión retardado proveniente de la unidad de retardo;
una unidad de control de la ganancia de rotación (1040) configurada para realizar la operación de control de la ganancia usando la siguiente ecuación que usa el orden de predicción \beta y el valor diferencial proveniente de la unidad de cálculo de la diferencia de rotación de cuaternión; y
Q_{p} = (\sqrt{1 - \beta^{2} (1 - q_{0})^{2}}, \ \beta q_{1}, \ \beta q_{2}, \ \beta q_{3})^{T}
un multiplicador de cuaternión (1050) configurado para multiplicar la entrada del valor de cuaternión retardado proveniente de la unidad de retardo por la salida de la unidad de cálculo de diferencia de rotación de cuaternión.
3. El aparato de codificación de la reivindicación 1, en el que la unidad de cálculo de cuaternión diferencial comprende:
una unidad de saturación de la dirección de rotación (770) configurada para corregir la dirección rotacional para fijar la dirección de rotación en un valor saturado de forma que la dirección de rotación se corrija al mismo valor que la dirección original.
4. El aparato de codificación de la reivindicación 1, comprendiendo de manera adicional una unidad de eliminación de la trama de clave (650) para eliminar una trama de clave correspondiente a una clave y valor de clave dentro de un límite de error permisible; usando la similitud en la transformación rotacional con respecto a cambios de tiempo continuos.
5. Un procedimiento de codificación para los datos de un nodo interpolador de la orientación teniendo datos de campo que proporcionan información rotacional de un objeto en un espacio de tres dimensiones, comprendiendo el procedimiento de codificación:
la conversión de los valores de clave de los datos de campo que incluye una clave que indica la información acerca de un instante en el que ocurre un cambio en el movimiento rotacional, y valores de clave que indican la información rotacional correspondiente al instante, dentro de la información de un espacio de cuaternión;
el cálculo de un valor diferencial entre un valor de cuaternión y un valor de cuaternión de predicción;
la cuantificación del valor diferencial cuantificado;
la codificación de longitud variable del valor diferencial cuantificado;
la cuantificación inversa del valor diferencial cuantificado;
la multiplicación del valor cuantificado inverso por un valor diferencial anterior para obtener un valor de cuaternión;
el retardo del valor de cuaternión; y
la generación del valor de cuaternión de predicción a partir del valor de cuaternión retardado y el control del valor de cuaternión de predicción usando un orden de predicción \beta.
6. El procedimiento de codificación de la reivindicación 5, en el que la predicción comprende:
el cálculo de un valor diferencial en base al valor de cuaternión retardado;
la realización de la operación de control de la ganancia se expresa como en la siguiente ecuación usando el orden de predicción \beta y el valor diferencial calculado; y
Q_{p} = (\sqrt{1 - \beta^{2} (1 - q_{0})^{2}}, \ \beta q_{1}, \ \beta q_{2}, \ \beta q_{3})^{T}
la multiplicación del valor de cuaternión retardado por el valor diferencial calculado.
7. El procedimiento de codificación de la reivindicación 5, en el que el cálculo del cuaternión diferencial comprende:
la corrección de la dirección de rotación para fijar la dirección de rotación en un valor saturado de forma que la dirección de rotación se corrija al mismo valor que la dirección original.
8. El procedimiento de codificación de la reivindicación 5, comprendiendo además una trama de clave correspondiente a clave y a un valor de clave dentro de un límite de error permisible usando la similitud en la transformación rotacional con respecto a cambios continuos de tiempo.
ES01308905T 2000-10-20 2001-10-19 Aparato y procedimiento de codificacion/descodificacion para datos de nodo interpolador de la orientacion. Expired - Lifetime ES2248245T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20000061985 2000-10-20
KR2000061985 2000-10-20
KR1020010040706A KR100612828B1 (ko) 2000-10-20 2001-07-07 오리엔테이션 보간 노드의 부호화 장치 및 방법
KR2001040706 2001-07-07

Publications (1)

Publication Number Publication Date
ES2248245T3 true ES2248245T3 (es) 2006-03-16

Family

ID=36101286

Family Applications (1)

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

Country Status (8)

Country Link
US (2) US6529086B2 (es)
EP (1) EP1199895B1 (es)
JP (1) JP3521411B2 (es)
CN (1) CN1179570C (es)
CA (1) CA2359519C (es)
DE (1) DE60113358T2 (es)
ES (1) ES2248245T3 (es)
RU (1) RU2224291C2 (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829296B1 (en) * 2000-09-20 2004-12-07 Mindspeed Technologies, Inc. Spectrally flat time domain equalizer and methods
ES2248245T3 (es) * 2000-10-20 2006-03-16 Samsung Electronics Co., Ltd. Aparato y procedimiento de codificacion/descodificacion para datos de nodo interpolador de la orientacion.
US7206457B2 (en) * 2001-11-27 2007-04-17 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding key value data of coordinate interpolator
US7809204B2 (en) * 2002-10-18 2010-10-05 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding key value data of coordinate interpolator
DE10334064B3 (de) * 2003-07-25 2005-04-14 Infineon Technologies Ag Verfahren und Schaltungsanordnung zum Kalibrieren eines den Abtastzeitpunkt eines Empfangssignals beeinflussenden Abtastungssteuersignales eines Abtastphasenauswahlelements
WO2006022708A2 (en) * 2004-08-11 2006-03-02 Pixar Animation spline scaling and stacking method and apparatus
JP2010526710A (ja) * 2007-05-14 2010-08-05 エフエーファウ、モートーレンテヒニーク、ゲゼルシャフト、ミット、ベシュレンクテル、ハフツング 自動車用のハイブリッド駆動装置の操作のための方法、並びに2つの伝動装置を有するハイブリッド駆動装置
US8624898B1 (en) 2009-03-09 2014-01-07 Pixar Typed dependency graphs
KR101685922B1 (ko) * 2010-04-05 2016-12-13 삼성전자주식회사 가상 세계 처리 장치 및 방법
ES2716933T3 (es) * 2011-06-28 2019-06-18 Nec Corp Decodificación de un parámetro de cuantificación de vídeo
DE102012021623B4 (de) * 2012-11-06 2021-03-04 Otto-Von-Guericke-Universität Magdeburg Vorrichtung und Verfahren zur Kalibrierung von Trackingsystemen in Bildgebungssystemen

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8603880D0 (en) * 1986-02-17 1986-03-26 Indep Broadcasting Authority Hybrid interpolative predictive code
US4797836A (en) * 1986-11-19 1989-01-10 The Grass Valley Group, Inc. Image orientation and animation using quaternions
GB2252001B (en) * 1991-01-11 1995-01-04 Sony Broadcast & Communication Storage of video signals
US5111292A (en) * 1991-02-27 1992-05-05 General Electric Company Priority selection apparatus as for a video signal processor
US5122875A (en) * 1991-02-27 1992-06-16 General Electric Company An HDTV compression system
US5168356A (en) * 1991-02-27 1992-12-01 General Electric Company Apparatus for segmenting encoded video signal for transmission
US5210770A (en) * 1991-09-27 1993-05-11 Lockheed Missiles & Space Company, Inc. Multiple-signal spread-spectrum transceiver
CA2144253C (en) * 1994-04-01 1999-09-21 Bruce F. Naylor System and method of generating compressed video graphics images
WO1997017797A2 (en) * 1995-10-25 1997-05-15 Sarnoff Corporation Apparatus and method for quadtree based variable block size motion estimation
KR100294928B1 (ko) * 1998-11-28 2001-07-12 윤종용 2차원 또는 3차원 메쉬정보 중의 특성정보 부호화장치 및 그방법
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
ES2248245T3 (es) * 2000-10-20 2006-03-16 Samsung Electronics Co., Ltd. Aparato y procedimiento de codificacion/descodificacion para datos de nodo interpolador de la orientacion.
US6559848B2 (en) * 2000-12-13 2003-05-06 Intel Corporation Coding and decoding three-dimensional data

Also Published As

Publication number Publication date
CA2359519C (en) 2004-07-20
DE60113358D1 (de) 2005-10-20
CN1367617A (zh) 2002-09-04
DE60113358T2 (de) 2006-06-22
EP1199895A2 (en) 2002-04-24
EP1199895B1 (en) 2005-09-14
EP1199895A3 (en) 2003-07-16
US20020070818A1 (en) 2002-06-13
US20030103576A1 (en) 2003-06-05
JP2002232885A (ja) 2002-08-16
RU2224291C2 (ru) 2004-02-20
US6529086B2 (en) 2003-03-04
US6850572B2 (en) 2005-02-01
JP3521411B2 (ja) 2004-04-19
CN1179570C (zh) 2004-12-08
CA2359519A1 (en) 2002-04-20

Similar Documents

Publication Publication Date Title
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
ES2261353T3 (es) Aparato y procedimiento de codificacion para nodo interpolador de la orientacion.
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.
ES2417529T3 (es) Aparato y procedimiento de codificación para nodo interpolador de orientación
JP3894605B2 (ja) 輪郭線近似化方法及び輪郭線符号化装置
JPH114342A (ja) 画像処理装置
JP2004007393A (ja) 回転インタポレータのキー値データ符号化/復号化方法、及び装置
JP4629014B2 (ja) 位置インタポレータの符号化/複合化方法、及び装置
KR100219157B1 (ko) 임의 형태 물체의 부호화/복호화 방법 및 그 장치
JP3233186B2 (ja) 動画像符号化・復号方法および装置
JPH01173974A (ja) 画像符号化方式