CN112087632A - Video processing system, method, storage medium and computer device - Google Patents

Video processing system, method, storage medium and computer device Download PDF

Info

Publication number
CN112087632A
CN112087632A CN201910507785.4A CN201910507785A CN112087632A CN 112087632 A CN112087632 A CN 112087632A CN 201910507785 A CN201910507785 A CN 201910507785A CN 112087632 A CN112087632 A CN 112087632A
Authority
CN
China
Prior art keywords
video
code stream
computing
stream
module
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.)
Pending
Application number
CN201910507785.4A
Other languages
Chinese (zh)
Inventor
周昌
吴岳
赖百胜
丁玮
姜海曙
张�浩
夏亮
王维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910507785.4A priority Critical patent/CN112087632A/en
Publication of CN112087632A publication Critical patent/CN112087632A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

The invention discloses a video processing system, a video processing method, a storage medium and computer equipment. Wherein, this video processing system includes: the video access subsystem and the video computation subsystem, wherein, the video access subsystem includes: the video decoding module is used for receiving videos and decoding the received videos to obtain code streams in a preset video stream format, and the video code stream distribution module is used for distributing the code streams in the preset video stream format obtained by the video decoding module; and the video computing subsystem is used for performing parallel computing processing on the code stream distributed by the video code stream distribution module. The invention solves the technical problem that a large amount of videos cannot be efficiently and comprehensively processed by a system.

Description

