Procedimiento y aparato para codificar y decodificar un interpolador de orientación.
Un aparato para la codificación de un interpolador de orientación usado en la animación de fotogramas claves de un objeto en 3D,
incluyendo el interpolador de orientación datos de claves que indican las localizaciones de los fotogramas claves sobre un eje temporal y datos de valores de claves que indican la rotación del objeto en las localizaciones temporales indicadas por los datos de claves a lo largo de una primera trayectoria de animación, comprendiendo el aparato: un extractor de puntos de ruptura (42, 46, 48) que está dispuesto para extraer, a partir de la entrada de orientación dentro del extractor de puntos de ruptura que definen el movimiento del objeto en 3D a lo largo de una primera trayectoria de animación, los datos de claves y los datos de valores de claves en un número mínimo de puntos de ruptura a lo largo del eje temporal, que pueden lograr un error no mayor que un límite de error predeterminado entre los datos de valores de claves a lo largo de la primera trayectoria de animación y los datos de valores de claves a lo largo de una segunda trayectoria de animación, en el que la segunda trayectoria de animación es la trayectoria de animación definida por los datos de claves extraídos y los datos de valores de claves en los puntos de ruptura extraídos. un codificador de datos de valores de claves (200) que está dispuesto para codificar la entrada de datos de claves extraídos a partir del extractor de puntos de ruptura; y un codificador de datos de valores de claves (300) que está dispuesto para codificar la entrada de datos de valores de claves extraídos a partir del extractor de puntos de ruptura generando los datos diferenciales rotacionales; en el que el codificador de valores de claves (300) comprende: un generador de datos diferenciales rotacionales (1300) que genera, usando un valor de la transformación rotacional de un fotograma clave actual y un valor de la transformación rotacional restaurada de un fotograma clave anterior, un valor diferencial rotacional usado para girar el objeto tanto como la diferencia entre la transformación rotacional aplicada al objeto en el fotograma clave actual por los datos de valores de claves y la transformación rotacional aplicada al objeto en el fotograma clave anterior por los datos de valores de claves, y saca los datos diferenciales rotacionales por la cuantización de los valores diferenciales rotacionales; y un codificador de entropía (1450) que codifica en entropía los datos diferenciales rotacionales.
Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E02258162.
Solicitante: SAMSUNG ELECTRONICS CO., LTD..
Nacionalidad solicitante: República de Corea.
Dirección: 416, MAETAN-DONG, PALDAL-GU SUWON-CITY, KYUNGKI-DO REPUBLICA DE COREA.
Inventor/es: KIM, DO-KYOON, JUNG, SEOK-YOON, WOO, SANG-OAK, LEE,SHIN-JUN, HAN,MAHN-JIN, Jang,Euee-seon, Jang,Gyeong-ja.
Fecha de Publicación: .
Clasificación Internacional de Patentes:
- G06F17/22
- G06F7/38 FISICA. › G06 CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 7/00 Métodos o disposiciones para el procesamiento de datos actuando sobre el orden o el contenido de los datos tratados (circuitos lógicos H03K 19/00). › Métodos o disposiciones para efectuar cálculos utilizando exclusivamente una representación numérica codificada, p. ej. utilizando una representación binaria, ternaria, decimal.
- G06T15/00 G06 […] › G06T TRATAMIENTO O GENERACIÓN DE DATOS DE IMAGEN, EN GENERAL. › Interpretación de imagines 3D [Tridimensionales].
- G06T15/70
- G06T9/00 G06T […] › Codificación de imagen, (reducción del ancho de banda o de la redundancia para imagenes estáticas H04N 1/41; codificación o descodificación de señales de imagenes de color estáticas H04N 1/64; métodos o disposiciones para la codificación, descodificación, compresión o descompresión de señales de video digital H04N 19/00).
- H03M7/30 ELECTRICIDAD. › H03 CIRCUITOS ELECTRONICOS BASICOS. › H03M CODIFICACION, DECODIFICACION O CONVERSION DE CODIGO, EN GENERAL (por medio de fluidos F15C 4/00; convertidores ópticos analógico/digitales G02F 7/00; codificación, decodificación o conversión de código especialmente adaptada a aplicaciones particulares, ver las subclases apropiadas, p. ej. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; cifrado o descifrado para la criptografía o para otros fines que implican la necesidad de secreto G09C). › H03M 7/00 Conversión de un código, en el cual la información está representada por una secuencia dada o por un número de dígitos, en un código en el cual la misma información está representada por una secuencia o por un número de dígitos diferentes. › Compresión (análisis-síntesis de la voz para reducción de redundancia G10L 19/00; para transmisión de imágenes H04N ); Expansión; Supresión de datos innecesarios, p. ej. reducción de redundancia.
- H03M7/36 H03M 7/00 […] › Conversión en, o a partir de una modulación diferencial de varios bits, es decir, la diferencia entre muestras sucesivas está codificada por más de un bit.
- H03M7/40 H03M 7/00 […] › Conversión en, o a partir de códigos la longitud variable, p. ej. código Shanno-Fano, código Huffman, código Morse.
- H03M7/48 H03M 7/00 […] › alternativamente con otros códigos durante el proceso de conversión, p. ej. siendo realizada la codificación de coordenada diferencial únicamente en tanto que series de dígitos, del mismo tipo, de longitud suficiente están presentes.
- H04N7/24 H […] › H04 TECNICA DE LAS COMUNICACIONES ELECTRICAS. › H04N TRANSMISION DE IMAGENES, p. ej. TELEVISION. › H04N 7/00 Sistemas de televisión (detalles H04N 3/00, H04N 5/00; métodos y arreglos, para la codificación, decodificación, compresión o descompresión de señales de vídeo digital H04N 19/00; distribución selectiva de contenido H04N 21/00). › Sistemas para la transmisión de señales de televisión que utilizan la modulación por impulsos codificados (H04N 21/00 tiene prioridad).
- H04N7/26
- H04N7/32
- H04N7/36
PDF original: ES-2381777_T3.pdf
Fragmento de la descripción:
Procedimiento y aparato para codificar y decodificar un interpolador de orientación La presente invención se refiere a un procedimiento y un aparato para la codificación y decodificación de datos de animación tridimensionales, y más particularmente, a un procedimiento y un aparato para la codificación y decodificación de un interpolador de orientación que representa información sobre la rotación de un objeto en animación.
MPEG-4 BIFS, que es una de las normativas multimedia internacionales, soporta una animación basada en fotogramas clave usando un nodo interpolador que tiene las claves y los valores de claves de una animación.
Para representar la animación de forma natural y con suavidad siempre que sea posible usando tal técnica de animación basada en fotogramas clave, se requiere un número considerable de claves y una cantidad considerable de datos de valores de claves, y los datos de campo entre los fotogramas clave se rellenan por interpolación. La interpolación en un lenguaje de modelado de realidad virtual (VRML) involucra una interpolación lineal o esférica.
Las claves y los valores de las claves aproximan una curva de animación original sobre un eje temporal. La FIG. 1 es un diagrama que ilustra las trayectorias de dos dimensiones de los datos de animación, representados por un nodo interpolador de orientación, de acuerdo con el paso del tiempo sobre la superficie de una esfera tridimensional. Como se muestra en la FIG. 1, la normativa MPEG-4 BIFS convencional soporta la interpolación lineal esférica entre fotogramas clave y una trayectoria de animación parece similar a un conjunto de segmentos que representan la variación de los datos de animación.
En un nodo interpolador de orientación proporcionado por BIFS, los datos de claves indican un momento predeterminado de tiempo sobre un eje temporal donde está localizada una animación usando números discontinuos entre -0 y + 0. Los datos de valores de claves representan la información sobre la rotación de un objeto en una imagen sintética en un momento predeterminado en el tiempo indicado por los datos de clave. La información sobre la rotación de un objeto en otro momento predeterminado de tiempo que no se representa por los datos claves, se obtiene usando los datos de claves correspondientes a dos momentos de tiempo, que son los más adyacentes al momento predeterminado en el tiempo, por interpolación lineal esférica.
En la interpolación lineal esférica, la información de rotación se representa por un eje de rotación y un ángulo de rotación. MPEG-4 BIFS, como el lenguaje de modelado de realidad virtual (VRLM) , soporta la información de rotación representada por un eje de rotación y un ángulo de rotación usando un nodo interpolador de orientación. Cuando se genera una animación suave usando datos de valores de claves en la interpolación lineal esférica, los valores diferenciales de los datos de valores de claves entre los fotogramas clave están altamente correlacionados entre si, lo que causa redundancia entre los datos. Por consiguiente, es efectivo usar un procedimiento para la codificación de datos de valores de claves usando valores diferenciales de datos.
MPEG-4 BIFS proporciona dos procedimientos diferentes para la codificación de datos de campo representados por claves y datos de valores de claves de un nodo interpolador de orientación. Uno es el procedimiento para la codificación de los datos de campo usando la modulación de códigos de pulsos (PCM) y el otro es un procedimiento para la codificación de los datos de campo usando una modulación de códigos de pulsos diferenciales (DPCM) y la codificación de entropía.
En el procedimiento para la codificación de los datos de campo usando PCM, sólo se realiza un procedimiento de cuantización sobre los datos de clave y los datos de valores de claves a codificar. Como las características de los datos a codificar no se consideran en este procedimiento, este procedimiento se considera ineficaz. En el procedimiento para la codificación de los datos de campo usando PCM, se introducen los datos de campo de un nodo interpolador de orientación, y los datos de valores de claves de los datos de campo se convierten en valores de un espacio de cuaternios. A continuación, las claves y los datos de valores de las claves se cuantifican. Los datos de campo cuantizados se sacan en la forma de datos binarios. Para medir el grado en el que se visualizan distorsionados los resultados de la transformación de cuaternios en comparación con los datos de campo originales, los datos binarios se restauran en datos de valores de claves consistentes en un eje de rotación y un ángulo de rotación. Los datos de campo restaurados de un nodo interpolador de orientación se almacenan y a continuación se sacan sobre una pantalla, Es posible medir el grado de la distorsión visual de las imágenes causada por un error de cuaternios usando los datos restaurados. La distorsión de las imágenes puede calcularse con la ecuación (1) dada a continuación.
… (1) 10
En la ecuación (1) , N representa el número de datos de campo, y £i representa un valor diferencial entre los datos de valores de claves codificados Qi y los datos del valor de clave Ôi restaurado en un espacio de cuaternios.
Por otra parte, en el procedimiento para la codificación de los datos de campo usando DPCM y codificación de entropía, se considera una correlación entre datos sucesivos, y de este modo este procedimiento se considera más eficaz que el procedimiento para la codificación de los datos de campo usando PCM en términos de eficacia de la codificación. En este procedimiento, un valor diferencial entre los datos de valores de claves restauradas y los datos de valores de claves a codificar se calcula antes de un procedimiento de cuantización, y a continuación se cuantiza el valor diferencial, mejorando de este modo la eficacia de la codificación aprovechando las características de los datos mostrados en el valor diferencial.
Las FIG. 2A y 2B son diagramas de bloque de un codificador MPEG-4 PMFC que usa DPCM lineal y codificación de entropía, y un decodificador MPEG-4 PMFC que usa DPCM lineal inversa y decodificación de entropía, respectivamente. Un operador de DPCM lineal mostrado en la FIG. 2A calcula los datos diferenciales Qi entre los datos de valores de claves actuales y los datos de valores de claves restaurados anteriormente siguiendo la ecuación (2) .
En la ecuación (2) , Qi representa los datos de valores de claves originales en un momento predeterminado en el tiempo (t) , que se representan por un cuaternio, y i-1 representa los datos de valores de claves en un momento predeterminado en el tiempo (t - 1) , que se restauran a partir de un circuito de compensación de errores.
Sin embargo, el procedimiento de la codificación realizado en el aparato para la codificación de los datos de valores de claves mostrado en la FIG. 2A no tiene una alta eficacia de codificación. Es posible deducir fácilmente cuáles son los inconvenientes del procedimiento de la codificación analizando los datos de valores de claves, que determinan la rotación de un objeto en un espacio de cuaternios. Los datos de valores de claves se representan por un cuaternio en la siguiente ecuación:
Por ejemplo, cuando las componentes de un cuaternio tienen los mismos valores absolutos que sus componentes correspondientes de otro cuaternio pero diferentes signos en un espacio de cuaternios, como se muestra en la Ecuación (3) , los dos cuaternios se consideran los mismos. En otras palabras, los dos cuaternios proporcionan los mismos efectos en términos de transformación rotacional de un objeto en un espacio de 3D, lo que significa que los factores que afectan a la transformación rotacional de un objeto son una dirección de un eje de rotación y un ángulo de rotación, más que el vector del eje de rotación. Sin embargo, como en MPEG-4 BIFS, si los datos de valores de claves se representan por un cuaternio usando la ecuación (3) y se calcula un valor diferencial de forma lineal calculando las diferencias en los vectores entre datos de valores de claves sucesivos, el valor diferencia es distinto de 0, lo que significa que los valores diferenciales lineales no reflejan bien la redundancia en la transformación rotacional. Por consiguiente, es imposible medir con precisión la calidad de las imágenes usando el procedimiento para medir el grado de distorsión de las imágenes mostrado en la ecuación (1) .
Un procedimiento de una compresión de movimiento compensado de modelos de animación en... [Seguir leyendo]
Reivindicaciones:
1. Un aparato para la codificación de un interpolador de orientación usado en la animación de fotogramas claves de un objeto en 3D, incluyendo el interpolador de orientación datos de claves que indican las localizaciones de los fotogramas claves sobre un eje temporal y datos de valores de claves que indican la rotación del objeto en las localizaciones temporales indicadas por los datos de claves a lo largo de una primera trayectoria de animación, comprendiendo el aparato:
un extractor de puntos de ruptura (42, 46, 48) que está dispuesto para extraer, a partir de la entrada de orientación dentro del extractor de puntos de ruptura que definen el movimiento del objeto en 3D a lo largo de una primera trayectoria de animación, los datos de claves y los datos de valores de claves en un número mínimo de puntos de ruptura a lo largo del eje temporal, que pueden lograr un error no mayor que un límite de error predeterminado entre los datos de valores de claves a lo largo de la primera trayectoria de animación y los datos de valores de claves a lo largo de una segunda trayectoria de animación, en el que la segunda trayectoria de animación es la trayectoria de animación definida por los datos de claves extraídos y los datos de valores de claves en los puntos de ruptura extraídos. un codificador de datos de valores de claves (200) que está dispuesto para codificar la entrada de datos de claves extraídos a partir del extractor de puntos de ruptura; y un codificador de datos de valores de claves (300) que está dispuesto para codificar la entrada de datos de valores de claves extraídos a partir del extractor de puntos de ruptura generando los datos diferenciales rotacionales; en el que el codificador de valores de claves (300) comprende: un generador de datos diferenciales rotacionales (1300) que genera, usando un valor de la transformación rotacional de un fotograma clave actual y un valor de la transformación rotacional restaurada de un fotograma clave anterior, un valor diferencial rotacional usado para girar el objeto tanto como la diferencia entre la transformación rotacional aplicada al objeto en el fotograma clave actual por los datos de valores de claves y la transformación rotacional aplicada al objeto en el fotograma clave anterior por los datos de valores de claves, y saca los datos diferenciales rotacionales por la cuantización de los valores diferenciales rotacionales; y un codificador de entropía (1450) que codifica en entropía los datos diferenciales rotacionales.
2. El aparato de la reivindicación 1 que comprende además
un dispositivo de re-muestreo (43) que muestrea la primera trayectoria de animación dentro de un número predeterminado de secciones que tienen un intervalo de una magnitud predeterminada de tiempo y saca un interpolador de orientación incluyendo datos de las claves re-muestreadas y datos de valores de claves remuestreadas; y un selector (41) que saca un interpolador de orientación introducido en el mismo al dispositivo de re-muestreo o al extractor de puntos de ruptura dependiendo de una señal de entrada externa.
3. El aparato de la reivindicación 1 que comprende además un dispositivo de re-muestreo (45) que muestrea la primera trayectoria de animación dentro de un número predeterminado de secciones que tienen un intervalo de una cantidad de tiempo predeterminada y saca un interpolador de orientación incluyendo los datos de claves remuestreadas y los datos de valores de claves re-muestreados, en el que el extractor de puntos de ruptura (46) extrae los puntos de ruptura desde una trayectoria de animación constituida por un interpolador de orientación introducido desde el dispositivo de re-muestreo.
4. El aparato de la reivindicación 1 que comprende además un dispositivo de re-muestreo (49) que muestrea una trayectoria de animación constituida por un interpolador de orientación extraída del extractor de puntos de ruptura
(48) en un número predeterminado de secciones que tienen un intervalo de una cantidad de tiempo predeterminada y saca un interpolador de orientación incluyendo datos de claves re-muestreados y datos de valores de claves remuestreados al codificador de datos de claves y al codificador de datos de valores de claves.
5. El aparato de cualquiera de las reivindicaciones 2 a 4, en el que el dispositivo de re-muestreo (43, 45, 49) divide una trayectoria de animación constituida por datos de claves y datos de valores de claves de un interpolador de orientación en un número predeterminado de secciones que tienen un intervalo de una cantidad predeterminada de tiempo, saca los puntos del final de cada una de las secciones como datos de claves a codificar y saca los datos de valores de claves existentes sobre la trayectoria de animación en cada una de las secciones como datos de valores de claves a codificar.
6. El aparato de cualquiera de las reivindicaciones 1 a 4, en el que el extractor de puntos de ruptura (42, 46, 48) comprende:
un interpolador lineal (42a, 46a, 48a) que extrae un punto de comienzo de la trayectoria y un punto de final de la trayectoria de una trayectoria de animación de entrada, selecciona puntos de la trayectoria entre los puntos de comienzo y de final de la trayectoria, e interpola de forma lineal esférica otros puntos de la trayectoria que no se han seleccionado aún, usando los puntos de la trayectoria seleccionados y los puntos de la trayectoria extraídos;
un calculador de errores (42b, 46b, 48b) que calcula un error entre la trayectoria de animación de entrada y la trayectoria de animación interpolada generada por el interpolador lineal usando la interpolación; y una unidad de determinación (42c, 46c, 48c) que extrae puntos de ruptura, por los cuales un error entre la trayectoria de animación de entrada y la trayectoria de animación interpolada puede minimizarse, y saca los puntos de ruptura extraídos si los errores correspondientes no son mayores de un límite de error predeterminado.
7. El aparato de la reivindicación 6, en el que si el error entre la trayectoria de animación de entrada y la trayectoria de animación interpolada constituida por los puntos de ruptura extraídos, es mayor de un límite de error predeterminado, el interpolador lineal selecciona todos los puntos de la trayectoria excepto los puntos de ruptura introducidos desde la unidad de determinación, uno por uno y realiza la interpolación lineal esférica sobre los puntos de la trayectoria seleccionados.
8. El aparato de la reivindicación 6, en el que el calculador de errores (42b, 46b, 48b) divide la trayectoria de animación de entrada y la trayectoria de animación generada por la interpolación lineal esférica dentro de un número de secciones predeterminado en base a una componente de referencia que constituye sus puntos de trayectoria y calcula un error entre la trayectoria de animación de entrada y la trayectoria de animación generada en cada una de las secciones por la medición de un área de cada una de las secciones.
9. El aparato de la reivindicación 1, en el que el codificador de datos de claves (200) cuantiza la entrada de datos de claves desde el extractor de puntos de ruptura usando bits de cuantización predeterminados, genera datos diferenciales realizando una operación de DPCM predeterminada sobre los datos de claves cuantizados, y codifica los datos diferenciales.
10. El aparato de la reivindicación 1, en el que el codificador de datos de claves (200) comprende:
un primer dispositivo de cuantización que cuantiza los datos de claves de un interpolador de orientación usando bits de cuantización predeterminados; un primer procesador de DPCM que genera datos diferenciales de los datos de claves cuantizados; un procesador de DND que realiza una operación de DND sobre los datos diferenciales dependiendo de la relación entre los datos diferenciales y el valor máximo y el valor mínimo de entre ellos; y un primer codificador de entropía que codifica en entropía la entrada de datos diferenciales procedente del procesador de DND; en el que la operación de DND es una operación de división seguida de una operación de división hacia arriba o una operación de división hacia abajo, estando dada la operación de división por división (nQKeyj, nKeyMax)
= nQKeyj - (nKeyMax + 1) (si nQKeyj > nKeyMax / 2)
= nQkeyj (si nQKeyj : nKeyMax / 2)
11. El aparato de la reivindicación 1, en el que el codificador de datos de claves comprende además un codificador de claves lineal, que identifica y decodifica una región donde los datos de claves aumentan linealmente de entre todos los datos de claves introducidos en el mismo.
12. El aparato de la reivindicación 10, en el que el codificador de datos de claves (200) comprende además:
un dispositivo de desplazamiento que obtiene un dato diferencial (modo) que tiene la frecuencia más alta de entre los datos diferenciales introducidos desde el primer procesador de DPCM y resta el modo de los datos diferenciales; y un procesador de plegado que convierte los datos diferenciales desplazados en números positivos o números negativos, y un procesador de DND que selecciona una de las entradas de datos diferenciales desde el dispositivo de desplazamiento, la entrada de datos diferenciales desde el procesador de plegado, y los datos diferenciales con la DND dependiendo del número de bits requeridos para la codificación y saca los datos diferenciales seleccionados.
13. El aparato de la reivindicación 1, en el que el generador de datos diferenciales rotacionales comprende:
un dispositivo de cuantización que genera datos diferenciales rotacionales por cuantización de los tres valores componentes del valor diferencial rotacional; un dispositivo de ajuste de los datos cuantizados que ajusta los tres valores componentes de los datos diferenciales rotacionales que entran en el mismo; un dispositivo de cuantización inversa que realiza la cuantización inversa de los valores componentes ajustados; un restaurador de valores diferenciales rotacionales que restaura un valor componente, que no se ha cuantizado, usando los tres valores componentes con cuantización inversa y de este modo genera un valor diferencial rotacional restaurado; y una unidad de mediciones de error que mide un error entre la entrada de valores diferenciales rotacionales dentro del dispositivo de cuantización y el valor diferencial rotacional restaurado y saca los datos diferenciales rotacionales que tienen los valores componentes ajustados de modo que puede minimizarse el error.
14. El aparato de la reivindicación 1, en el que el generador de datos diferenciales rotacionales comprende;
un primer multiplicador de cuaternios (1310) que genera los valores diferenciales rotacionales usando el valor de la transformación rotacional del fotograma clave actual y el valor de la transformación rotacional restaurado del fotograma clave anterior; un dispositivo de cuantización (1340) que genera datos diferenciales rotacionales por la cuantización del valor diferencial rotacional; un dispositivo de cuantización inversa (1350) que genera un valor diferencial rotacional restaurado por la cuantización inversa de los datos diferenciales rotacionales; y un segundo multiplicador de cuaternios (1370) que genera un valor diferencial rotacional restaurado del fotograma clave actual por la multiplicación de cuaternios del valor diferencial rotacional restaurado por un valor de la transformación rotacional del fotograma clave anterior.
15. El aparato de la reivindicación 1, en el que el generador de datos diferenciales rotacionales comprende:
un detector de errores de la dirección de rotación (1830) que detecta si ha ocurrido o no un error de la dirección de rotación de modo que la dirección de rotación original del objeto es opuesta a la dirección de rotación decodificada del objeto, en base al valor de la transformación rotacional del fotograma clave actual y el valor de la transformación rotacional restaurada del fotograma clave anterior; un corrector de la dirección de rotación (1815) que ajusta el valor diferencial rotacional, de modo que la dirección de rotación decodificada del objeto puede ser la misma que la dirección de rotación original del objeto; y un selector de la dirección de rotación (1835) que selecciona bien el valor diferencial de rotación o el valor diferencial de rotación introducido desde el corrector de la dirección de rotación como datos diferenciales a cuantizar, dependiendo del resultado de la detección introducida desde el detector de errores de la dirección de rotación.
16. Un procedimiento para la decodificación de un flujo de bits, en el cual se codifica un interpolador de orientación usado en la animación de un fotograma clave de un objeto de 3D, incluyendo el interpolador de orientación datos de claves que indican las localizaciones de los fotogramas claves sobre un eje temporal e indicando los datos de valores de claves la rotación de un objeto, comprendiendo el procedimiento:
generar datos diferenciales por la decodificación de entropía del flujo de bits; generar datos de claves cuantizados realizando las operaciones de la DND inversa, el plegado inverso, el desplazamiento inverso, y la DPCM inversa sobre los datos diferenciales si el orden de DND (nDNDOrder) de los datos diferenciales no es menor de 1, realizando las operaciones del plegado inverso, el desplazamiento inverso, y la DPCM inversa sobre los datos diferenciales si el orden de DND de los datos diferenciales es 0, y realizando las operaciones de desplazamiento inverso y DPCM inversa sobre los datos diferenciales si el orden de DND de los datos diferenciales es -1; reconstruir los datos de claves reconstruidos por la cuantización inversa de los datos de claves cuantizados; decodificar en entropía los datos de valores de claves a partir del flujo de bits, para generar datos diferenciales rotacionales cuantizados por la realización de la operación de DPCM circular inversa sobre los datos de valores de claves si el orden de la DPCM (nKVDPCMOrder) incluido en una cabecera del valor de clave es 1, para generar los datos diferenciales rotacionales cuantizados si el orden de la DPCM es 0; generar un valor diferencial rotacional de un fotograma clave actual usado para girar un objeto tanto como la diferencia entre las transformaciones rotacionales aplicadas al objeto por los datos de valores de claves de cuaternios de cada uno de los fotogramas claves por la cuantización inversa de los datos diferenciales rotacionales cuantizados; generar un valor de la transformación rotacional del fotograma clave actual por la multiplicación de cuaternios del valor diferencial rotacional del fotograma clave actual por un valor de la transformación rotacional decodificada de un fotograma clave anterior; generar un interpolador de orientación sintetizando los datos de claves decodificados y los datos de valores de claves que se interpolan de forma lineal esférica usando los datos de claves decodificados y los datos de valores de claves decodificados, en el que los datos de valores de claves de la trama actual se restauran interpolando el fotograma clave anterior y el fotograma clave posterior si un indicador de la selección de clave del fotograma clave actual se fija a un valor de 0; y sacar el interpolador de orientación.
17. Un programa de ordenador que comprende un medio de código de programa de ordenador para la realización de todas las etapas de la reivindicación 16 cuando dicho programa corre sobre un ordenador.
18. Un programa de ordenador de acuerdo con la reivindicación 17 realizado sobre un medio legible por ordenador.
clase CompressedOrientationInterpolator {
KeyHeader kHeader;
OriIKeyValueHeader oriIKVHeader;
qf_start () ;
aligned (8) KeySelectionFlag ksKlag (kHeader, oriIKVHeader. bPreserveKey) ;
Key k (kHeader) ;
si (oriIKVHeader. nKVDPCMOrder == 0) // DPCM de primer orden OriIDPCMKeyValue oriIDPCMkeyValue (oriIKVHeader, oriIDPCMKVHeader, ksFlag. nNumberOfKeyValue - 1)
si no // DPCM de segundo orden OriIDPCMKeyValue oriIDPCMkeyValue (oriIKVHeader, oriIDPCMKVHeader, ksFlag. nNumberOfKeyValue - 2)
}
class KeyHeader { entero i: entero (5) sin signo nKeyQBit; entero (5) sin signo nNumKeyCodigBit; entero sin signo (nNumKeyCodingBit) nNumberOfKey; entero (4) sin signo nKeyDigit; bit (1) bisLinearKeySubRegion; si (bisLinearKeySubRegion = 1)
LinearKey Ikey (nKeyDigit) ; bit (1) bRangeFlag; si (bRangeFlag = 1)
KeyMinMax KeyMinMax (nKeyDigit) ; entero (5) sin signo nBitSize; entero (2) sin signo nKDPCMOrder; para (I = 0; I < nKDPCMOrder + 1; i++) {
bit (1) nQIntraKeySign [[i]]; si (i = 0 && nQIntraKeySign [i] ==1) continuar;
entero sin signo (nBitSize) nQIntraKey [[i]]; } bit (1) bShiftFlag; si (bShiftFlag = 1) {
bit (1) nKeyShiftSign;
entero sin signo (nBitSize) nKeyShift: } entero (3) sin signo nDNDOrder; si (nDNDOrder = 7) {
bit (1) bNoDND; si (bNoDND = 1)
nDNDOrder = -1; } entero nMaxQBit = nBitSize; para (i = 0; i < nDNDOrder; i++) {
bit (1) nKeyMaxSign [[i]]; entero sin signo (nMaxQBit) nKeyMax [[i]]; nMaxQBit = (entero) (log 10 (abs (nKeyMax [i]) ) / log 10 (2) ) + 1; si (nMaxQbit + 1 < nBitSize)
nMaxQBit + = 1; si no nMaxQBit = nBitSize } entero bSignedAACFlag; entero nKeyCodingBitQBit = (entero) (log 10 (nKeyQBit) ) / log 10 (2) ) + 1; entero sin signo (nKeyCodingBitQBit) nKeyCodigBit; si (nDNDOrder != -1 && nDNDOrder != 0) {
bit (1) bkeyInvertDownFlag;
si (bKeyInvertDownFlag == 1) { entero sin signo (nKeyCodingBit) nKeyInvertDown; bSignedAACFlag = 0;
} si no { bSignedAACFlag = 1; } } si no { bSignedAACFlag = 0; } }
class LinearKey (entero nkeyDigit) { entero (5) sin signo nNumLinearKeyCodingBit; entero sin signo (nNumLinearKeyCodingBit) nNumberOfLinearkey; KeyMinMax kMinMax (nKeyDigit) ;
}
class KeyMinMax (entero nKeyDigit) { bit (1) bMinKeyDigitSame; si ( (bMinKeyDigitSame = 0)
entero (4) sin signo nMinKeyDigit; si no nMinKeyDigit = nKeyDigit; si (nMinKeyDigit != 0) {
si (nMinKeyDigit < 8) { entero count = (entero) (log 10 (10^nMinKeyDigit - 1) / log 10 (2) ) + 1; bit (1) nMinKeyMantissaSign; entero sin signo (count) nMinKeyMantissa; bit (1) nMinKeyExponentSign; entero (6) sin signo nMinKeyExponent;
} si no flotante (32) fKeyMin; } bit (1) bMaxKeyDigitSame; si (bMaxKeyDigitSame == 0)
entero (4) sin signo nMaxKeyDigit; si no nMaxKeyDigit = nKeyDigit; si (nMaxKeyDigit != 0) {
si (nMaxKeyDigit < 8) { entero count = (entero) (log 10 (10^nMaxKeyDigit) - 1) / log 10 (2) ) + 1 bit (1) nMaxKeyMantissaSign; entero sin signo (count) nMaxKeyMantissa; bit (1) bSameExponent; si (bSameExponent == 0) {
bit (1) nMaxKeyExponentSign;
entero sin signo (6) nMaxKeyExponent; } si no nMaxKeyExponent = nMinKeyExponent; } si no flotante (32) fKeyMax; } }
Class OrilKeyValueHeader () { bit (1) bPreserveKey; entero (5) sin signo nKVQBit; bit (1) nKVDPCMOrder; OriIDPCMKeyValueHeader oriIDPCMKVHeader (nKVQBit, nKVDPCMOrder) ; }
classe OriIDPCMKeyValueHeader (entero nKVQBit, entero sin signo nKVDPCMOrder) {
entero sin signo (nKVQBit - 1) firstQKV_S;
bit (1) nFirstXSign;
entero sin signo (nKVQBit - 1) firstQKV_X;
bit (1) nFirstYSign;
entero sin signo (nKVQBit - 1) firstQKV_Y;
bit (1) nFirstZSign;
entero sin signo (nKVQBit - 1) firstQKV_Z;
si (nKVDPCMOrder ==1) { // DPCM de segundo orden bit (1) nSecondXSign;
entero sin signo (nKVQBit - 1) secondQKV_X;
bit (1) nSecondYSign;
entero sin signo (nKVQBit - 1) secondQKV_Y;
bit (1) nSecondZSign;
entero sin signo (nKVQBit - 1) secondQKV_Z;
bit (1) bisMoreTwoKVs;
}
si (nKVDPCMOrder ==0 II bisMoreTwoKVs ==1) {
bit (1) x_keyvalue_flag;
OrilKeyValueCodingBit orilKVCodingBit_X (x_keyvlue_flag, nKVQBit) ;
bit (1) y_keyvalue_flag;
OrilKeyValueCodingBit orilKVCodingBit_Y (y_keyvlue_flag, nKVQBit) ;
bit (1) z_keyvalue_flag;
OrilKeyValueCodingBit orilKVCodingBit_Z (z_keyvlue_flag, nKVQBit) ;
} }
class OriIKeyValueCodingBit (entero sin signo flag_bit, entero nKVQBit) { entero count = (entero) (log10 (nKVQBit) / log10 (2) ) + 1; si (flag_bit ==0) {
entero sin signo (count) nKVCodingBit; si (nKVCodingBit ==1) entero sin signo (nKVCodingBit) nAllKeyValue;
si no { bit (1) nSign; entero sin signo (nKVCodingBit - 1) nAllKeyValue;
}
} si no { bit (1) bisUnar y AAC; si (bisUnar y AAC != 1)
entero sin signo (count) nKVCodingBit; } }
Class KeySelectionFlag (KeyHeader kHeader, entero bPreserveKey) { entero iI; entero nNumOfKeyValue = 0; si (bPreserveKey == 1) {
para (I = 0, i < kHeader, nNumberOfKey; i++) { qf_decode (&keyFlag [i], keyFlagContext) ; si (keyFlag [i] ==1)
nNumOfKeyValue ++; } } si no nNumOfKeyValue = kHeader. nNumberOfKey; }
class Key (KeyHeader kHeader) { entero nQKey [kHeader. nNumberOfKey]; entero i; entero nNumerOfRemainingKey; si (kHeader. bIsKinearKeySubRegion == 1)
nNumberOfRemainingKey = kHeader. nNumberOfKey - kHeader. Ikey. nNumberOfLinearKey; si no nNumberOfRemainingKey = kHeader. nNumberOfKey; para (i = kHeader. nKDPCMOrder + 1; i < nNumberOfRemainingKey; i++) { si (kHeader. bSignedAACFlag ==0) decodeUnsignedAAC (nQKey [i], kHeader. nKeyCodingBit, keyContext) ; si no decodeSignedAAC (nQKey [i], kHeader. nKeyCodingBit + 1, keySignContext, keyContext) ; } }
class OriIDPCMKeyValue (OrilDPCMKeyValueHeader kvHeader, entero nNumKV) { entero I; si (kvHeader, x_keyvalue_flag != 0) {
si (kvHeader. orIKVCoding.Bit_X.bisUnar y AAC == 1) para (i = 0, I < nNumKV; I++) decodeUnariAAC (&DeltaKeyValue [i]. x, kVXSignConext, kVXUnar y Context) ; si no para (i = 0, I < nNumKV; i++) decodeSignedAAC (&DeltaKeyValue [i]. x, kvHeader. orIKVCodingBit_X. nKVCodingBit, kVXSignContext, kVXContext) ; } si (kvHeader, y_keyvalue_flag != 0) {
si (kvHeader. orIKVCoding.Bit_Y.bisUnar y AAC == 1) para (i = 0, I < nNumKV; I++) decodeUnariAAC (&DeltaKeyValue [i]. y, kVYSignConext, kVYUnar y Context) ; si no para (i = 0, I < nNumKV; I++) decodeSignedAAC (&DeltaKeyValue [i]. y, kvHeader. orIKVCodingBit_Y.nKVCodingBit, kVYSignContext, kVYContext) ; } si (kvHeader, z_keyvalue_flag != 0) {
si (kvHeader. orIKVCoding.Bit_Z.bisUnar y AAC == 1) para (i = 0, I < nNumKV; I++) decodeUnariAAC (&DeltaKeyValue [i]. x, kVZSignConext, kVZUnar y Context) ; si no para (i = 0, I < nNumKV; I++) decodeSignedAAC (&DeltaKeyValue [i]. z, kvHeader. orIKVCodingBit_Z. nKVCodingBit, kVZSignContext, kVZContext) ; } }
Patentes similares o relacionadas:
Almacenamiento eficiente de registros de códigos cifrados estructurados múltiples, del 22 de Julio de 2020, de Nokia Technologies OY: Un aparato que comprende: medios para formar un vector de código base combinando componentes 5 de vector de un sub-vector señalado por […]
Método para el movimiento de diente como una bandada, del 24 de Junio de 2020, de ULAB SYSTEMS, INC: Método de control de movimientos de diente para corregir maloclusiones, que comprende: recibir una pluralidad de modelos de diente digitales […]
Procedimiento de codificación de imágenes, procedimiento de descodificación de imágenes, aparato de codificación de imágenes, aparato de descodificación de imágenes y aparato de codificación / descodificación de imágenes, del 27 de Mayo de 2020, de Sun Patent Trust: Un procedimiento de codificación de imágenes que comprende: dividir (S201) una imagen en mosaicos; codificar (S202) los mosaicos para […]
Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes, del 18 de Marzo de 2020, de KABUSHIKI KAISHA TOSHIBA: Un procedimiento de decodificación que comprende: determinar, mediante una unidad de decodificación, un modo de predicción según un modo […]
Método y aparato para representar granularidad de imagen mediante uno o más parámetros, del 26 de Febrero de 2020, de DOLBY INTERNATIONAL AB: Un método para simular grano de película, que comprende: recibir un flujo de vídeo codificado; recibir información codificada de grano de película, […]
Interpolación mejorada de cuadros de compresión de vídeo, del 4 de Diciembre de 2019, de DOLBY LABORATORIES LICENSING CORPORATION: Un método para compresión de imágenes de video usando predicción en modo directo, que incluye: proporcionar una secuencia de cuadros predichos […]
Interpolación mejorada de cuadros de compresión de vídeo, del 4 de Diciembre de 2019, de DOLBY LABORATORIES LICENSING CORPORATION: Un método de compresión de imágenes de video que comprende: proporcionar una secuencia de cuadros referenciables (I, P) y predichos bidireccionales […]
Codificación de imagen usando unidades de transformación grandes, del 13 de Noviembre de 2019, de SAMSUNG ELECTRONICS CO., LTD.: Un aparato de codificación de imagen que comprende: un procesador configurado para: generar información acerca de una unidad de codificación máxima, usada […]