Red de conocimiento informático - Conocimiento del nombre de dominio - ¡Urgente! ¿Alguien sabe cómo codificar y decodificar el código de tiempo LTC?

¡Urgente! ¿Alguien sabe cómo codificar y decodificar el código de tiempo LTC?

CODIFICACIÓN DEL TIEMPO

I. Concepto

A continuación explicaremos un concepto importante en la codificación del tiempo de procesamiento de flujos de medios.

La codificación temporal es un dato auxiliar que se utiliza para transmisiones de vídeo y audio. Se incluye en archivos de vídeo y audio y podemos entenderlo como una marca de tiempo.

El código de tiempo SMPTE es la suma de códigos de tiempo y control SMPTE, que son direcciones numéricas secuenciales, indicadores y datos adicionales en transmisiones de video y audio. Está definido en ANSI/SMPTE12-1986 y su propósito es proporcionar direcciones de video y audio que puedan ser procesadas por computadoras.

La estructura de datos del código de tiempo SMPTE más alto es un sv de 80 bits, que contiene lo siguiente:

a hh::mm::ss::ff (hora:: minuto:: Marca de tiempo en segundos::cuadro) formato.

b. Los ocho datos binarios de 4 bits a menudo se denominan "bits de usuario".

c. Diferentes bits de bandera

d. Secuencia de sincronización

e.

Este formato se define como TIMECODE_SAMPLE en DirectShow.

El código de tiempo se puede dividir en dos formas, una es el formato de tiempo lineal LTC (codificación longitudinal), en el que cada código de tiempo representa un cuadro de tiempo continuo. Otro tipo de código de tiempo es VITC (codificación horizontal), que almacena dos líneas de señal de vídeo en intervalos de gradiente vertical, en algunos lugares entre 10 y 20.

El código de tiempo LTC es fácil de agregar a una cinta de video porque está codificado independientemente de la señal de audio. Pero no se puede leer mientras la unidad de cinta esté en pausa, ralentizada o avanzando rápidamente. Además, en los grabadores de vídeo no profesionales existe el riesgo de que la señal de audio se pierda todo el tiempo.

El código de tiempo VITC se diferencia del LTC en que se puede leer a una velocidad de 0-15x. También se puede leer desde tarjetas de captura de vídeo. Pero grabarlo en cinta puede requerir algún equipo adicional, que suele ser más caro.

El código de tiempo SMPTE también admite dos modos, uno es el modo de no eliminación y el otro es el modo de eliminación. En el modo de no eliminación, el código de tiempo se graba de manera cada vez mayor. Es posible la reproducción en tiempo real de hasta 30 fotogramas o más.

Para compatibilidad con sistemas de televisión monocromáticos, el estándar de reproducción de vídeo NTSC es de 29,97 fotogramas por segundo. Esto genera un problema en el que en el modo sin inclinación hay 108 cuadros desincronizados en una hora, es decir, una hora de tiempo real cuando el código de tiempo solo dice 00:59:56:12. Esto causa algunos problemas al calcular el tiempo de reproducción para la transmisión. medios de comunicación. Para resolver este tipo de problema, podemos lograrlo saltando cortes dentro del rango asequible. Esto funciona saltando dos fotogramas al comienzo de cada minuto, pero no saltando fotogramas a los 00, 20, 30, 40 y 50 minutos. Con este enfoque, los resultados de nuestras pruebas de red fueron de menos de un fotograma por hora, con un error de aproximadamente 3 fotogramas por 24 horas.

En aplicaciones prácticas, aunque existen ambos modos, se suele utilizar el modo de descarte.

II.Aplicaciones típicas del código de tiempo

El control de dispositivos periféricos utilizados para la captura y edición de vídeo es una aplicación típica. Estas aplicaciones necesitan identificar cada cuadro de vídeo y audio y hacerlo mediante el código de tiempo SMPTE. Los sistemas de edición en línea normalmente controlan tres o más máquinas de cinta, alternando entre grabadoras de video y de disco cuando es posible. La computadora debe ejecutar el comando con precisión y, por lo tanto, debe poder obtener la dirección de una ubicación específica en la cinta en un momento específico. Las aplicaciones pueden utilizar el código de tiempo de diversas formas, entre las que se incluyen:

a. Realizar un seguimiento de las fuentes de vídeo y audio durante todo el proceso de edición

b.

c. Sincronizar múltiples dispositivos

d. Utilice bytes no definidos (llamados bits de usuario) en el código de tiempo. Generalmente contiene fechas, códigos ASCII o información industrial sobre la película, etc.

Los anteriores son los principales tipos de códigos de tiempo.

3. Captura de código de tiempo

Por lo general, el código de tiempo se genera mediante algún dispositivo de tarjeta de captura con la función de generar código de tiempo.

Por ejemplo, rs-422 requiere código de tiempo para controlar la comunicación entre periféricos y host.

Después de generar el código de tiempo, necesitamos obtener el código de tiempo de la transmisión de vídeo y audio para acceder a él posteriormente. Luego procesamos el código de tiempo en los dos pasos siguientes:

a. Crea un índice no consecutivo de cada posición de fotograma, correspondiente al código de tiempo de cada fotograma. Una vez completada la captura, la lista se escribe al final del archivo. La lista puede ser una matriz, como la estructura siguiente. Para simplificar, aquí se proporciona una versión simplificada de la estructura DirectShowTIMECODE_SAMPLE.

struct {

DWORD dwOffset; // Bit de compensación en el muestreo

char[11] szTC // Valor del código de tiempo en bit de compensación

//hh:mm:ss:ff es el formato sin muestreo hh:mm:ss; ff es el formato de muestreo

}. TIMECODE;

Por ejemplo, los siguientes son los códigos de tiempo en la secuencia de captura de vídeo:

{0, 02:00:00:02},

{ 16305, 15:21:13:29} // Formato de tiempo del fotograma en el fotograma 16305

Con esta tabla, el código de tiempo de cualquier fotograma es fácil de calcular.

B. Otro método es escribir código de tiempo en los datos de vídeo y audio. No recomendamos este método y no lo cubriremos.

Los archivos escritos usando código de tiempo se pueden editar, sintetizar, sincronizar y realizar otras operaciones. Eso es todo lo que he escrito y es suficiente para que entendamos el código de tiempo. El resto es sobre estándares, puedes consultarlo si estás interesado.