Video processing system, method, storage medium and computer device
Technical Field
The present invention relates to the field of computers, and in particular, to a video processing system, a video processing method, a storage medium, and a computer device.
Background
There are tens of thousands of cameras in the city, and the mass video data of production every day is equivalent to 1000 hundred million pictures, and these video data have occupied very big proportion in various government data such as city management, safety, traffic, safety supervision, building, fire control, environment, etc. and play an important role in aspects such as city management, public safety, traffic management, environmental protection, etc. However, there is an increasing demand for real-time, comprehensive and full-scale video analysis, which has not been solved effectively, in the past.
Therefore, in the related art, there is a problem that a large amount of video cannot be efficiently and comprehensively processed by a system.
In view of the above problems, no effective solution has been proposed.
Disclosure of Invention
The embodiment of the invention provides a video processing system, a video processing method, a storage medium and computer equipment, which at least solve the technical problem that a large amount of videos cannot be efficiently and comprehensively processed by a system.
According to an aspect of an embodiment of the present invention, there is provided a video processing system including: the system comprises a video access subsystem and a video computing subsystem, wherein the video access subsystem comprises: the video decoding module is used for receiving videos and decoding the received videos to obtain code streams in a preset video stream format, and the video code stream distribution module is used for distributing the code streams in the preset video stream format obtained by the video decoding module; and the video computing subsystem is used for performing parallel computing processing on the code stream distributed by the video code stream distribution module.
According to another aspect of the embodiments of the present invention, there is also provided a video processing method, including: receiving a video, and decoding the received video to obtain a code stream in a preset video stream format; distributing the code stream in the preset video stream format; and carrying out parallel computing processing on the distributed code streams.
According to still another aspect of the embodiments of the present invention, there is also provided a storage medium storing a program, wherein when the program is executed by a processor, the program controls the processor to execute any one of the video processing methods described above.
According to still another aspect of the embodiments of the present invention, there is also provided a computer apparatus, including: a memory and a processor, the memory storing a computer program; the processor is configured to execute the computer program stored in the memory, and when the computer program runs, the processor is enabled to execute any one of the video processing methods.
In the embodiment of the invention, the video access subsystem is adopted to decode the received video to obtain the code stream in the preset video stream format, and the video computing subsystem is adopted to perform parallel computing processing on the code stream distributed by the video code stream distribution module.
Drawings
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, illustrate embodiment(s) of the invention and together with the description serve to explain the invention without limiting the invention. In the drawings:
fig. 1 is an overall block diagram of a hardware structure of a video processing system according to an embodiment of the present invention;
fig. 2 is a schematic structural diagram of a preferred video processing system according to embodiment 1 of the present invention;
FIG. 3 is an architectural diagram of a video processing system in accordance with a preferred embodiment of the present invention;
fig. 4 is a flowchart of a video processing method according to embodiment 2 of the present invention.
Detailed Description
In order to make the technical solutions of the present invention better understood, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
It should be noted that the terms "first," "second," and the like in the description and claims of the present invention and in the drawings described above are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used is interchangeable under appropriate circumstances such that the embodiments of the invention described herein are capable of operation in sequences other than those illustrated or described herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
First, some terms or terms appearing in the description of the embodiments of the present application are applicable to the following explanations:
the method comprises the steps of video structuring, video data structuring processing, intelligent analysis on an original video, extraction of key information and extraction of a moving target into a picture.
Example 1
According to the embodiment of the present invention, a system embodiment of a video processing system is further provided, and it should be noted that the video processing system provided in the first embodiment of the present application may be applied to various types of devices, for example, a terminal device or a server device on a network side. Fig. 1 is an overall block diagram of a hardware structure of a video processing system according to an embodiment of the present invention. As shown in fig. 1, the video processing system 10 may include: a client device 101 (the client device 101 includes but is not limited to a mobile terminal, a desktop computer, a notebook computer, etc.) connected through a network, one or more processors 102 (the processors 102 may include but is not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA), and a memory 103 for storing data. Besides, the method can also comprise the following steps: a transmission module, a display, an input/output interface (I/O interface), a Universal Serial Bus (USB) port (which may be included as one of the ports of the I/O interface), a network interface, a power source, and/or a camera. It will be understood by those skilled in the art that the structure shown in fig. 1 is only an illustration and is not intended to limit the structure of the electronic device. For example, video processing system 10 may also include more or fewer components than shown in FIG. 1, or have a different configuration than shown in FIG. 1.
It should be noted that the one or more processors 102 and/or other data processing circuitry described above may be referred to generally herein as "data processing circuitry". The data processing circuitry may be embodied in whole or in part in software, hardware, firmware, or any combination thereof. Further, the data processing circuit may be a single stand-alone processing module, or incorporated in whole or in part into any of the other elements in the video processing system 10. As referred to in the embodiments of the application, the data processing circuit acts as a processor control (e.g. selection of a variable resistance termination path connected to the interface).
The memory 103 may be used for storing software programs and modules of application software, and the processor 102 executes various functional applications and data processing by running the software programs and modules stored in the memory 103, i.e. implements corresponding application programs. The memory 103 may include high speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, memory 103 may further include memory located remotely from processor 102, which may be connected to the video processing system 10 via a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The transmission module is used for receiving or sending data through a network. Examples of such networks may include wireless networks provided by the communication provider of the video processing system 10. In one example, the transmission module includes a Network adapter (NIC) that can be connected to other Network devices through a base station to communicate with the internet. In one example, the transmission module may be a Radio Frequency (RF) module, which is used for communicating with the internet in a wireless manner.
The display may be, for example, a touch screen type Liquid Crystal Display (LCD) that may enable a user to interact with a user interface of the computer terminal 10 (or mobile device).
Based on the environment of the video processing system, in order to solve the technical problem that a large amount of videos cannot be efficiently and comprehensively processed by the system, in this embodiment, the video processing system mainly includes: a video access subsystem and a video computation subsystem, fig. 2 is a schematic structural diagram of a preferred video processing system according to embodiment 1 of the present invention, and as shown in fig. 2, the video processing system includes: the system comprises a video access subsystem and a video computing subsystem, wherein the video access subsystem comprises: the video decoding module is used for receiving videos and decoding the received videos to obtain code streams in a preset video stream format, and the video code stream distribution module is used for distributing the code streams in the preset video stream format obtained by the video decoding module; and the video computing subsystem is used for performing parallel computing processing on the code stream distributed by the video code stream distribution module.
As an alternative embodiment, the video processing system may further include: the matching subsystem is used for receiving the video, calculating the type information corresponding to the video and sending the type information of the video to the video code stream distribution module, wherein the video code stream distribution module is also suitable for: and distributing the code stream in the preset video stream format obtained by the video decoding module according to the type information of the video. The type information of the video may include various types, for example, may include: one or more of outdoor place type, indoor place type, article type and person type. The matching subsystem can effectively realize videos with various types of information, thereby supporting the processing of various types of information. It should be noted that the above listed outdoor location types, indoor location types, article types, and person types are only examples, and are not exhaustive.
As an alternative embodiment, the video decoding module may be used to access various types of video outside of the video processing system. For example, since videos may be sourced from various types of cameras or other video sources, and protocols supported by different cameras or other video sources are different, in order to support various types of cameras or other video sources, the video decoding module may convert the protocols supported by different cameras or other video sources, for example, videos collected from different cameras or other video sources may be converted into a unified standard code stream, and the unified standard code stream is processed by the video processing system.
As an alternative embodiment, the predetermined video stream format may include a plurality of formats, for example, a unified video stream format, which may be a default of the video processing system or may be flexibly modulated by a designer according to requirements. In addition, the video stream format in which the number of the cameras or other video sources exceeds a certain value within a certain time can be selected according to the protocol selection supported by most of the cameras or other video sources at present, for example, to improve the processing efficiency of the video and reduce the protocol conversion process in the middle process of video processing.
As an alternative embodiment, the predetermined video stream format may be one or more video stream formats, for example, a generalized video stream format, or a video stream format set including a plurality of video stream formats, where the video stream format set includes: a plurality of video stream formats for selection by the video processing system. It should be noted that, by adopting the manner of video stream format set, the application of the video processing system can be more flexible and more applicable. For example, when one of the video stream formats cannot meet the video processing requirements of the user, the other video stream format may be selected for processing.
As an alternative embodiment, since a Transport Stream (TS) has a benefit of being easier to process, in order to improve the processing efficiency and quality of the video, the received video may be decoded to obtain a code Stream of a predetermined video Stream format of the TS, that is, the format of the code Stream processed in the video processing system may be the video Stream format of the Transport Stream TS. Moreover, because the length of the transport packets of the TS is fixed, TS segments can be seamlessly spliced, so that the player can continuously play, and the subsequent calculation module can also continuously perform decoding calculation on the video, thereby having better robustness for the problems of packet loss and the like. In addition, the TS stream message has simple format, reduces the decoding difficulty of a calculation module and increases the decoding stability.
As an optional embodiment, in a case that a video stream format processed in the video processing system is a video stream format of a TS, when the video decoding module implements a function of decoding a received video to obtain a code stream of a predetermined video stream format, the video decoding module may include a plurality of processing units, for example, the video decoding module may include: a Session Initiation Protocol (SIP) signaling unit, a Real-time Transport Protocol (RTP)/Real-time Transport Control Protocol (RTCP) receiving unit, and a TS unit, which are used to describe the functions of each unit in decoding to obtain a code stream in a predetermined video stream format.
The SIP signaling unit is configured to establish initial sessions with cameras of different manufacturers by adapting to protocols of the cameras of the different manufacturers, where it is to be noted that, when establishing initial sessions with cameras of different manufacturers, multiple manners may be adopted, for example, the SIP signaling unit may be implemented by sending requests through SIP servers corresponding to the cameras of the different manufacturers, and responding the requests by the SIP signaling unit; the RTP/RTCP receiving unit is used for receiving RTP/RTCP data sent by cameras of different manufacturers after the SIP signaling unit establishes an initial session, and decapsulating the RTP/RTCP data into video data, namely realizing video processing on the data received by the cameras of each manufacturer through the RTP/RTCP receiving unit to obtain initial video data; TS unit: and the video data obtained after the RTP/RTCP data is unpacked is encapsulated into a uniform TS stream. Corresponding to different video stream formats supported by cameras of different manufacturers, different video data received by an RTP/RTCP receiving unit are encapsulated into a uniform TS stream through a TS unit, the TS stream is sent to a video stream distribution module in a video access subsystem by the TS unit, and the TS stream is distributed to a processing node in a video processing system by the video stream distribution module to realize the processing of videos.
As an alternative embodiment, in order to make the processing of the video efficient, the use of resources in the video processing system is also made more reasonable. Therefore, when the video code stream distribution module is used for distributing the code stream of the predetermined video stream format obtained by the video decoding module, the video code stream distribution module can distribute the code stream of the predetermined video stream format obtained by the video decoding module according to the type information of the video, and can also distribute the code stream of the predetermined video stream format obtained by the video decoding module according to a predetermined scheduling policy, or combine the two to distribute the code stream of the predetermined video stream format. Therefore, the video to be processed is distributed to the appropriate processing nodes for processing.
As an alternative embodiment, the predetermined scheduling policy may include a plurality of types, for example, at least one of the following: a polling scheduling strategy for distributing the video code stream according to a preset circulating sequence; distributing a search scheduling strategy of the video code stream according to a preset search condition; distributing a tracking scheduling strategy of the video code stream according to a preset track space-time condition; and distributing the scheduling strategy of the video code stream according to the preset front-end operation. The following describes each scheduling policy separately.
The polling scheduling policy for distributing the video code stream according to a predetermined cyclic sequence, where the predetermined cyclic sequence may be a sequence determined according to various factors, for example, the predetermined cyclic sequence may be a sequence according to the number of multiple cameras, or the geographic locations of the multiple cameras, or the network address sequence of the multiple cameras, and the like, and the video data acquired by each camera is pushed one by one to a corresponding processing module in the video processing system for processing. It should be noted that the processing module herein may include multiple types, for example, the processing module may be a video computing module for analyzing and processing a video, a playing module for playing the video, a video calling module for providing a search call, and the like, which are not illustrated herein.
As an optional embodiment, the search scheduling policy of the video code stream is distributed according to a predetermined search condition, where the predetermined search condition may also include multiple types, for example, the predetermined search condition may be a search condition of a user who directly requests to invoke the video, or the predetermined search condition may be a search condition after certain processing is performed on the search condition of the user. When the video code stream distribution module distributes the code stream in the preset video stream format, the cameras meeting the search conditions are screened out from the cameras according to the corresponding search conditions, and the code streams corresponding to the screened cameras are distributed to the corresponding processing modules for respective processing.
As an optional embodiment, a tracking scheduling policy of a video code stream is distributed according to a predetermined track space-time condition, where the track space-time condition referred to herein may be for a moving camera, and since the camera may be mobile, the camera may be located at different positions at different times, that is, the geographic position where the camera is located may be different, so that for such a type of camera, a camera meeting requirements may be screened out according to the predetermined track space-time condition, and a code stream corresponding to the camera is distributed to the processing module described above for processing.
As an alternative embodiment, the scheduling policy for scheduling the video code stream is distributed according to a predetermined front-end operation, where the predetermined front-end operation referred to herein may be any operation performed by a user through a front-end client. For example, the operation may be a mouse click or a frame selection operation performed by the user through the front-end computer, a camera selection operation input through a keyboard of the front-end computer, or a camera touch operation selected through a touch screen of the front-end computer. Namely, according to the predetermined front-end operation, a camera to be scheduled is determined, and a code stream corresponding to the camera to be scheduled is pushed to the appropriate processing module for processing.
As an optional embodiment, the video stream distribution module is further configured to control the authority of the operation behavior of the user logging in the video processing system. For example, the video code stream distribution module assigns different permissions based on the role of the user, for example, for a general user, a general operation may be assigned; for advanced users, some special required operations may be allocated; for the administrator user, all operations are allowed. For management of the operation authority, the function may be determined according to the video, and for example, the function may include viewing the video, accessing the video, playing the video, and the like.
As an alternative embodiment, the video computing subsystem comprises: the system comprises a computing resource evaluation module and a computing processing module; the computing resource evaluation module is used for evaluating computing resources for computing the distributed code streams; and the calculation processing module is used for carrying out parallel processing on the distributed code streams according to the calculation resources obtained by evaluation. By calculating the resources required by the distributed code stream and processing the code stream according to the acquired calculation resources, the method not only can realize the real-time and efficient processing of the code stream corresponding to the video, but also can use the appropriate resources for the processing of the corresponding code stream, so that the resources are fully applied to a certain extent, for example, the excessive resources can not be used for the processing of limited small amount of code streams, and too few resources can not be used for the processing of large amount of code streams.
As an alternative embodiment, the video computing subsystem may further include: the computing resource scheduling module may also include multiple types according to different scheduling objects of the used resources, for example, at least one of the following types may be included: the single-node heterogeneous computation scheduling submodule is used for distributing computation resources for code streams distributed on the single nodes according to the configuration of machines on the single nodes; the distributed heterogeneous computing resource scheduling submodule is used for counting the computing resources required by all code stream computing tasks of the video processing system and distributing different code stream computing tasks to corresponding nodes for processing; and the distributed task dynamic allocation submodule is used for dynamically adjusting the computing resources of the code stream computing task according to the running state of the code stream computing task. The following are described separately.
As an optional embodiment, the single-node heterogeneous computation scheduling sub-module is configured to allocate computation resources to the code stream distributed on the single node according to configuration of a machine on the single node. For example, when the scheduled object is a single node in video processing (where the single node may be a computing node for processing a video or may be a generic term of a node set formed by combining certain computing logic functions), when a code stream is allocated to the single node, after computing resources required by the code stream are evaluated, resources allocated to the single node for processing the code stream may be adjusted according to actual configuration of the single node (for example, actual processing performance, actual storage performance, and the like), so that resource utilization rate of the single node and video processing amount are effectively improved.
As an optional embodiment, the distributed heterogeneous computing resource scheduling sub-module is configured to count computing resources required by all code stream computing tasks of the video processing system, and allocate different code stream computing tasks to corresponding nodes for processing; at this time, the object of resource scheduling can be the whole video processing system, namely, the whole video processing system is started, reasonable use of resources in the whole system is considered, and then different code stream calculation tasks are allocated to appropriate nodes for processing according to the requirement characteristics of the code stream calculation task corresponding to the video, so that the resource utilization rate of the whole video processing system can be effectively improved, and the energy consumption of the whole video processing system can be reduced through effective allocation of resources.
As an optional embodiment, the distributed task dynamic allocation sub-module is configured to dynamically adjust the computing resources of the code stream computing task according to the running state of the code stream computing task. Because the resources required by the code stream computing task are dynamically changed sometimes, for example, for a code stream computing task, the task is idle sometimes, that is, the computing resources are not required, and sometimes a large amount of computing resources are concentrated, different computing resources can be allocated to the code stream computing task in different time periods to adapt to the dynamic needs of the code stream computing task, so that flexible and efficient resource utilization is realized.
As an alternative embodiment, the video processing system may further include: and the searching subsystem is used for providing the video pictures which are requested to be searched for to the outside. Namely, the user can acquire the video pictures meeting the search condition from the video processing system by inputting a certain search condition. Because the video processing system can access a large number of videos supporting various protocols, the search for the user can be real-time and comprehensive.
As an alternative embodiment, the search subsystem may implement the search for the video picture in multiple ways, for example, a preferred search way is provided in this embodiment, that is, the search subsystem may include: the graph searching module, the online feature service module and the searching strategy module respectively explain operations executed by the above components.
The image searching module is used for processing the index of the video image; the index processing on the video picture may include multiple types, for example, functions such as index compression, real-time index, full-scale index, and the like may be implemented. The reduction of the page amount and the level of the index is realized through index compression, and the cost of index storage is effectively reduced. And real-time indexing realizes timely response to video pictures, and response experience of a video processing system is improved.
The online characteristic service module is used for extracting the characteristics of the video pictures which are requested to be searched; it should be noted that, when the online feature service module extracts features of a video picture, multiple modes may be adopted, for example, an artificial intelligent extraction mode may be adopted, and when a picture to be searched is directly input through a certain feature extraction model (the feature extraction model is obtained through training of multiple groups of pictures and features corresponding to the pictures), features of the video picture are output from the feature extraction model. Of course, other ways of extracting features, for example, by using certain feature extraction software, may be used to extract features by comparing them with predetermined features, which, although relatively rough, are fast.
And the searching strategy module is used for linking the image searching module and the online characteristic service module, determining the index of the video image requested to be searched through the image searching module according to the characteristics extracted by the online characteristic service module, and providing the requested video image to the outside. And finding out the corresponding video picture from the video processing system according to the determined index of the video picture, and providing the video picture outwards. When the video picture is provided to the outside, the video picture may be provided in a plurality of ways, for example, the video picture may be directly output, or the video picture may be played, and the video picture may be flexibly selected according to specific requirements.
Based on the foregoing embodiment and the preferred embodiment, in the embodiment of the present invention, a preferred implementation is further provided, fig. 3 is a schematic architecture diagram of a video processing system according to the preferred implementation of the present invention, and as shown in fig. 3, main functions of the video processing system include: the video access function, the video calculation function and the video picture search function. The video access function is realized through the video access subsystem, the video calculation function is realized through the video calculation subsystem, and the video picture search function is realized through the search subsystem.
The video access subsystem is mainly responsible for video access, coding and transcoding and fragmentation service; for example, display and play of videos are supported, such as live and on-demand video; as another example, the capability of real-time online and offline of any point of video can be supported.
The video computing subsystem is mainly used for realizing the parallel processing of large-scale videos by relying on a stream computing platform; for example, providing summaries of key videos, storage of compressed pictures and query management is supported; the control, historical/real-time video analysis, track tracking, third-party pictures and special quantification of upper-layer key personnel are supported; and supports analysis of the person's up/down line and update configuration capabilities.
The search subsystem mainly comprises a large-scale graph search engine (the function of which is the same as that of the graph search module), an online characteristic service module and a search strategy engine (the function of which is the same as that of the search strategy module). The graph search engine is responsible for realizing the functions of index compression, real-time index, full index and the like; the online characteristic service module is responsible for extracting and searching the characteristics of the inquired picture; the search strategy engine is responsible for linking the online characteristic service module and the picture search engine and providing target picture search service for the outside. In addition, the online feature service module and the search strategy engine also have the functions of high concurrent load balancing, background operation and maintenance control, log maintenance and the like.
The video processing system can be used for the field of urban management security and protection and mainly comprises the following advantages:
(1) video access innovation: the streaming media technology is deeply innovated, breaks the interface of the internet and security protection, and supports multi-specification real-time and offline video access, such as the real-time and offline access of national standard videos and owner videos;
(2) fusing various data: various data fusion such as RFID/sensor/holder is supported;
(3) flexible deployment of the architecture: and video dynamic scheduling (city scanning) is supported, and dynamic deployment of video analysis capacity is realized, so that the requirements of cities with different scales from large and medium cities to county-level cities, prefecture-level cities and the like are flexibly met.
(4) Clinging to actual combat requirements: and the service actual combat functions of real-time management and control application, progressive video search, extremely-fast offline video analysis and the like are supported.
When the video processing system carries out specific processing on the video, the method mainly comprises two parts: one part is that the receiving and the distribution of the video are realized, the video access subsystem is adopted to realize the realization, and the method comprises the following steps: a video decoding engine (with the same function as the video decoding module) and a large-scale video code stream distribution management and control subsystem (with the same function as the video code stream distribution module); another part is that, the analysis processing performed on the distributed video is implemented by using the video computing subsystem, which includes: the large-scale video computing resource scheduling management and control subsystem and the large-scale video parallel processing subsystem based on the stream computing platform are respectively described below.
Video decoding engine
The video decoding engine is mainly used for receiving and analyzing large-scale commodity code streams. The video decoding engine can receive video code streams of a front-end camera or a video platform through a GB/T28181 protocol, and can realize the standardization of the code streams through protocol conversion, so that the video decoding engine is used for subsequent code stream forwarding, video playing and video calculation.
The GB/T28181 video format conversion has the function of converting the camera code Stream of each manufacturer into a Transport Stream (TS) video Stream format which is relatively easy to process in real time, realizing the non-standard protocol for isolating each camera manufacturer, and guiding the standard TS Stream into a video distribution module for video playing and video calculation. Because the length of the transmission packet of the TS is fixed, the TS segments can be seamlessly spliced, so that the player can continuously play, the subsequent calculation module can also continuously perform decoding calculation on the video, and the method has better robustness for the problems of packet loss and the like. In addition, the TS stream message has simple format, reduces the decoding difficulty of a calculation module and increases the decoding stability. The video decoding engine includes:
session Initiation Protocol (SIP) signaling module (corresponding to the SIP signaling unit referred to in the above embodiments): the module is responsible for receiving an Invite request of an SIP signaling server and preparing a User Datagram Protocol (UDP) receiving port, and the module needs to be adapted to private signaling expansion of different camera manufacturers;
real-time Transport Protocol (RTP)/Real-time Transport Control Protocol (RTCP) receiving module (corresponding to the RTP/RTCP receiving unit in the above embodiments): the real-time transport protocol (RTP) server is responsible for receiving RTP data sent by the media server, de-encapsulating the RTP data into audio and video data, and processing and sending an RTCP message;
TS module (corresponding to TS unit referred to in the above embodiments): and the system is responsible for analyzing metadata and video code streams in the RTP message, removing wrong message data, removing problems of mosaics and the like caused by transmission errors such as packet loss and the like, packaging into a standard TS stream and sending the standard TS stream to a video code stream distribution management and control subsystem.
(II) large-scale video code stream distribution management and control subsystem
And the large-scale video code stream distribution management and control subsystem is used for realizing the distribution of the code stream pushed by the third-party platform, thereby realizing the safe user access and the flexible video transmission. The video code stream distribution management and control subsystem mainly comprises the following functions:
and (3) user authority management: the video code stream distribution management and control subsystem realizes the authority access management of users logging in the system, and realizes the user operation behaviors of safe equipment viewing, platform access, stream control, video browsing, video playback and the like through the authority management based on roles and the users.
Video scheduling: video scheduling carries various scheduling policies that determine which instant video data should be provided for visual computation or video playback. For example, scheduling policies include: scheduling strategy modes such as polling scheduling, searching scheduling, tracking scheduling and scheduling. The following are described separately.
1. And (3) polling scheduling: and circularly calling the instant video data of the imaging equipment according to a certain sequence, such as the serial number of the imaging equipment, the geographic position of the imaging equipment and the like, and pushing the instant video data to the corresponding processing modules one by one to perform visual calculation or video playing.
2. Searching and scheduling: and simultaneously calling the imaging equipment meeting the searching conditions according to certain searching conditions, such as the number of a single imaging equipment or a batch of imaging equipment, the geographic position of the single imaging equipment or the batch of imaging equipment and the like, and pushing the instant video data to a corresponding processing module for visual calculation or video playing.
3. Tracking and scheduling: and calling the imaging equipment meeting the track space-time condition according to a certain track condition and track parameters such as time, geographic position and the like, and pushing the instant video data to a corresponding processing module for visual calculation or video playing.
4. Scheduling and dispatching: and scheduling the imaging equipment according to a certain target condition, such as mouse click or mouse frame selection of the front end, according to a space-time condition corresponding to the front end operation, and pushing the instant video data to a corresponding processing module for visual calculation or video playing.
(III) large-scale video computing resource scheduling management and control subsystem
The large-scale video computing resource scheduling and controlling subsystem is mainly used for controlling video computing resources of a cloud platform and automatically regulating and controlling resource allocation and dynamic adjustment of large-scale video computing. The main functions include: the method comprises the steps of single-node heterogeneous computing scheduling, distributed heterogeneous computing resource scheduling and distributed task dynamic allocation. The following are described separately.
(1) And (3) single-node heterogeneous computing scheduling: the method comprises the steps of evaluating the demand of computing resources based on a computing model, distributing proper heterogeneous computing resources (CPU, GPU and the like) and model operation parameters for the computing model on a single node according to the actual configuration of a machine, and improving the resource utilization rate and the video processing quantity of the single node.
(2) And (3) scheduling distributed heterogeneous computing resources: the method comprises the steps of counting and evaluating computing resources of all tasks running on a streaming computing platform, distributing different computing tasks to appropriate computing nodes according to the composition of heterogeneous computing resources and the resource demand characteristics of different tasks, sharing and multiplexing through a cloud resource pool, fully playing multi-core efficiency, guaranteeing elastic expansion, improving the utilization rate of heterogeneous resources of the whole cluster, and reducing the energy consumption of the whole cluster.
(3) Distributed task dynamic allocation: due to the change of time periods, scenes and the like, the resource requirements of different computing tasks at different time periods are different. The distributed task dynamic allocation carries out real-time statistical analysis on the running state of the tasks and effectively reallocates the tasks. And elastic and efficient resource utilization is realized through peak interleaving multiplexing.
(IV) large-scale video parallel processing subsystem based on stream computing platform
The stream computing-Blink is a streaming big data analysis platform running on AliOS, and provides a tool for a user to perform real-time analysis processing on streaming data on the cloud. At present, flow computing products are widely applied in dozens of fields in various environments, and efficient and stable real-time solutions are provided for various industries.
The large-scale video parallel processing subsystem based on the stream computing platform can effectively utilize various computing resources to perform parallel processing on large-scale videos based on a Blink stream computing tool. The large-scale video parallel processing subsystem based on the stream computing platform has the characteristics of comprehensiveness, totality, real-time performance, flexibility, openness and the like.
Comprehensive: sensor data for a full docking city, comprising: various cameras, Media Access Control (MAC) signals, Global Positioning System (GPS) signals, internet data and the like are used for carrying out unified resource scheduling, data analysis and storage through a preset processing System, the data are input into an artificial intelligence algorithm of a city brain to obtain unified and standard thematic structured data, and various applications of the ecosphere are supported upwards.
The total amount is as follows: based on object storage, database and other storage technologies and image search engine index service, full-scale storage and full-scale index of unstructured data such as video code streams and pictures, and structured data such as target attributes and feature vectors are provided.
Real-time: based on the distributed heterogeneous scheduling and the calculation acceleration function, the real-time video calculation and the extremely-speed offline video analysis are provided, and services such as real-time indexing, real-time searching and the like are provided.
Flexibility: and video dynamic scheduling (city scanning) is supported, and dynamic deployment of video analysis capacity is realized, so that the requirements of cities with different scales from large and medium cities to county-level cities, prefecture-level cities and the like are flexibly met.
Opening: the video processing system supports open algorithm access and application access, allows a third algorithm manufacturer to conveniently access the video processing system, fully utilizes excellent algorithms of the algorithm manufacturer and the computing power of the urban visual intelligent engine, and provides high-quality and convenient data support for upper-layer application through an open data access mode.
The video processing system provided by the preferred embodiment can be a platform for really realizing cloud deployment, and has the following advantages: rapid, flexible deployment; performing real-time/off-line round-robin peak shifting multiplexing; the reliability is high; in addition, the video processing system is also a fully open system that supports: fusion from algorithm to full application: supporting the seamless access of external data; in addition, it supports: the open interface and the algorithm engine are developed in a customized mode: the relevant partners can further develop the complete application using the platform output capabilities.
The video processing system provided by the preferred embodiment can fully exert multi-core efficiency and ensure elastic expansion through the sharing and multiplexing of the cloud resource pool. And elastic and efficient resource utilization is realized through peak interleaving multiplexing. By adopting multi-cloud-host distributed deployment, intelligent analysis capability can be provided as required, intelligent analysis efficiency is improved, for example, 90-hour video analysis can be completed within 1.5 hours, and case response speed is greatly improved. Through the video processing system, AI capacity, big data capacity and cloud computing capacity can be provided for an application layer, and a client can focus on service opening and innovation.
Example 2
According to an embodiment of the present invention, there is also provided a video processing method, and fig. 4 is a flowchart of a video processing method according to embodiment 2 of the present invention, as shown in fig. 4, the video processing method includes:
step S402, receiving a video, and decoding the received video to obtain a code stream with a preset video stream format;
step S404, distributing the code stream with the preset video stream format;
step S406, parallel computation processing is performed on the distributed code stream.
Through the steps, the received video is decoded to obtain the code stream in the preset video stream format, and the code stream in the preset video stream format is distributed and then subjected to parallel computing processing, so that the processing of the code stream in the preset video stream format obtained by decoding the video can be achieved, and the purpose of parallel processing of the distributed code stream is realized, thereby realizing the technical effect of efficiently and comprehensively processing a large amount of videos, and further solving the technical problem that a large amount of videos cannot be efficiently and comprehensively processed.
As an alternative embodiment, receiving a video, and decoding the received video to obtain a code stream in a predetermined video stream format may employ multiple processing methods, for example, the following methods may be employed for processing: receiving a video, and calculating type information corresponding to the video, wherein the type information of the video comprises: one or more of outdoor place type, indoor place type, article type and person type. Correspondingly, distributing the code stream in the predetermined video stream format may also be processed according to the obtained type information of the video: and distributing the code stream in the preset video stream format according to the type information of the video. Through the operation, videos with various types of information can be effectively realized, so that the processing of various types of information is supported. It should be noted that the above listed outdoor location types, indoor location types, article types, and person types are only examples, and are not exhaustive.
As an alternative embodiment, the predetermined video stream format may be one or more video stream formats, for example, a generalized video stream format, or a video stream format set including a plurality of video stream formats, where the video stream format set includes: a plurality of video stream formats for selection by the video processing system. It should be noted that, by adopting the manner of video stream format set, the application of the video processing system can be more flexible and more applicable. For example, when one of the video stream formats cannot meet the video processing requirements of the user, the other video stream format may be selected for processing.
As an alternative embodiment, the predetermined video stream format comprises: video stream format of the transport stream TS.
As an alternative embodiment, distributing the code stream in the predetermined video stream format includes: distributing the code stream in a preset video stream format according to a preset scheduling strategy, wherein the preset scheduling strategy comprises at least one of the following: a polling scheduling strategy for distributing the video code stream according to a preset circulating sequence; distributing a search scheduling strategy of the video code stream according to a preset search condition; distributing a tracking scheduling strategy of the video code stream according to a preset track space-time condition; and distributing the scheduling strategy of the video code stream according to the preset front-end operation.
As an alternative embodiment, the performing parallel computation processing on the distributed code stream includes: evaluating computing resources for computing the distributed code streams; and carrying out parallel processing on the distributed code streams according to the computing resources obtained by evaluation.
As an alternative embodiment, before parallel processing the distributed code stream according to the computing resources obtained by evaluation, the method further includes: scheduling computing resources, wherein scheduling computing resources comprises at least one of: according to the configuration of a machine on a single node, allocating computing resources for the code stream distributed on the single node; counting the computing resources required by all code stream computing tasks of the video processing system, and distributing different code stream computing tasks to corresponding nodes for processing; and dynamically adjusting the computing resources of the code stream computing task according to the running state of the code stream computing task.
As an alternative embodiment, the method may further comprise: the method includes the steps of providing a video picture requested to be searched externally, wherein the video picture requested to be searched externally comprises the following steps: processing the index of the video picture, and extracting the characteristics of the video picture which is requested to be searched; and determining the index of the video picture requesting to search according to the extracted features, and providing the requested video picture outwards.
It should be noted that, for simplicity of description, the above-mentioned method embodiments are described as a series of acts or combination of acts, but those skilled in the art will recognize that the present invention is not limited by the order of acts, as some steps may occur in other orders or concurrently in accordance with the invention. Further, those skilled in the art should also appreciate that the embodiments described in the specification are preferred embodiments and that the acts and modules referred to are not necessarily required by the invention.
Through the above description of the embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be implemented by software plus a necessary general hardware platform, and certainly can also be implemented by hardware, but the former is a better implementation mode in many cases. Based on such understanding, the technical solutions of the present invention may be embodied in the form of a software product, which is stored in a storage medium (such as ROM/RAM, magnetic disk, optical disk) and includes instructions for enabling a terminal device (such as a mobile phone, a computer, a server, or a network device) to execute the method according to the embodiments of the present invention.
In addition, the steps included in the method correspond to the functions performed by the elements included in the video processing system in embodiment 1, and the method steps are the same as the implemented examples and application scenarios corresponding to the structures included in the system, but are not limited to the disclosure in embodiment 1. It should be noted that the above steps can be executed in the video processing system 10 provided in embodiment 1 as part of the method.
Example 3
The embodiment of the invention can provide a computer terminal which can be any computer terminal device in a computer terminal group. Optionally, in this embodiment, the computer terminal may also be replaced with a terminal device such as a mobile terminal.
Optionally, in this embodiment, the computer terminal may be located in at least one network device of a plurality of network devices of a computer network.
Optionally, the computer terminal may include: one or more processors, memory.
The memory may be configured to store software programs and modules, such as program instructions/modules corresponding to the video processing method and apparatus in the embodiments of the present invention, and the processor executes various functional applications and data processing by running the software programs and modules stored in the memory, so as to implement the video processing method of the above-described system. The memory may include high speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, the memory may further include memory located remotely from the processor, and the remote memory may be connected to the computer terminal through a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The processor can call the information and application program stored in the memory through the transmission device to execute the following steps: receiving a video, and decoding the received video to obtain a code stream in a preset video stream format; distributing code streams in a preset video stream format; and carrying out parallel computing processing on the distributed code streams.
Optionally, the processor may further execute the program code of the following steps: receiving a video, and decoding the received video to obtain a code stream in a predetermined video stream format, wherein the code stream comprises: receiving a video, and calculating type information corresponding to the video, wherein the type information of the video comprises: one or more of outdoor place type, indoor place type, article type and character type; distributing code streams in a preset video stream format: and distributing the code stream in the preset video stream format according to the type information of the video.
Optionally, the processor may further execute the program code of the following steps: the predetermined video stream format includes: video stream format of the transport stream TS.
Optionally, the processor may further execute the program code of the following steps: distributing the code stream in the preset video stream format comprises the following steps: and code stream in a preset video stream format is distributed according to a preset scheduling strategy, wherein the preset scheduling strategy comprises at least one of the following: a polling scheduling strategy for distributing the video code stream according to a preset circulating sequence; distributing a search scheduling strategy of the video code stream according to a preset search condition; distributing a tracking scheduling strategy of the video code stream according to a preset track space-time condition; and distributing the scheduling strategy of the video code stream according to the preset front-end operation.
Optionally, the processor may further execute the program code of the following steps: the parallel computing processing of the distributed code stream comprises the following steps: evaluating computing resources for computing the distributed code streams; and carrying out parallel processing on the distributed code streams according to the computing resources obtained by evaluation.
Optionally, the processor may further execute the program code of the following steps: before parallel processing is carried out on the distributed code streams according to the computing resources obtained by evaluation, the method further comprises the following steps: scheduling computing resources, wherein scheduling computing resources comprises at least one of: according to the configuration of a machine on a single node, allocating computing resources for the code stream distributed on the single node; counting the computing resources required by all code stream computing tasks of the video processing system, and distributing different code stream computing tasks to corresponding nodes for processing; and dynamically adjusting the computing resources of the code stream computing task according to the running state of the code stream computing task.
Optionally, the processor may further execute the program code of the following steps: the method includes the steps of providing a video picture requested to be searched externally, wherein the video picture requested to be searched externally comprises the following steps: processing the index of the video picture, and extracting the characteristics of the video picture which is requested to be searched; and determining the index of the video picture requesting to search according to the extracted features, and providing the requested video picture outwards.
By adopting the embodiment of the invention, the code stream in the preset video stream format is obtained by decoding the received video, and the code stream in the preset video stream format is distributed and then is subjected to parallel computing processing, so that the processing of the code stream in the preset video stream format obtained by decoding the video can be realized, and the purpose of parallel processing of the distributed code stream is realized, thereby realizing the technical effect of efficiently and comprehensively processing a large amount of videos, and further solving the technical problem that the large amount of videos cannot be efficiently and comprehensively processed by a system.
It can be understood by those skilled in the art that the computer terminal may also be a terminal device such as a smart phone (e.g., an Android phone, an iOS phone, etc.), a tablet computer, a palmtop computer, and a Mobile Internet Device (MID), a PAD, etc.
Those skilled in the art will appreciate that all or part of the steps in the methods of the above embodiments may be implemented by a program instructing hardware associated with the terminal device, where the program may be stored in a computer-readable storage medium, and the storage medium may include: flash disks, Read-Only memories (ROMs), Random Access Memories (RAMs), magnetic or optical disks, and the like.
Example 4
The embodiment of the invention also provides a storage medium. Optionally, in this embodiment, the storage medium may be configured to store a program code executed by the video processing method provided in the first embodiment.
Optionally, in this embodiment, the storage medium may be located in any one of computer terminals in a computer terminal group in a computer network, or in any one of mobile terminals in a mobile terminal group.
Optionally, in this embodiment, the storage medium is configured to store program code for performing the following steps: receiving a video, and decoding the received video to obtain a code stream in a preset video stream format; distributing code streams in a preset video stream format; and carrying out parallel computing processing on the distributed code streams.
Optionally, in this embodiment, the storage medium is further configured to store program code for performing the following steps: receiving a video, and decoding the received video to obtain a code stream in a predetermined video stream format, wherein the code stream comprises: receiving a video, and calculating type information corresponding to the video, wherein the type information of the video comprises: one or more of outdoor place type, indoor place type, article type and character type; distributing code streams in a preset video stream format: and distributing the code stream in the preset video stream format according to the type information of the video.
Optionally, in this embodiment, the storage medium is further configured to store program code for performing the following steps: the predetermined video stream format includes: video stream format of the transport stream TS.
Optionally, in this embodiment, the storage medium is further configured to store program code for performing the following steps: distributing the code stream in the preset video stream format comprises the following steps: distributing the code stream in a preset video stream format according to a preset scheduling strategy, wherein the preset scheduling strategy comprises at least one of the following: a polling scheduling strategy for distributing the video code stream according to a preset circulating sequence; distributing a search scheduling strategy of the video code stream according to a preset search condition; distributing a tracking scheduling strategy of the video code stream according to a preset track space-time condition; and distributing the scheduling strategy of the video code stream according to the preset front-end operation.
Optionally, in this embodiment, the storage medium is further configured to store program code for performing the following steps: the parallel computing processing of the distributed code stream comprises the following steps: evaluating computing resources for computing the distributed code streams; and carrying out parallel processing on the distributed code streams according to the computing resources obtained by evaluation.
Optionally, in this embodiment, the storage medium is further configured to store program code for performing the following steps: before parallel processing is carried out on the distributed code streams according to the computing resources obtained by evaluation, the method further comprises the following steps: scheduling computing resources, wherein scheduling computing resources comprises at least one of: according to the configuration of a machine on a single node, allocating computing resources for the code stream distributed on the single node; counting the computing resources required by all code stream computing tasks of the video processing system, and distributing different code stream computing tasks to corresponding nodes for processing; and dynamically adjusting the computing resources of the code stream computing task according to the running state of the code stream computing task.
Optionally, in this embodiment, the storage medium is further configured to store program code for performing the following steps: the method includes the steps of providing a video picture requested to be searched externally, wherein the video picture requested to be searched externally comprises the following steps: processing the index of the video picture, and extracting the characteristics of the video picture which is requested to be searched; and determining the index of the video picture requesting to search according to the extracted features, and providing the requested video picture outwards.
The above-mentioned serial numbers of the embodiments of the present invention are merely for description and do not represent the merits of the embodiments.
In the above embodiments of the present invention, the descriptions of the respective embodiments have respective emphasis, and for parts that are not described in detail in a certain embodiment, reference may be made to related descriptions of other embodiments.
In the embodiments provided in the present application, it should be understood that the disclosed technology can be implemented in other ways. The above-described embodiments of the apparatus are merely illustrative, and for example, the division of the units is only one type of division of logical functions, and there may be other divisions when actually implemented, for example, a plurality of units or components may be combined or may be integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, units or modules, and may be in an electrical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention may be embodied in the form of a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: a U-disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a removable hard disk, a magnetic or optical disk, and other various media capable of storing program codes.
The foregoing is only a preferred embodiment of the present invention, and it should be noted that, for those skilled in the art, various modifications and decorations can be made without departing from the principle of the present invention, and these modifications and decorations should also be regarded as the protection scope of the present invention.

