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
Links
- 238000000034 method Methods 0.000 title claims description 80
- 230000033001 locomotion Effects 0.000 claims abstract description 36
- 238000004364 calculation method Methods 0.000 claims abstract description 33
- 238000006243 chemical reaction Methods 0.000 claims abstract description 33
- 238000011002 quantification Methods 0.000 claims abstract description 23
- 230000002441 reversible effect Effects 0.000 claims abstract description 10
- 230000008859 change Effects 0.000 claims abstract description 8
- 230000003111 delayed effect Effects 0.000 claims abstract description 8
- 230000009466 transformation Effects 0.000 claims description 13
- 238000012937 correction Methods 0.000 claims description 7
- 229920006395 saturated elastomer Polymers 0.000 claims description 3
- 238000013139 quantization Methods 0.000 abstract description 9
- 239000013598 vector Substances 0.000 description 28
- 230000014509 gene expression Effects 0.000 description 23
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000000007 visual effect Effects 0.000 description 12
- 238000010606 normalization Methods 0.000 description 11
- 238000007906 compression Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008030 elimination Effects 0.000 description 4
- 238000003379 elimination reaction Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000005259 measurement Methods 0.000 description 3
- 238000013144 data compression Methods 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/25—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods 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.
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.
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.
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.
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:
\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
\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:
Mientras tanto, \vec{x}, \vec{y} e
\vec{y} están definidos en un espacio de cuaternión como:
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)
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:
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:
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:
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:
[t_{i-1}, t_{i}], que se obtiene mediante la siguiente ecuación 38:
\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:
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
\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.
Expresión lógica
B
\vskip1.000000\baselineskip
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.
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:
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.
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)
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)
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 |
-
2001
- 2001-10-19 ES ES01308905T patent/ES2248245T3/es not_active Expired - Lifetime
- 2001-10-19 US US09/981,802 patent/US6529086B2/en not_active Expired - Lifetime
- 2001-10-19 RU RU2001128437A patent/RU2224291C2/ru not_active IP Right Cessation
- 2001-10-19 DE DE2001613358 patent/DE60113358T2/de not_active Expired - Fee Related
- 2001-10-19 CN CNB011457813A patent/CN1179570C/zh not_active Expired - Fee Related
- 2001-10-19 EP EP20010308905 patent/EP1199895B1/en not_active Expired - Lifetime
- 2001-10-19 CA CA 2359519 patent/CA2359519C/en not_active Expired - Fee Related
- 2001-10-22 JP JP2001323458A patent/JP3521411B2/ja not_active Expired - Fee Related
-
2003
- 2003-01-07 US US10/337,264 patent/US6850572B2/en not_active Expired - Fee Related
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) | 画像符号化方式 |