Cómo personalizar el desarrollo de software de videovigilancia (cómo instalar software de videovigilancia)
Al desarrollar software de aplicación de sistema de videovigilancia, todo el mundo suele centrarse en la implementación del códec de audio/vídeo digital, ignorando la arquitectura general del software de aplicación del sistema de videovigilancia. Por supuesto, el núcleo de la videovigilancia también radica en la codificación y decodificación de audio y video. AnychatSDK de Bai Rui se encuentra principalmente en el campo de audio y video. Ha investigado a largo plazo sobre mensajes instantáneos de audio y video. (recopilación, codificación y decodificación), módulos de gestión de streaming de medios (retransmisión de pérdida de paquetes, suavizado de fluctuaciones, almacenamiento en búfer dinámico), módulo de reproducción de streaming de medios (mezcla multicanal, sincronización de audio y vídeo) y módulo de red P2P (penetración de NAT, soporte UPnP) y otros submódulos encapsulan las operaciones de hardware subyacentes (recopilación de audio y video, reproducción), encapsulan tecnologías muy profesionales y complejas como el procesamiento de medios de transmisión (codificación y decodificación, transmisión de red) y proporcionan una interfaz de control API simple para la capa superior. aplicaciones, que se pueden utilizar en un ciclo de desarrollo muy corto y con muy poca mano de obra. Con la inversión de recursos, agregaremos funciones de mensajería instantánea de audio y video y conferencias multipartitas a la plataforma existente del cliente. AnyChatSDK permite a las empresas omitir la compleja implementación de la tecnología subyacente y centrarse en el procesamiento de la lógica empresarial del proyecto, acelerando el progreso del desarrollo del proyecto y ganando así oportunidades de mercado para las empresas.
En un sistema de videovigilancia, un excelente algoritmo de codificación y decodificación de audio/vídeo es ciertamente importante, pero es una parte importante de todo el software de aplicación del sistema de videovigilancia. La aplicación del sistema de videovigilancia también implica cómo ingresar/salir datos de audio/vídeo digitales, cómo estos datos se coordinan y cooperan con el algoritmo del códec de audio/vídeo y cómo funcionan en coordinación los diversos módulos del software de aplicación del sistema de videovigilancia. Este artículo explica principalmente el método de desarrollo de software y explica la superioridad del método de desarrollo de software jerárquico.
Método de desarrollo de software tradicional
El método de desarrollo de software tradicional es un flujo de programa lineal. Primero, todo el programa se modulariza con módulos funcionales y luego se selecciona el lenguaje ASM o C. cada submódulo desde cero y, finalmente, escriba un bucle principal para ejecutar estos submódulos de forma lineal y secuencial.
Internet es una red mágica y la personalización del software también es un modelo. La cotización más detallada se proporciona aquí. Si realmente desea hacerlo, puede venir aquí. entre uno, ocho y siete es San'er0 y el último es 14250. Puedes encontrarlo combinándolos en orden, a menos que quieras hacerlo o entender este aspecto, si es así. Sólo uniéndote a la diversión, no vengas.
La ventaja de los métodos tradicionales de desarrollo de software es que el flujo de control y el flujo de datos de todo el programa están completamente controlados por el programador, y el programa es intuitivo y fácil de entender. Sin embargo, sus desventajas son: cada submódulo está estrechamente acoplado y la modificación de un determinado submódulo puede afectar todo el programa, es decir, la tasa de reutilización de su código no es alta, lo que resulta en una mala portabilidad de programas entre sistemas similares; Debido a la secuencia del programa, la ejecución del bucle requiere mucho tiempo para esperar a que los datos de entrada/salida estén listos antes de que el algoritmo procese los datos, lo que resulta en una baja utilización de la CPU. De manera similar, la secuencia simple y la ejecución del bucle solo pueden administrar y programar una. una sola tarea y no puede implementar múltiples tareas de gestión y programación.
Métodos de desarrollo de software DSP recomendados
Para acelerar el desarrollo de software DSP, un conjunto de métodos de desarrollo de software DSP completos, estandarizados y estandarizados se denomina tecnología de software DSP. Es un método de desarrollo de software con un sistema operativo multitarea en tiempo real DSP/BIOS como núcleo y una estructura jerárquica como base. Su ventaja es:
La estructura del software es jerárquica: se utilizan capas estándar entre ellas. cada capa API, la modificación de una determinada capa no afectará a otras capas, lo que mejorará la tasa de reutilización del código y mejorará la portabilidad del programa entre sistemas similares;
Capa de aplicación;
Capa de controlador de dispositivo;
Capa de dispositivo de hardware;
Uso del kernel multitarea en tiempo real DSP/BIOS como control principal para maximizar la utilización de la CPU;
DSP/BIOS es responsable para la gestión y programación de programas;
DSP/BIOS puede realizar análisis en tiempo real del flujo de control, el flujo de datos y la eficiencia de ejecución del programa.
La desventaja es que el flujo de control y el flujo de datos de todo el programa son administrados por DSP/BIOS, y el programa ya no será intuitivo ni fácil de entender. Luxury DSP/BIOS proporciona un módulo de análisis en tiempo real que puede analizar el flujo de control, el flujo de datos y la eficiencia de ejecución del programa en tiempo real.
Modelo jerárquico de controladores de dispositivos
Un kit de desarrollo de controladores de dispositivos diseña un modelo jerárquico para controladores de dispositivos, llamado modelo IOM. El modelo IOM combina controladores de dispositivos y está dividido en 2 capas. La capa superior es una capa independiente del hardware llamada controlador de dispositivo de clase, que es responsable de administrar instancias de dispositivos, sincronización y serialización de solicitudes I/Q y otras operaciones. La capa inferior relacionada con el hardware se denomina controlador de mini dispositivo y es responsable de inicializar el dispositivo real o realizar las operaciones de control necesarias.
Controlador de dispositivo de clase
El controlador de dispositivo de clase es la abstracción de nivel superior del controlador de dispositivo y no tiene nada que ver con el dispositivo específico. El DDK define un conjunto de controladores de dispositivo de clase. Para cada tipo de funciones API estándar, las aplicaciones solo pueden llamar al controlador del dispositivo a través de este conjunto de funciones API, separando así el programa de aplicación del controlador del dispositivo.
DDK define tres categorías principales de controladores de clase: SIO, PIP y GIO.
SIO: Interfaz Stream I/O, que consta de SIO y DIO y es responsable de la gestión del búfer, la sincronización de la señal y la interfaz del mini controlador subyacente.
GIO: E/S de propósito general, permite lectura y escritura de bloques y puede ser utilizado por desarrolladores de controladores de dispositivos para implementar nuevos controladores de dispositivos de clase especializada.
Los controladores de dispositivos de clase SIO y PIP se han implementado completamente en el DDK. Los desarrolladores de controladores de dispositivos que utilizan controladores de dispositivos de clase SIO y PIP no necesitan escribir ningún código de controlador de dispositivo de clase. Para los desarrolladores de controladores de dispositivos que utilizan controladores de dispositivos de clase GIO, DDK ha implementado un conjunto de funciones API básicas para GIO, por lo que los desarrolladores solo necesitan llamar a este conjunto de funciones API a través de definiciones macro para implementar sus propias clases dedicadas.
Controlador de dispositivo mini
El controlador de dispositivo mini es la abstracción subyacente del controlador de dispositivo. Está relacionado con un dispositivo específico y realiza operaciones reales en el dispositivo de hardware. El DDK especifica un mini. controlador de dispositivo. Un conjunto de funciones API estándar, los controladores de dispositivos de clase llaman controladores de dispositivos mini a través de estas funciones API estandarizadas, y para los desarrolladores de controladores de dispositivos, solo se requiere un cuerpo de función específico. En el cuerpo de funciones específicas de este conjunto de funciones API, los usuarios pueden inicializar el hardware específico del dispositivo y realizar operaciones de control relacionadas llamando a la biblioteca CLS/BSL.
Por qué utilizar el modelo de controlador de dispositivo IOM
El modelo de controlador de dispositivo IOM es un controlador de dispositivo en capas. El diseño en capas estandariza las interfaces entre capas y solo las capas adyacentes pueden llamarse entre sí. para separar efectivamente las aplicaciones de la capa superior de los detalles operativos de los dispositivos de hardware específicos de la capa inferior. Por lo tanto, al reemplazar algunos de los periféricos de hardware, generalmente solo es necesario modificar el minicontrolador subyacente, mientras que las modificaciones en la aplicación de la capa superior se pueden minimizar, mejorando así la versatilidad, reutilización y portabilidad de la aplicación de la capa superior. sexo.
Qué se incluye en el controlador del dispositivo del modelo IOM
En el programa, el dispositivo se utiliza para completar la entrada/salida de datos y un enlace de datos completo. En ocasiones se utiliza un solo periférico. no necesariamente llamado Para dispositivos, como dispositivos de entrada/salida de audio. Está compuesto por dispositivos periféricos dentro y fuera del chip, como el códec de chip de interrupción McBSPIICDMA del proveedor de chips DSP. En dicho enlace de datos, un único periférico dentro o fuera del chip no puede completar la entrada/salida real de datos y no puede denominarse dispositivo. Entonces, ¿cómo completa la sala de equipos la entrada/salida de datos correspondiente?
En primer lugar es necesario inicializar los periféricos que componen el dispositivo y configurar sus métodos de trabajo para que dichos periféricos puedan funcionar correctamente. Además, algunas funciones de los periféricos requieren un ajuste dinámico durante el funcionamiento del periférico. Por ejemplo: es posible que el programa de aplicación deba ajustar dinámicamente la velocidad de muestreo del convertidor A/D; por el programa de aplicación Las interrupciones correspondientes, canales DMA/EDMA, etc. también pueden ser modificados dinámicamente por el programa de aplicación según sea necesario. Por lo tanto, el controlador del dispositivo debe tener una función de inicialización del dispositivo y algunas funciones de configuración relacionadas.
En segundo lugar, es necesario leerlo/escribirlo, es decir, completar las funciones de entrada/salida más básicas del periférico.
Las aplicaciones generalmente procesan datos en lotes, y los periféricos a menudo ingresan/envían datos uno tras otro. Se necesita un búfer entre los dos para el almacenamiento en caché. La función de entrada/salida del controlador del dispositivo completa la operación de lectura/escritura del periférico. /lee datos en el búfer y la aplicación realiza el procesamiento correspondiente cuando el búfer está disponible. Se puede ver que el búfer cambia entre el programa de aplicación y el controlador del dispositivo. Diferentes aplicaciones requieren diferentes tamaños de búfer y, para evitar la sobrescritura de datos, es posible que se necesiten varios búfer para cambiar. El tamaño del búfer, el número de búferes y si el búfer lo administra el controlador o el programa de aplicación se pueden organizar de manera flexible según las necesidades de la aplicación. La operación de lectura/escritura de los periféricos no se puede realizar en ningún momento y debe cumplir con ciertas condiciones. Esta condición generalmente se usa como señal de interrupción o señal de bandera. Además, para mejorar la eficiencia de la entrada/salida. Es necesario utilizar DMA/EDMA para trabajar juntos, y el controlador A menudo está asociado con interrupciones y DMA/EDMA.
Finalmente, los datos ingresados/salidos por el controlador deben ser procesados por el programa de aplicación. El programa de aplicación solo puede leer/escribir en el búfer cuando los datos están listos. Programa de aplicación. Pregunta, generalmente existen dos métodos de sincronización, uno es "bloqueante" y el otro no es "bloqueante" con una función de devolución de llamada. Dos métodos de sincronización diferentes, cuando en realidad corresponden al método de "bloqueo", se selecciona el hilo del tipo de interrupción del software.
Conclusión
Usar el modelo IOM para desarrollar controladores de dispositivos subyacentes es más complejo que el desarrollo de software tradicional, y el flujo de control y el flujo de datos de todo el programa son menos intuitivos y difíciles de entender. , pero al dominar dicho método de desarrollo de software, la herencia y portabilidad del programa desarrollado en el próximo proyecto se utilizará por completo, lo que contribuirá a obtener el doble de resultado con la mitad del esfuerzo en nuestro futuro desarrollo de software. Hoy en día, la competencia en el mercado es cada vez más feroz. Cómo completar proyectos en un tiempo limitado y satisfacer las necesidades de los clientes se ha convertido en una realidad que los tomadores de decisiones corporativas deben afrontar. Anychat puede ahorrarle tiempo de desarrollo y acortar el ciclo de desarrollo del proyecto; ahorrar costos de desarrollo y reducir la inversión en recursos humanos. La plataforma se desarrolla de forma independiente para mejorar la competitividad integral de la empresa, es multiplataforma y tiene una amplia gama de campos de aplicación; La interfaz API es rica y fácil de integrar con empresas de terceros. Soporte técnico profesional, rendimiento estable y confiable.