Claims (21)

1. A video processing system, comprising: a video access subsystem and a video computation subsystem, wherein,
the video access subsystem comprises: the video decoding module is used for decoding a received video to obtain a code stream with a preset video stream format, and the video code stream distribution module is used for distributing the code stream with the preset video stream format obtained by the video decoding module;
and the video computing subsystem is used for performing parallel computing processing on the code stream distributed by the video code stream distribution module.
2. The system of claim 1, further comprising:
the matching subsystem is used for receiving a video, calculating type information corresponding to the video and sending the type information of the video to the video code stream distribution module;
wherein the video stream distribution module is further adapted to: and distributing the code stream in the preset video stream format obtained by the video decoding module according to the type information of the video.
3. The system of claim 2, wherein the type information of the video comprises: one or more of outdoor place type, indoor place type, article type and person type.
4. The system of claim 1, wherein the predetermined video stream format comprises: video stream format of the transport stream TS.
5. The system of claim 4, wherein the video decoding module comprises:
the SIP signaling unit is used for establishing initial sessions with the cameras of different manufacturers by adapting to the protocols of the cameras of the different manufacturers;
the RTP/RTCP receiving unit is used for receiving RTP/RTCP data sent by cameras of different manufacturers after the SIP signaling unit establishes an initial session, and decapsulating the RTP/RTCP data into video data;
TS unit: and the video data obtained after the RTP/RTCP data is unpacked is encapsulated into a uniform TS stream.
6. The system according to claim 1, wherein the video stream distribution module is further configured to distribute the stream of the predetermined video stream format obtained by the video decoding module according to a predetermined scheduling policy.
7. The system of claim 6, wherein the predetermined scheduling policy comprises at least one of:
a polling scheduling strategy for distributing the video code stream according to a preset circulating sequence;
distributing a search scheduling strategy of the video code stream according to a preset search condition;
distributing a tracking scheduling strategy of the video code stream according to a preset track space-time condition;
and distributing the scheduling strategy of the video code stream according to the preset front-end operation.
8. The system of claim 1, wherein the video stream distribution module is further configured to control the authority of the operation behavior of the user logging in the video processing system.
9. The system of claim 1, wherein the video computing subsystem comprises: the system comprises a computing resource evaluation module and a computing processing module; wherein,
the computing resource evaluation module is used for evaluating computing resources for computing the distributed code streams;
and the calculation processing module is used for carrying out parallel processing on the distributed code streams according to the calculation resources obtained by evaluation.
10. The system of claim 9, wherein the video computing subsystem further comprises: a computing resource scheduling module, wherein the computing resource scheduling module comprises at least one of:
the single-node heterogeneous computation scheduling submodule is used for distributing computation resources for code streams distributed on the single node according to the configuration of a machine on the single node;
the distributed heterogeneous computing resource scheduling submodule is used for counting the computing resources required by all code stream computing tasks of the video processing system and distributing different code stream computing tasks to corresponding nodes for processing;
and the distributed task dynamic allocation submodule is used for dynamically adjusting the computing resources of the code stream computing task according to the running state of the code stream computing task.
11. The system according to any one of claims 1 to 10, further comprising:
and the searching subsystem is used for providing the video pictures which are requested to be searched for to the outside.
12. The system of claim 11, wherein the search subsystem comprises: a graph search module, an online feature service module and a search strategy module, wherein,
the image searching module is used for processing the index of the video image; the online characteristic service module is used for extracting the characteristics of the video pictures which are requested to be searched; the searching strategy module is used for linking the image searching module and the online characteristic service module, determining the index of the video image requested to be searched through the image searching module according to the characteristics extracted by the online characteristic service module, and providing the requested video image to the outside.
13. A video processing method, comprising:
receiving a video, and decoding the received video to obtain a code stream in a preset video stream format;
distributing the code stream in the preset video stream format;
and carrying out parallel computing processing on the distributed code streams.
14. The method of claim 13,
receiving a video, and decoding the received video to obtain a code stream in a predetermined video stream format, wherein the code stream comprises: receiving a video, and calculating type information corresponding to the video, wherein the type information of the video comprises: one or more of outdoor place type, indoor place type, article type and character type;
distributing the code stream with the preset video stream format: and distributing the code stream in the preset video stream format according to the type information of the video.
15. The method of claim 13, wherein the predetermined video stream format comprises: video stream format of the transport stream TS.
16. The method of claim 13, wherein distributing the codestream in the predetermined video stream format comprises:
distributing the code stream in a preset video stream format according to a preset scheduling strategy, wherein the preset scheduling strategy comprises at least one of the following: a polling scheduling strategy for distributing the video code stream according to a preset circulating sequence; distributing a search scheduling strategy of the video code stream according to a preset search condition; distributing a tracking scheduling strategy of the video code stream according to a preset track space-time condition; and distributing the scheduling strategy of the video code stream according to the preset front-end operation.
17. The method of claim 13, wherein performing parallel computational processing on the distributed codestreams comprises:
evaluating computing resources for computing the distributed code streams;
and carrying out parallel processing on the distributed code streams according to the computing resources obtained by evaluation.
18. The method of claim 17, further comprising, prior to parallel processing of the distributed codestream according to computational resources obtained from the evaluation: scheduling computing resources, wherein scheduling computing resources comprises at least one of:
according to the configuration of a machine on a single node, allocating computing resources for code streams distributed on the single node;
counting the computing resources required by all code stream computing tasks of the video processing system, and distributing different code stream computing tasks to corresponding nodes for processing;
and dynamically adjusting the computing resources of the code stream computing task according to the running state of the code stream computing task.
19. The method of any one of claims 13 to 18, further comprising: the method includes the steps of providing a video picture requested to be searched externally, wherein the video picture requested to be searched externally comprises the following steps:
processing the index of the video picture, and extracting the characteristics of the video picture which is requested to be searched;
and determining the index of the video picture requesting to search according to the extracted features, and providing the requested video picture outwards.
20. A storage medium storing a program, wherein the program controls a processor to execute the video processing method according to any one of claims 13 to 19 when the program is executed by the processor.
21. A computer device, comprising: a memory and a processor, wherein the processor is capable of,
the memory stores a computer program;
the processor configured to execute a computer program stored in the memory, the computer program when executed causing the processor to perform the video processing method of any one of claims 13 to 19.
CN201910507785.4A 2019-06-12 2019-06-12 Video processing system, method, storage medium and computer device Pending CN112087632A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910507785.4A CN112087632A (en) 2019-06-12 2019-06-12 Video processing system, method, storage medium and computer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910507785.4A CN112087632A (en) 2019-06-12 2019-06-12 Video processing system, method, storage medium and computer device

