This invention relates to a digital video delivery alarm computer system.
Alarm monitoring computer systems have been developed and implemented. Conventional alarm monitoring computer systems are typically limited by bandwidth, costs, and other constraints. These constraints have limited the delivery of digital video through alarm monitoring computer systems. Current proposals have not delivered solutions that adequately display digital video through an alarm monitoring computer system constrained by relatively low bandwidth.
In one embodiment, a computer readable medium having non-transitory memory for storing machine instructions that are to be executed by a digital video delivery alarm computer is disclosed. The machine instructions when executed by the digital video alarm computer implement the following function: determining a receipt frame rate for receiving digital video frames including first and second digital video frames by the digital video delivery alarm computer from a digital video transmitting computer having a transmit frame rate for transmitting digital video frames including the first and second digital video frames. The functions further include adjusting a display frame rate for displaying the digital video frames including the first and second digital video frames through the digital video delivery alarm computer. The display frame rate is less than the transmit frame rate. The digital video frames are associated with a digital video event.
In another embodiment, a computer readable medium having non-transitory memory for storing machine instructions that are to be executed by a digital video delivery alarm computer is disclosed. The machine instructions when executed by the digital video alarm computer implement the following functions: receiving a digital video frame. The functions further include storing the digital video frame in a video cache upon determining the digital video frame is a complete digital video frame. The functions also include accessing the digital video frame to render the digital video frame to create a rendered digital video frame. The functions also include displaying the rendered digital video frame.
In yet another embodiment, a computer readable medium having non-transitory memory for storing machine instructions that are to be executed by a digital video delivery alarm computer is disclosed. The machine instructions when executed by the digital video alarm computer implement the following function: receiving a first video stream and a second video stream. The first video stream includes a number of first digital video frames and the second video stream includes a number of second digital video frames. The functions further include selectively displaying the number of first digital video frames in a first window at a first display frame rate such that the displayed first digital video frames in the number of first digital video frames are complete first digital video frames. The functions also include selectively displaying the number of second digital video frames in a second window at a second display frame rate such that the displayed second digital video frames in the number of second digital video frames are complete second digital video frames.
Embodiments of the present disclosure are described herein. It is to be understood, however, that the disclosed embodiments are merely examples and other embodiments can take various and alternative forms. The figures are not necessarily to scale; some features could be exaggerated or minimized to show details of particular components. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a representative basis for teaching one skilled in the art to variously employ the embodiments. As those of ordinary skill in the art will understand, various features illustrated and described with reference to any one of the figures can be combined with features illustrated in one or more other figures to produce embodiments that are not explicitly illustrated or described. The combinations of features illustrated provide representative embodiments for typical applications. Various combinations and modifications of the features consistent with the teachings of this disclosure, however, could be desired for particular applications or implementations.
Live viewing of digital video on a device may be encumbered by bandwidth issues. Conventional digital video codecs (e.g., real time streaming protocol (RTSP) or (TCP)) can deliver digital video at a high frame rate across a high bandwidth network to a user's device (e.g., delivery of digital television programs to a user's television). While these conventional digital video codecs function properly within a high bandwidth ecosystem, incomplete frames may be received (e.g., pixilation) when the bandwidth does not support the high frame rate of the digital video being transmitted over the network.
Streaming digital video using a codec includes the transmission of key or reference digital video frames at intervals (e.g., regular or irregular intervals), and transmission of modification frames at intervals (e.g., regular or irregular intervals) between the intervals of transmission of key or reference digital video frames. Each of the modification frames includes data representing any changes in the frame from the key or reference frame. The data from a modification frame and its reference frame are used to reformat an image reflecting the complete image at the interval of the modification frame.
In many applications within the digital video alarm industry, the bandwidth required to deliver a high frame rate digital video may not be available or advisable due to cost constraints or other considerations. The digital video alarm system may include a digital video transmitting computer (e.g., a remote computer, a server computer, or a camera server) and a digital video receiving computer (e.g., a local computer or a user computer). Bandwidth may be an acute concern for digital video alarm industry applications when the digital video transmitting computer and the digital video receiving computer communicate through a cellular network (e.g., when the digital video receiving computer is a cell phone). What is needed is a digital video delivery computer system for displaying digital video associated with digital video alarms that compensates for bandwidth issues.
In one embodiment, a digital video delivery computer alarm system is disclosed in which the delivery of digital video to the system is adjusted based on the frame rate of receipt by the digital video transmitting computer. For instance, the frame rate of transmission may be higher than the frame rate of receipt. The digital video delivery system accounts for the frame rate of receipt such that only complete frames are delivered and displayed by the computer alarm system. This may sacrifice frame rate to retain integrity and quality of the digital video frames displayed. Therefore, the quality images may be displayed with a time delay to reduce the transmission frame rate to the receipt frame rate. Non-quality frames (e.g., those frames with incomplete data) are not displayed. An example of incomplete data is a frame where less than all the data is received regarding one or more pixels. In one or more embodiments, the key frames are displayed in systems where the key frame includes complete data. In one or more embodiments, at least each key frame is displayed. Additionally, complete modification frames may also be displayed. While this technique may not display every frame, the frames displayed are high quality and still give enough visual representation to detect an alarm event in the digital video stream (e.g., an intruder crossing the view of the digital camera). The techniques of one or more embodiments are applicable to display interfaces including many windows for different live video feeds while maintain the integrity of each video feed.
Alarm monitoring server 16 includes alarm monitoring module 26 and alarm monitoring database 28. Alarm monitoring module 26 may be configured to display graphical user interfaces (GUIs) on user device 30. User device 30 may be used by a user of digital video delivery alarm computer system 10. The user may be a subscriber of alarm services associated with digital video delivery alarm computer system 10. The user may be an operator at a central station or a client site. Alarm monitoring module 26 may be configured to receive digital video clips and/or digital video frames from cloud server 14. Alternatively or additionally, alarm monitoring module 26 may be configured to receive digital video clips and/or digital video frames directly from client network 12. Alarm monitoring database 28 may be configured to selectively store digital video clips and/or digital video frames received from cloud server 14.
Web browser API tool 52 may be executed on user device 30 via web browser software installed physically or virtually on user device 30. Web browser API tool 52 may be built into the web browser software. The features of web browser API tool 52 may be provided through the web browser software and/or web apps. Web browser API tool 52 may be configured to provide client-side (e.g., digital video delivery alarm computer system users) features. Web browser API tool 52 may be configured to receive and to transmit data and instructions from and to web browser AJAX tool 54. In one or more embodiments, web browser API tool 52 does not include any AJAX features or functionality, but rather relies on such AJAX features and/or functionality being provided by web browser AJAX tool 54.
Web browser AJAX API tool 54 may be executed on user device 30 via web browser software installed physically or virtually on user device 30. Web browser API tool 54 may be built into the web browser software. Web browser AJAX API tool 54 is configured to retrieve data (e.g., digital video) from HTTP or file transfer protocol (FTP) web server. Such retrieval may not depend on the format of the data being transmitted. In such embodiments, data can be retrieved independent of the format of the data being transmitted to AJAX API tool 54. Web browser AJAX API tool 54 may utilize features from JavaScript, extensible markup language (XML), dynamic hypertext markup language (DHTML), document object model (DOM), and/or Microsoft features. Web browser AJAX API tool 54 may be configured to receive and transmit data and instructions from and to HTTP API 56.
HTTP API tool 56 may be executed on user device 30 via web browser software installed physically or virtual on user device 30. HTTP API tool 56 may be configured to act as a communication protocol between a digital video transmitting computer (e.g., a remote computer, a server computer, or a camera server) and a digital video receiving computer (e.g., a local computer or a user computer). HTTP API tool 56 may be configured to endpoints (e.g., the digital video transmitting computer and the digital video receiving computer) as API gateways for HTTP requests to have access to a server (e.g., cloud server 14). In one or more embodiments, HTTP API tool 56 is configured to receive and to transmit data and instructions from and to video client 58.
In one or more embodiments, video client 58 is a computer application configured for live viewing, control, search and/or playback features for any camera connected to a network. Non-limiting examples of cameras include network cameras 18A to 18N as shown in
Video cache 60 is configured to store digital video (e.g., digital video clips and digital video frames). This digital video may be received from cloud server 14 or camera network 12. Video cache 60 is configured to retrieve the digital video more quickly for display than retrieval (i.e., transmission) from cloud server 14 or camera network 12. In one or more embodiments, implementation of an intermittent time delay permits retrieval of digital video directly from cache instead of directly from cloud server 14 or camera network 12 to use the bandwidth of digital video delivery alarm computer system more efficiently 10. Video cache 60 may be installed on user computer 30. Video cache 60 may be configured to receive and to transmit data and instructions to and from HTTP API tool 56, and video client 58.
In one embodiment, web browser application programming interface (API) tool 52, web browser asynchronous JavaScript and XML (AJAX) API tool 54, hypertext transfer protocol (HTTP) API tool 56, video client 58, and video cache 60 may be used in combination to provide a digital video delivery alarm system that reduces display of incomplete or missing digital frames through an alarm monitoring software user interface.
As depicted in operation 62 of digital video delivery process 50 as shown in
As depicted in operation 64 of digital video delivery process 50 as shown in
As depicted in operation 66 of digital video delivery process 50 as shown in
As depicted in operation 72 of digital video delivery process 50 as shown in
In response to operation 72, video cache 60 serves the most recent frame stored in video cache 60 as depicted by operation 74. As depicted on
As depicted in operation 76 of digital video delivery process 50 as shown in
As depicted in operation 78 of digital video delivery process 50 as shown in
As depicted in operation 80 of digital video delivery process 50 as shown in
As part of second branch from operation 66, HTTP API 56 determines if a video client exists as shown in operation 82 of
Digital video delivery process 50 may be a threaded process for a relatively large number of video streams (e.g., 10 to 100) such that a display interface may have a relatively large number of windows, each displaying a different live video feed without low quality frames being displayed. Therefore, the processes of one or more embodiments can be used to maintain the integrity of each of the video feeds.
The following applications are related to the present application: U.S. patent application Ser. No. 17/232,284, filed on Apr. 16, 2021, U.S. patent application Ser. No. 17/232,247, filed on Apr. 16, 2021, U.S. patent application Ser. No. 17/232,261, filed on Apr. 16, 2021, U.S. patent application Ser. No. 17/232,266, filed on Apr. 16, 2021, U.S. patent application Ser. No. 17/232,275, filed on Apr. 16, 2021, U.S. patent application Ser. No. 17/232,296, filed on Apr. 16, 2021, and U.S. patent application Ser. No. 17/675,673, filed Jun. 17, 2022, which are each incorporated by reference in their entirety herein.
The processes, methods, or algorithms disclosed herein can be deliverable to/implemented by a processing device, controller, or computer, which can include any existing programmable electronic control unit or dedicated electronic control unit. Similarly, the processes, methods, or algorithms can be stored as data and instructions executable by a controller or computer in many forms including, but not limited to, information permanently stored on non-writable storage media such as ROM devices and information alterably stored on writeable storage media such as floppy disks, magnetic tapes, CDs, RAM devices, and other magnetic and optical media. The processes, methods, or algorithms can also be implemented in a software executable object. Alternatively, the processes, methods, or algorithms can be embodied in whole or in part using suitable hardware components, such as Application Specific Integrated Circuits (ASICs), Field-Programmable Gate Arrays (FPGAs), state machines, controllers or other hardware components or devices, or a combination of hardware, software and firmware components.
Any combination of computer-readable media may be utilized to implement the systems and processes of any embodiment disclosed herein. Computer-readable media may be a computer-readable signal medium and/or a computer-readable storage medium. A computer-readable storage medium may include any suitable tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. A computer-readable signal medium may include a propagated data signal with computer-readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, and/or any suitable combination thereof. A computer-readable signal medium may include any computer-readable medium that is not a computer-readable storage medium and that is capable of communicating, propagating, or transporting a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless, optical fiber cable, RF, and/or the like, and/or any suitable combinations thereof. Computer program code for carrying out operations for aspects of the systems described herein may be written in one or any combination of programming language such as Java, Smalltalk, C++, and conventional procedural programming languages, such as C. Mobile apps may be developed using any suitable language, including those previously mentioned, as well as Objective-C, Swift, c #, and HTML5.
While exemplary embodiments are described above, it is not intended that these embodiments describe all possible forms encompassed by the claims. The words used in the specification are words of description rather than limitation, and it is understood that various changes can be made without departing from the spirit and scope of the disclosure. As previously described, the features of various embodiments can be combined to form further embodiments of the invention that may not be explicitly described or illustrated. While various embodiments could have been described as providing advantages or being preferred over other embodiments or prior art implementations with respect to one or more desired characteristics, those of ordinary skill in the art recognize that one or more features or characteristics can be compromised to achieve desired overall system attributes, which depend on the specific application and implementation. These attributes can include, but are not limited to cost, strength, durability, life cycle cost, marketability, appearance, packaging, size, serviceability, weight, manufacturability, ease of assembly, etc. As such, to the extent any embodiments are described as less desirable than other embodiments or prior art implementations with respect to one or more characteristics, these embodiments are not outside the scope of the disclosure and can be desirable for particular applications.