Publications (1)

Publication Number Publication Date
CN112087632A true CN112087632A (en) 2020-12-15

Family

ID=73733584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910507785.4A Pending CN112087632A (en) 2019-06-12 2019-06-12 Video processing system, method, storage medium and computer device

Country Status (1)

Country Link
CN (1) CN112087632A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112991668A (en) * 2021-02-04 2021-06-18 西安美格智联软件科技有限公司 Intelligent information transmission method, system, storage medium and processing terminal
CN113453010A (en) * 2021-08-31 2021-09-28 知见科技(江苏)有限公司 Processing method based on high-performance concurrent video real-time processing framework

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104780294A (en) * 2015-04-21 2015-07-15 东方网力科技股份有限公司 FPGA Soc parallel processing-based distributed large-data volume video processing system and method
CN105451020A (en) * 2015-12-02 2016-03-30 蓝海大数据科技有限公司 Video compression method and device
CN105554591A (en) * 2015-12-02 2016-05-04 蓝海大数据科技有限公司 Video analysis method and device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104780294A (en) * 2015-04-21 2015-07-15 东方网力科技股份有限公司 FPGA Soc parallel processing-based distributed large-data volume video processing system and method
CN105451020A (en) * 2015-12-02 2016-03-30 蓝海大数据科技有限公司 Video compression method and device
CN105554591A (en) * 2015-12-02 2016-05-04 蓝海大数据科技有限公司 Video analysis method and device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112991668A (en) * 2021-02-04 2021-06-18 西安美格智联软件科技有限公司 Intelligent information transmission method, system, storage medium and processing terminal
CN112991668B (en) * 2021-02-04 2022-05-10 西安美格智联软件科技有限公司 Intelligent information transmission method, system, storage medium and processing terminal
CN113453010A (en) * 2021-08-31 2021-09-28 知见科技(江苏)有限公司 Processing method based on high-performance concurrent video real-time processing framework

Similar Documents

Publication Publication Date Title
US20210281500A1 (en) Intelligent analytics virtual network orchestration system and method
Zhang et al. Proactive workload management in hybrid cloud computing
CN103813213B (en) Real-time video sharing platform and method based on mobile cloud computing
CN108449633B (en) Set top box cloud system based on NFV and service implementation method
Tan et al. Media cloud: When media revolution meets rise of cloud computing
US20140165119A1 (en) Offline download method, multimedia file download method and system thereof
CN105451031A (en) Video transcoding method and system thereof
US11539919B1 (en) Dynamic cloud video composition
EP3624453A1 (en) A transcoding task allocation method, scheduling device and transcoding device
CN109831524A (en) A kind of load balance process method and device
CN110831039A (en) Data transmission method and transmission server in multi-path concurrent system
WO2022268032A1 (en) Video stream scheduling system and related product
CN112087632A (en) Video processing system, method, storage medium and computer device
Gao et al. Minimizing resource cost for camera stream scheduling in video data center
Li et al. A novel genetic service function deployment management platform for edge computing
CN103001989A (en) Parameter receiving method and system
Chen et al. Macrotile: Toward QoE-aware and energy-efficient 360-degree video streaming
Hui et al. MediaCloud: A new paradigm of multimedia computing
CN116456496A (en) Resource scheduling method, storage medium and electronic equipment
CN109151490A (en) A kind of data processing method and device of view networking
JP2023031248A (en) Edge computing network, data transmission method, apparatus, device, and storage medium
US20150172371A1 (en) Method and device for providing communication connection for a plurality of candidate applications in a mobile device
CN101800751B (en) Distributed real-time data-coding transmission method
CN103095562B (en) cloud computing intelligent gateway
Ting et al. Smart video hosting and processing platform for Internet-of-Things

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination