Multi-screen display method, device and equipment of NVR (Network Video Recorder) system and storage medium
By allocating an independent GUI process to each display device, combined with a lightweight GUI framework and a multi-graphics management layer, the problem of unadjustable multi-screen display layout in NVR systems is solved, enabling independent multi-screen display and efficient interaction, and improving resource utilization and user experience of embedded devices.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-31
- Publication Date
- 2026-04-21
AI Technical Summary
Existing NVR systems cannot flexibly adjust the multi-screen display layout according to user needs, resulting in poor usability, especially on embedded devices where resource consumption is high and user interaction experience is poor.
By allocating an independent GUI process to each display device, independent display of multi-screen content is achieved. A lightweight GUI framework and a multi-graphics management layer module are adopted. Frame buffers and multi-graphics overlay drivers are used to independently manage background and pointer layers, reducing resource consumption and improving interaction smoothness.
It enables independent display and free interaction of multi-screen content, reduces CPU usage, improves response speed and user interaction experience, and reduces the amount of computing and data transmission in the graphics system.
Smart Images

Figure CN121907976A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of processor technology, and in particular to a multi-screen display method, apparatus, device and storage medium for an NVR system. Background Technology
[0002] A network video recorder (NVR) is a core device in a security monitoring system, specifically designed to manage, store, and play back video streams from network cameras (IP cameras, IPCs). It receives digital video signals via a local area network (LAN) or the internet, supporting centralized recording of multiple high-definition video streams, real-time monitoring, remote access (mobile phone / computer), and intelligent retrieval and playback. Compared to traditional digital video recorders (DVRs), NVRs are based on IP networks, offer greater scalability, and provide superior image quality, making them a crucial component of modern network video surveillance systems.
[0003] However, current NVR systems only support single-screen or fixed-split display modes, and cannot flexibly adjust the layout according to user needs, resulting in poor flexibility in actual use. Summary of the Invention
[0004] This application provides a multi-screen display method, apparatus, device, and storage medium for an NVR system, which can realize independent multi-screen content display.
[0005] The technical solution of this application embodiment is implemented as follows:
[0006] This application provides a multi-screen display method for a network video recorder (NVR) system, comprising: receiving a user's instruction to start the NVR system; wherein the NVR system includes multiple graphical user interface (GUI) processes; the GUI processes are used to provide display interfaces for display devices, and each GUI process corresponds to one display device; for each of the multiple GUI processes, in response to the instruction, the display interface provided by each GUI process is output on the corresponding display device.
[0007] In some possible implementations, the above-described method of outputting the display interface provided by each GUI process on the corresponding display device in response to an instruction for each of the multiple GUI processes includes: for each GUI process, in response to an instruction, obtaining first display data corresponding to each GUI process; the first display data is used to generate a background layer for the display interface; each GUI process corresponds to one set of first display data; obtaining second display data from an input device; the second display data is used to indicate the position of a pointer in the display interface, the movement of which is controlled by the input device; and outputting a background layer and a pointer layer on the display device corresponding to each GUI process.
[0008] In some possible implementations, for each of the multiple GUI processes, in response to an instruction, obtaining the first display data corresponding to each GUI process includes: for each of the multiple GUI processes, in response to an instruction, obtaining the original graphics data generated by each GUI process; wherein each GUI process generates one set of original graphics data; determining the first display data corresponding to each GUI process based on the original graphics data corresponding to each GUI process; and each set of original graphics data corresponding to one set of first display data.
[0009] In some possible implementations, outputting a background layer and a pointer layer on the display device corresponding to each GUI process includes: overlaying the second display data and the first display data corresponding to each GUI process to obtain overlaid display data corresponding to each GUI process; each display device corresponds to one overlaid display data; and displaying the corresponding overlaid display data on each display device.
[0010] In some possible implementations, the NVR system includes a multi-graphics overlay driver. The NVR system configures a first frame buffer and a second frame buffer for each display device. The second display data and the first display data corresponding to each GUI process are overlaid to obtain overlaid display data corresponding to each GUI process. This includes: writing the first display data corresponding to each GUI process into the first frame buffer corresponding to each GUI process; writing the second display data into multiple second frame buffers; and loading the multi-graphics overlay driver to overlay the first display data in the first frame buffer and the second display data in the second frame buffer corresponding to each GUI process to obtain overlaid display data corresponding to each GUI process.
[0011] In some possible implementations, the NVR system includes a frame buffer driver, and the above method further includes: loading the frame buffer driver and registering a first frame buffer for each display device; loading the multi-graphics overlay driver and registering a second frame buffer for each display device; and binding the first frame buffer and the second frame buffer corresponding to the same display device together.
[0012] In some possible implementations, the method further includes: establishing a virtual coordinate system; the virtual coordinate system covering the display interfaces of all display devices in the NVR system; in response to the input device controlling the pointer movement, acquiring the coordinates of the pointer in the virtual coordinate system; determining the target display interface where the pointer is located among multiple display interfaces based on the coordinates; determining the target display device among multiple display devices based on the target display interface; updating the second display data corresponding to the target display device to the target display data based on the coordinates; the target display data is used to indicate the updated position of the pointer layer on the display interface.
[0013] In some possible implementations, the method further includes: responding to an input event occurring on the input device, parsing the input event by running a first GUI process and generating a control instruction; the control instruction is used to instruct a second GUI process to update the display interface, wherein the first GUI process is the GUI process corresponding to the display device receiving the input event; the second GUI process is a GUI process other than the first GUI process among a plurality of GUI processes; synchronizing the control instruction to the second GUI process; and updating the display interface corresponding to the second GUI process through the second GUI process.
[0014] This application provides a multi-screen display device for an NVR system, including: an instruction receiving module for receiving a user's instruction to start the NVR system; wherein the NVR system includes multiple graphical user interface (GUI) processes; each GUI process provides a display interface for a display device, and each GUI process corresponds to one display device; and a data processing module for outputting the display interface provided by each GUI process on the corresponding display device in response to the instruction.
[0015] In some possible implementations, the data processing module is used to, in response to an instruction, obtain first display data corresponding to each of the multiple GUI processes; the first display data is used to generate a background layer for the display interface; each GUI process corresponds to one set of first display data; obtain second display data from an input device; the second display data is used to generate a pointer position in the display interface, the movement of which is controlled by the input device; and output a background layer and a pointer layer on the display device corresponding to each GUI process.
[0016] In some possible implementations, the data processing module is used to obtain, in response to an instruction, the original graphics data generated by each of the multiple GUI processes; wherein each GUI process generates one set of original graphics data; and determines the first display data corresponding to each GUI process based on the original graphics data corresponding to each GUI process; each set of original graphics data corresponds to one set of first display data.
[0017] In some possible implementations, the data processing module is used to overlay the second display data and the first display data corresponding to each GUI process to obtain overlaid display data corresponding to each GUI process; each display device corresponds to one overlaid display data; and the corresponding overlaid display data is displayed on each display device.
[0018] In some possible implementations, the NVR system includes a multi-graphics overlay driver, with each display device configured with a first frame buffer and a second frame buffer; a data processing module for writing first display data corresponding to each GUI process into the first frame buffer corresponding to each GUI process; writing second display data into multiple second frame buffers; and, by loading the multi-graphics overlay driver, performing overlay processing on the first display data in the first frame buffer and the second display data in the second frame buffer corresponding to each GUI process to obtain overlay display data corresponding to each GUI process.
[0019] In some possible implementations, the NVR system includes a frame buffer driver, a data processing module, and is further configured to load the frame buffer driver, register a first frame buffer for each display device; load a multi-graphics overlay driver, register a second frame buffer for each display device; and bind the first and second frame buffers corresponding to the same display device together.
[0020] In some possible implementations, the data processing module is further configured to establish a virtual coordinate system; the virtual coordinate system covers the display interfaces of all display devices in the NVR system; in response to the input device controlling the pointer movement, acquire the coordinates of the pointer in the virtual coordinate system; determine the target display interface where the pointer is located among multiple display interfaces based on the coordinates; determine the target display device among multiple display devices based on the target display interface; update the second display data corresponding to the target display device to the target display data based on the coordinates; the target display data is used to indicate the updated position of the pointer layer on the display interface.
[0021] In some possible implementations, the data processing module is further configured to respond to an input event occurring on the input device by running a first GUI process to parse the input event and generate control instructions; the control instructions are used to instruct a second GUI process to update the display interface, wherein the first GUI process is the GUI process corresponding to the display device receiving the input event; the second GUI process is a GUI process other than the first GUI process among multiple GUI processes; the control instructions are synchronized to the second GUI process; and the display interface corresponding to the second GUI process is updated through the second GUI process.
[0022] This application provides an electronic device, including: a memory for storing executable instructions; and a processor for executing the executable instructions stored in the memory to implement the method provided in this application.
[0023] This application provides a computer storage medium storing executable instructions, which are used to implement the method provided in this application when executed by a processor.
[0024] This application provides a computer program product, including a computer program or instructions, which, when executed by a processor, implement the method provided in this application.
[0025] The technical solutions provided by the embodiments of this application may include the following beneficial effects:
[0026] A separate GUI process is configured for each of the multiple display devices, enabling control and management of the displayed content through a multi-process architecture. This overcomes the complexity and resource bottlenecks of managing multiple screens with a single process, achieving independent multi-screen content display.
[0027] Furthermore, the first display data corresponding to the GUI process and the second display data corresponding to the input device are managed separately, realizing the independence of the rendering process of the background layer and the pointer layer. When moving the input device, only the pointer layer with a very small amount of data needs to be updated, without re-rendering or refreshing the background layer with a huge amount of computation. This greatly reduces the amount of computation and data transmission of the graphics system, thereby reducing the CPU utilization and improving the overall response speed of the NVR system; the movement of the pointer on the display screen is smoother and is not affected by the complexity of the background layer.
[0028] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and do not limit this application. Attached Figure Description
[0029] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.
[0030] Figure 1 This is a flowchart illustrating a first embodiment of the multi-screen display method for an NVR system provided in this application.
[0031] Figure 2 This is a schematic diagram of the execution flow of the driver module provided in an embodiment of this application.
[0032] Figure 3 A schematic diagram of the GUI framework provided in the embodiments of this application.
[0033] Figure 4 This is an architecture diagram of an NVR system provided in an embodiment of this application.
[0034] Figure 5 This is a schematic flowchart of an embodiment of the multi-screen display method for an NVR system provided in this application.
[0035] Figure 6 This is a schematic diagram of the structure of a multi-screen display device for an NVR system provided in an embodiment of this application.
[0036] Figure 7 A schematic diagram of an electronic device provided in an embodiment of this application. Detailed Implementation
[0037] To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings. The described embodiments should not be regarded as limitations on this application. All other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0038] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0039] In the following description, the terms "first, second, third" are used merely to distinguish similar objects and do not represent a specific ordering of objects. It is understood that "first, second, third" may be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.
[0040] In the embodiments of this application, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.
[0041] Unless otherwise defined, all technical and scientific terms used in the embodiments of this application have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used in the embodiments of this application is for the purpose of describing the embodiments of this application only and is not intended to limit this application.
[0042] Network video recorders (NVRs) typically need to provide multiple functional interfaces, such as real-time video preview, system configuration, and artificial intelligence (AI) parameter adjustment, to meet the increasingly complex application needs of users. The graphical user interface (GUI) development of NVR products often uses resource-intensive desktop-level GUI frameworks (such as Qt). Although methods exist to achieve multi-screen (e.g., dual-screen) output, significant shortcomings remain in practical applications.
[0043] Currently, the mainstream NVR display interface solutions mainly include:
[0044] 1. Desktop-based GUI framework solutions: Solutions based on desktop-based GUI frameworks (such as Qt-based implementations) provide rich graphical interface functionality. While feature-rich and aesthetically pleasing, these frameworks themselves consume significant resources, leading to substantial memory and processor resource consumption. This resource overhead is particularly pronounced on embedded devices, especially with the increasing prevalence of AI technology. Devices need to run AI models simultaneously, continuously increasing memory demands and making the high resource consumption issue of the Qt framework even more prominent.
[0045] 2. Heterogeneous Output Multi-Screen Solution: While some heterogeneous output NVR products currently offer independent output to multiple screens (e.g., dual screens), their operation is limited by system design. Users are often restricted to adjusting other screens via menus and parameters on one screen, with each screen displaying its own image. Mouse interaction is also limited to that single screen. This design prevents users from freely interacting across multiple screens, resulting in poor usability and failing to effectively improve the overall user experience.
[0046] To address the aforementioned issues, embodiments of this application provide a multi-screen display method, apparatus, device, and storage medium for an NVR system, which can achieve independent multi-screen content display.
[0047] Figure 1 This is a flowchart illustrating a first embodiment of a multi-screen display method for an NVR system provided in this application. The method is executed by the NVR system. (See attached diagram.) Figure 1 As shown, the method may include:
[0048] In step 101, a user command to start the NVR system is received. The NVR system includes multiple GUI processes; each GUI process provides a display interface for a display device, and each GUI process corresponds to one display device.
[0049] Understandably, an NVR system is associated with multiple physical displays (i.e., display devices). The NVR system assigns a GUI process to each display, and each GUI process provides a display interface for the corresponding display.
[0050] In some embodiments, multiple GUI processes constitute the GUI framework of the NVR system. The GUI framework is one module of the NVR system. The GUI framework is used to provide the display interface for multiple display devices in the NVR system.
[0051] In some embodiments, the NVR system connects to the display device via a video interface. The NVR system allocates an independent GUI process to each display device, and the GUI process is independently responsible for the interface rendering and data output of the corresponding display device.
[0052] In one example, the GUI process is a lightweight GUI process.
[0053] In one example, each display device runs an independent GUI process. For instance, in a dual-screen scenario, one display device's screen runs the live preview process, while the other's screen runs the system configuration process. Alternatively, one display device's screen runs the live preview process, while the other's screen runs the playback process.
[0054] In this embodiment, the content displayed on each display device is independent. Different screens can display completely different or partially related user interfaces without interfering with each other. This embodiment does not specifically limit the content displayed on each display device. Furthermore, a GUI process is bound to each display device, and the UI rendering and logic management of the display interface of each display device are handled by their respective independent GUI processes. This achieves truly independent operation of multi-screen content based on the NVR system.
[0055] In step 102, for each of the multiple GUI processes, in response to the instruction, the display interface provided by each GUI process is output on the corresponding display device.
[0056] Understandably, for the i-th GUI process among multiple GUI processes, the i-th GUI process responds to instructions and outputs the display interface provided by the i-th GUI process on the corresponding display device. Here, the i-th GUI process can be any one of the multiple GUI processes.
[0057] In some possible implementations, step 102 above may include: for each of the multiple GUI processes, in response to an instruction, obtaining first display data corresponding to each GUI process; the first display data is used to generate a background layer for the display interface; each GUI process corresponds to one set of first display data; obtaining second display data from an input device; the second display data is used to indicate the position of a pointer in the display interface, the movement of which is controlled by the input device; and outputting a background layer and a pointer layer on the display device corresponding to each GUI process. The pointer layer is the layer where the pointer is located.
[0058] Understandably, after the GUI process starts, it obtains the initial display data through process initialization, local rendering, and video memory mapping. The background layer generated from this initial display data can include elements such as the monitoring screen, title bar, status bar, and menu bar. It should be noted that the background layer does not include the layer corresponding to the pointer.
[0059] In some embodiments, the NVR system responds to an instruction to start the NVR system by obtaining first display data corresponding to each display device.
[0060] In some embodiments, the pointer image indicated by the pointer layer is pre-stored in the database. When the pointer layer needs to be displayed in the display interface, the preset pointer image can be directly obtained from the database.
[0061] In some embodiments, the second display data refers to data generated by an input device (such as a mouse or touchpad) to indicate the user's interaction position. The second display data may include coordinate information to determine the position of the pointer layer on the display interface.
[0062] In some possible implementations, the above-mentioned method of obtaining the first display data corresponding to each GUI process in response to an instruction for each of the multiple GUI processes includes: obtaining the original graphics data generated by each GUI process in response to an instruction for each of the multiple GUI processes; wherein each GUI process generates one set of original graphics data; determining the first display data corresponding to each GUI process based on the original graphics data corresponding to each GUI process; and each set of original graphics data corresponding to one set of first display data.
[0063] Understandably, each GUI process runs independently, generating a raw graphic data set, which is then processed such as format conversion to obtain the first display data.
[0064] In some embodiments, each GUI process in the NVR system generates raw graphics data. This raw graphics data undergoes data format conversion (such as adjustments to resolution and color gamut) to obtain first display data. The first display data obtained after data format conversion is matched with the configuration parameters of the display device.
[0065] In some embodiments, after the NVR system starts up, a background layer and a pointer layer appear simultaneously on the display interface. The background layer originates from the GUI process, and the pointer layer originates from input events and / or movement of the input device.
[0066] In one example, the input device may include, but is not limited to, a mouse, a keyboard, a touch input device, etc.
[0067] In some embodiments, users can manipulate input devices to move pointers on the display screen and trigger input events (such as opening real-time monitoring, changing configuration parameters, zooming in on the monitoring screen, etc.).
[0068] In some embodiments, input events and movements of the input device are considered input information. This input information undergoes format conversion to obtain second display data. The second display data is displayed on the display interface as a pointer layer.
[0069] In some embodiments, the pointer layer is independent of the background layer. When the input device is moved, only the pointer layer needs to be updated, without frequently refreshing the entire background layer, which effectively reduces the UI refresh rate and resource consumption, and improves the smoothness of user interaction.
[0070] In this embodiment, the display and control of the input device are managed on a dedicated pointer layer, allowing the input device to move and switch freely and seamlessly between multiple physical displays.
[0071] In some embodiments, the pointer layer displays a different pattern on each display device depending on the current position of the input device. For example, if the display devices include display device A and display device B, and the input device moves, the pointer pattern is displayed on display device A. In this case, the pointer layer corresponding to display device A is a layer with a mouse or pointer pattern, while the pointer is not displayed on display device B. The pointer layer corresponding to display device B is a transparent layer or a blank layer. It should be noted that on the screens of multiple display devices, the pointer pattern will only appear on the screen of one of the display devices.
[0072] In some possible implementations, the above-mentioned output of the background layer and pointer layer on the display device corresponding to each GUI process may include: overlaying the second display data and the first display data corresponding to each GUI process to obtain the overlay display data corresponding to each GUI process; each display device corresponds to one overlay display data; and displaying the corresponding overlay display data on each display device.
[0073] Understandably, each second display data is overlaid with multiple first display data to obtain overlaid display data, which is used to simultaneously display the background layer and the pointer layer on the display interface of the display device.
[0074] In some possible implementations, the NVR system includes a multi-graphics overlay driver, and the NVR system configures a first frame buffer and a second frame buffer for each display device. The above-described overlay processing of the second display data and the first display data corresponding to each GUI process to obtain the overlay display data corresponding to each GUI process may include: writing the first display data corresponding to each GUI process into the first frame buffer corresponding to each GUI process; writing the second display data into multiple second frame buffers; and, by loading the multi-graphics overlay driver, overlaying the first display data in the first frame buffer and the second display data in the second frame buffer corresponding to each GUI process to obtain the overlay display data corresponding to each GUI process.
[0075] In some embodiments, within the NVR system, the software layer includes a lightweight GUI framework and a multi-graphics management layer module, wherein the multi-graphics management layer module includes a multi-graphics overlay driver. The multi-graphics overlay driver is used to overlay first display data and second display data to obtain overlay display data where a background layer and a pointer layer are bound together.
[0076] In some embodiments, the multi-graphics management layer module further includes a frame buffer system. The frame buffer system allocates a first frame buffer and a second frame buffer for each display device. The first frame buffer stores first display data corresponding to the display device, and the second frame buffer stores second display data corresponding to the display device. By performing hardware-level layer overlay on the first and second frame buffers of the same display device, overlay display data including a background layer and a pointer layer is generated.
[0077] In some embodiments, each GUI process is bound to its own first frame buffer, and the first display data obtained by the GUI process is stored in the corresponding first frame buffer. In an NVR system, each display device corresponds to one GUI process, and each GUI process corresponds to one first frame buffer.
[0078] In some embodiments, each display device corresponds to a second frame buffer, which stores second display data from the input device. The first and second frame buffers corresponding to the same display device are independent, enabling independent updates of the background layer and the pointer layer, thus decoupling the background layer and the pointer layer.
[0079] In some possible implementations, the NVR system includes a frame buffer driver. After step 102 above, the multi-screen display method of the NVR system may further include: loading the frame buffer driver and registering a first frame buffer for each display device; loading the multi-graphics overlay driver and registering a second frame buffer for each display device; and binding the first frame buffer and the second frame buffer corresponding to the same display device together.
[0080] Understandably, the frame buffer driver is one of the software components of an NVR system. Specifically, an NVR system includes a multi-graphics management layer module, which in turn includes a frame buffer system, a multi-graphics overlay driver, and a frame buffer driver.
[0081] In some embodiments, the frame buffer driver is used to register a first frame buffer for each display device in the memory region, and the multi-graphics overlay driver is used to register a second frame buffer for each display device in the memory region. After registering the second frame buffer, the multi-graphics overlay driver is also used to bind the first frame buffer and the second frame buffer of the same display device together.
[0082] In some embodiments, the updating of the second display data corresponding to the second frame buffer and the updating of the first display data corresponding to the first frame buffer are handled by different processes and are independent of each other.
[0083] In some embodiments, in the probe function of the multi-graphics management layer module, the framebuffer driver responds to the probe function by finding the registered framebuffers and then completing the pairwise binding of the first framebuffer and the second framebuffer according to the predetermined binding rules.
[0084] In one example, the framebuffer system manages multiple graphics layers (a background layer and a pointer layer for each display device). Upon initialization, the framebuffer system logically groups and binds the background and pointer layers corresponding to each display device. For example, the screen includes a first screen and a second screen. The framebuffer system manages four graphics layers: graphics layer 0, graphics layer 1, graphics layer 2, and graphics layer 3. The framebuffer system allocates a device node file for each graphics layer: / dev / fb0, / dev / fb1, / dev / fb2, and / dev / fb3. The first or second display data corresponding to the graphics layer is stored in the device node file. During framebuffer system initialization, the device node files are grouped according to their identifiers (i.e., fb0, fb1, fb2, and fb3). fb0 and fb2 are bound to the first group, and fb1 and fb3 are bound to the second group. In the first group, / dev / fb0 is designated to provide the corresponding background layer for the first screen, and / dev / fb2 is designated to provide the corresponding pointer layer for the first screen; in the second group, / dev / fb1 is designated to provide the corresponding background layer for the second screen, and / dev / fb3 is designated to provide the corresponding pointer layer for the second screen.
[0085] In this embodiment, the first and second frame buffers corresponding to the same display device are bound together to facilitate the overlay of corresponding first and second display data. However, the bound first and second frame buffers are independent, allowing for separate updates of the background layer and pointer layer. Thus, when the input device is moved, the NVR system only needs to update the pointer layer, which has a very small data volume, without needing to redraw the complex background layer, reducing UI refresh load and CPU resource consumption.
[0086] In some embodiments, the NVR system includes a driver module, which comprises: a region copy driver (e.g., cfbcopyarea.ko), a rectangular region fill driver (e.g., cfbfillrect.ko), an image bit block transfer driver (e.g., cfbimgblt.ko), a frame buffer driver (e.g., fb.ko), and a multi-graphics overlay driver. The region copy driver is responsible for providing region copy functionality, the rectangular region fill driver is responsible for implementing rectangular region fill functionality, and the image bit block transfer driver is responsible for image bit block transfer.
[0087] In one example, Figure 2This is a schematic diagram of the execution flow of the driver module provided in an embodiment of this application. See also... Figure 2 As shown, after the region copy driver, rectangular region fill driver, and image bit block transfer driver are loaded, the frame buffer driver is loaded next. The frame buffer driver is used for hardware initialization and device node registration. After the frame buffer driver is loaded, the multi-graphics overlay driver is loaded. The multi-graphics overlay driver uses the environment provided by the frame buffer driver to bind the first and second frame buffers corresponding to the same display device together, realizing the layered display of the background layer and the pointer layer, as well as the independent pointer layer update function.
[0088] In some possible implementations, the hardware layer of the NVR system includes a master control chip, which is used to output the raw video display signal.
[0089] In some possible implementations, the NVR system also includes a hardware interface conversion module, which converts the raw video display signal output by the main control chip into a standard display signal. In one example, the raw video display signal is a MIPI signal, and the hardware interface conversion module converts the MIPI signal output by the main control chip into an HDMI signal. In another example, the raw video display signal is a USB signal, and the hardware interface conversion module converts the USB signal output by the main control chip into an HDMI signal.
[0090] Understandably, an NVR system originally only has one native HDMI output interface, which can only be used for one display device. This application embodiment sets up a hardware interface conversion module to configure interfaces for converting output signals for other display devices, so that the output signals of all display devices can maintain the same format.
[0091] In this embodiment, an additional independent HDMI output interface is provided for the display device through hardware conversion, thereby enabling support for multi-screen independent display functionality in terms of hardware conditions.
[0092] In some possible implementations, after step 102 above, the multi-screen display method of the NVR system may further include: establishing a virtual coordinate system; the virtual coordinate system covering the display interfaces of all display devices in the NVR system; in response to movement of the input device and / or the occurrence of an input event, acquiring the coordinates of the pointer in the virtual coordinate system; determining the target display interface where the pointer is located among multiple display interfaces based on the coordinates; determining the target display device among multiple display devices based on the target display interface; updating the second display data corresponding to the target display device to the target display data based on the coordinates; the target display data is used to indicate the updated position of the pointer layer on the display interface.
[0093] The target display data includes pointer information from the input device, while the remaining second display data does not include pointer information.
[0094] Understandably, the display areas of each display device's interface together form a virtual coordinate system for the pointer. Each display device's interface corresponds to a different area in the virtual coordinate system. When the pointer moves to the corresponding area, the pointer's pattern will be displayed on the screen corresponding to that area.
[0095] In some embodiments, movement events of input devices (such as mice and touchpads) generate coordinate information, which is then converted into a corresponding position in a virtual coordinate system. For example, when a user drags the mouse from the left screen to the right screen, the multi-screen display device performs a recognition and update operation, recognizing and updating the pointer's position in the virtual coordinate system, thereby achieving seamless cross-screen operation.
[0096] In some embodiments, once the multi-screen display device determines the target display device, it updates the second display data corresponding to the target display device to the target display data and writes the second display data to the corresponding frame buffer device. For example, if the target display device is the first screen, the system can update the display data of / dev / fb2 to reflect the new position of the pointer layer.
[0097] In some embodiments, each display screen of the display device has a corresponding number, such as screen 1, screen 2, and screen 3. After the NVR system is started, the pointer appears on screen 1 by default. The screen on which the pointer appears can also be set according to actual needs; this application embodiment does not specifically limit this.
[0098] In one example, the display devices include display device 1 and display device 2, with display device 1's screen being screen 1 and display device 2's screen being screen 2. After the NVR system is started, the pointer is displayed on screen 1 by default. The input device moves and reports its current position coordinates (i.e., the pointer's coordinates in the virtual coordinate system) to the NVR system. Based on the position coordinates reported by the input device, the screen to which the pointer's current position belongs is calculated in the virtual coordinate system as screen 2. Based on screen 2, the target display device is determined to be display device 2. Then, the second display data associated with display device 2 is selectively updated.
[0099] In this embodiment, since the drawing and updating of the pointer on the display interface is only performed on the pointer layer, independent of the UI rendering of the background layer (that is, every time the pointer layer is updated, the background layer belonging to the same display device does not need to be updated), seamless visual movement of the pointer between multiple screens can be achieved, and the refresh load of the UI process is significantly reduced.
[0100] In some possible implementations, after step 102 above, the multi-screen display method of the above-mentioned NVR system may further include: responding to an input event occurring on an input device, parsing the input event by running a first GUI process to generate a control instruction; the control instruction is used to instruct a second GUI process to update the display interface, wherein the first GUI process is the GUI process corresponding to the display device receiving the input event; the second GUI process is a GUI process other than the first GUI process among the plurality of GUI processes; synchronizing the control instruction to the second GUI process; and updating the display interface corresponding to the second GUI process through the second GUI process.
[0101] In some embodiments, multiple GUI processes communicate with each other through an interprocess communication (IPC) mechanism.
[0102] In some embodiments, in response to an input event occurring on an input device, a first GUI process parses the input event and generates a control command; the input event is used to instruct at least one of a plurality of display interfaces to change the first display data, and the first GUI process is the GUI process corresponding to the display device receiving the input event; through an IPC mechanism, the first GUI process synchronizes the control command to a second GUI process; the second GUI process is a GUI process other than the first GUI process among a plurality of GUI processes; the second GUI process updates the corresponding original graphic data in response to the control command; and determines the updated first display data based on the updated original graphic data.
[0103] In some embodiments, the GUI processes communicate with each other through an IPC mechanism. When an input event occurs on one of the display devices and is control information, the GUI process corresponding to the display device (i.e., the first GUI process) parses the input event and generates control instructions. The first GUI process synchronizes the control instructions to the other GUI processes (i.e., the second GUI processes) in the NVR system through the IPC mechanism. The second GUI process updates the corresponding original graphic data according to the control instructions. The updated original graphic data is then processed by format conversion and other methods to obtain the updated first display data.
[0104] In some embodiments, when an operation (such as modifying configuration parameters) is performed on the screen of a display device, the GUI process corresponding to that display device can send a notification to the GUI processes of other display devices through an IPC mechanism. The GUI process receiving the notification can then respond accordingly or update the interface based on the notification content.
[0105] In one example, Figure 3 A schematic diagram of the GUI framework provided in an embodiment of this application. See also... Figure 3 As shown, the GUI framework in the NVR system includes GUI process 0 and GUI process 1. GUI process 0 corresponds to display device 0 and frame buffer 0, while GUI process 1 corresponds to display device 1 and frame buffer 1. Input events on display device 0 change the display parameters of all display devices. GUI process 0 corresponding to display device 0 parses this input event into a control command and synchronizes the control command to GUI process 2. GUI processes 0 and 1 respond to the control command by updating the original graphics data according to the display parameters indicated by the control command.
[0106] In some embodiments, the IPC mechanism serves as a bridge connecting various independent GUI processes, enabling previously isolated display devices to work collaboratively, achieving logical linkage and data synchronization for cross-screen operations, and realizing dynamic interaction between multiple screens.
[0107] In this embodiment, different independent GUI processes can exchange information and synchronize their states efficiently and reliably through the IPC mechanism. When a user performs an operation on one screen (such as moving the input device or modifying system settings or triggering AI events by clicking on the input device), the relevant change information can be notified to the GUI processes of other display devices in real time through the IPC mechanism, thereby triggering corresponding interface updates or behavioral responses. This transforms the originally separate multi-screen display into an organic and unified interactive whole.
[0108] In some embodiments, Figure 4 This is an architecture diagram of an NVR system provided in an embodiment of this application. See also... Figure 4 As shown, the NVR system 10 includes a lightweight GUI framework 11, a multi-graphics management layer module 12, and a mouse control logic module 13 at the software level. At the hardware level, the NVR system 10 includes an input device 14, an interface conversion chip 15, a native HDMI output interface 16, display screen 1, and display screen 2. The GUI framework includes GUI process 1 and GUI process 2; the multi-graphics management layer module 12 includes a frame buffer system 121, which contains four frame buffers that store display data for the background layer of screen 1, the pointer layer of screen 1, the background layer of screen 2, and the pointer layer of screen 2, respectively. The mouse control logic module 13 receives input information from the input device 14.
[0109] In some embodiments, Figure 5 This is a schematic flowchart illustrating an embodiment of the multi-screen display method for an NVR system provided in this application. (In conjunction with...) Figure 4 The architecture of the NVR system shown is as follows: Figure 5 The process shown illustrates the multi-screen display method of the NVR system, which includes:
[0110] In step 501, hardware-level preparation work is performed, including: performing a hardware reset and initializing the communication bus. The hardware interface conversion module used to expand the additional display is initialized and configured (such as configuring its input signal format, clock, output parameters, start signal output, etc.).
[0111] In step 502, the native HDMI output interface is initialized, HDMI output is started, and an event callback function is registered to handle events such as hot-plugging.
[0112] In step 503, the functionality of input device 14 is initialized. A pointer layer is set and loaded into the NVR system, enabling the user interface to display and move the pointer. This is achieved by using double buffering to improve the smoothness of pointer movement, handling pixel format conversion between BMP format images and the display buffer, and employing memory mapping technology for efficient operation of display memory.
[0113] In step 504, GUI process 1 is created to display the GUI window (i.e., the background layer) on display screen 1. Specifically, firstly, the lightweight GUI framework 11 is initialized, and the relevant preparation modules are initialized. This includes calling a function to initialize the LCD, in which the LCD-related frame buffers are set. The frame buffer used by GUI process 1 is fb0. Secondly, the program initialization code is executed to open the first GUI window (the default configuration of GUI process 1 is the system configuration interface). Finally, the GUI main event loop is started.
[0114] In step 505, GUI process 2 is created to display the GUI window (i.e., the background layer) on display screen 2. Specifically, first, the lightweight GUI framework 11 is initialized, and the relevant preparation modules are initialized. A function is called to initialize the LCD, and the LCD-related frame buffer is set in this function. The frame buffer used by GUI process 2 is fb1. Second, the program initialization code is executed to open the second GUI window. Finally, the GUI main event loop is started.
[0115] In step 506, the first display data of the background layer is extracted from fb0 and fb1; then the second display data corresponding to the pointer layer is extracted from the corresponding fb2 and fb3; the second display data and the first display data are superimposed to generate the final superimposed display data, which is then output to the native HDMI output interface 16 and the interface conversion chip 15.
[0116] In step 507, cross-process synchronization is configured. An inter-process communication mechanism is established between multiple independent GUI processes. When a state change occurs in one GUI process that requires notification to other GUI processes (for example, when a user selects to enable the AI function in the configuration interface of display screen 1), that GUI process sends a state change notification through the inter-process communication mechanism. Another GUI process receives this message through the inter-process communication mechanism and performs corresponding state adjustment operations according to the message content, thereby realizing dynamic interaction and data synchronization between independent GUIs.
[0117] In this embodiment, a separate GUI process is configured for each of the multiple display devices, and the display content of the display devices is controlled and managed through a multi-process architecture. This overcomes the complexity and resource bottlenecks of managing multiple screens with a single process, achieves independent multi-screen content display, and improves the user experience.
[0118] Furthermore, the first display data corresponding to the GUI process and the second display data corresponding to the input device are managed separately, realizing the independence of the rendering process of the background layer and the pointer layer. When moving the input device, only the pointer layer with a very small amount of data needs to be updated, without re-rendering or refreshing the background layer with a huge amount of computation. This greatly reduces the amount of computation and data transmission of the graphics system, thereby reducing the CPU utilization and improving the overall response speed of the NVR system; the movement of the pointer on the display screen is smoother and is not affected by the complexity of the background layer.
[0119] Furthermore, multiple GUIs interact through inter-process communication mechanisms, ensuring effective information synchronization and collaborative operation between independent screens.
[0120] Furthermore, through coordinate calculations, the pointer can move seamlessly and be controlled uniformly across multiple screens, providing users with a smooth user experience. Moreover, because the pointer layer is independent of the background layer, operations can be performed directly on the pointer layer, making the pointer appear visually continuous and seamless when crossing screen boundaries, thus enhancing the user experience in multi-screen environments.
[0121] Based on the same inventive concept, this application also provides a multi-screen display device for an NVR system. The multi-screen display device for the NVR system can be a server chip or a system-on-a-chip, or it can be a functional module in the server used for the methods described in one or more of the above embodiments. Figure 6 This is a schematic diagram of the structure of the multi-screen display device of the NVR system provided in the embodiments of this application. See also Figure 6As shown, the multi-screen display device 600 of the NVR system may include: an instruction receiving module 601, which receives the instruction from the user to start the NVR system; wherein, the NVR system includes multiple graphical user interface (GUI) processes; the GUI processes are used to provide a display interface for the display devices, and each GUI process corresponds to one display device; and a data processing module 602, which, in response to the instruction, outputs the display interface provided by each GUI process on the corresponding display device for each of the multiple GUI processes.
[0122] In some possible implementations, the data processing module 602 is used to, in response to an instruction, obtain first display data corresponding to each of the multiple GUI processes; the first display data is used to generate a background layer for the display interface; each GUI process corresponds to one set of first display data; obtain second display data from an input device; the second display data is used to indicate the position of a pointer in the display interface, the movement of which is controlled by the input device; and output a background layer and a pointer layer on the display device corresponding to each GUI process.
[0123] In some possible implementations, the data processing module 602 is used to obtain, in response to an instruction, the original graphics data generated by each of the multiple GUI processes; wherein each GUI process generates one set of original graphics data; and determines the first display data corresponding to each GUI process based on the original graphics data corresponding to each GUI process; each set of original graphics data corresponds to one set of first display data.
[0124] In some possible implementations, the data processing module 602 is used to overlay the second display data and the first display data corresponding to each GUI process to obtain overlay display data corresponding to each GUI process; each display device corresponds to one overlay display data; and the corresponding overlay display data is displayed on each display device.
[0125] In some possible implementations, the NVR system includes a multi-graphics overlay driver, and the NVR system configures a first frame buffer and a second frame buffer for each display device; a data processing module 602 is used to write the first display data corresponding to each GUI process into the first frame buffer corresponding to each GUI process; write the second display data into multiple second frame buffers; and by loading the multi-graphics overlay driver, overlay processing is performed on the first display data in the first frame buffer and the second display data in the second frame buffer corresponding to each GUI process to obtain the overlay display data corresponding to each GUI process.
[0126] In some possible implementations, the NVR system includes a frame buffer driver, a data processing module 602, which is also used to load the frame buffer driver, register a first frame buffer for each display device; load a multi-graphics overlay driver, register a second frame buffer for each display device; and bind the first and second frame buffers corresponding to the same display device together.
[0127] In some possible implementations, the data processing module 602 is further configured to establish a virtual coordinate system; the virtual coordinate system covers the display interfaces of all display devices in the NVR system; in response to the input device controlling the pointer movement, acquire the coordinates of the pointer in the virtual coordinate system; determine the target display interface where the pointer is located among multiple display interfaces based on the coordinates; determine the target display device among multiple display devices based on the target display interface; update the second display data corresponding to the target display device to the target display data based on the coordinates; the target display data is used to indicate the updated position of the pointer layer on the display interface.
[0128] In some possible implementations, the data processing module 602 is further configured to respond to an input event occurring on the input device by running a first GUI process to parse the input event and generate control instructions; the control instructions are used to instruct a second GUI process to update the display interface, wherein the first GUI process is the GUI process corresponding to the display device receiving the input event; the second GUI process is a GUI process other than the first GUI process among a plurality of GUI processes; the control instructions are synchronized to the second GUI process; and the display interface corresponding to the second GUI process is updated through the second GUI process.
[0129] The descriptions of the apparatus embodiments above are similar to those of the method embodiments above, and have similar beneficial effects. In some embodiments, the functions or modules included in the apparatus provided in this application can be used to perform the methods described in the method embodiments above. For technical details not disclosed in the apparatus embodiments of this application, please refer to the descriptions of the method embodiments of this application for understanding.
[0130] It should be noted that, in the embodiments of this application, if the above-described methods are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, or the parts that contribute to related technologies, can be embodied in the form of a software product. This software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), magnetic disks, or optical disks. Thus, the embodiments of this application are not limited to any specific hardware, software, or firmware, or any combination of hardware, software, and firmware.
[0131] Figure 7 This is a schematic diagram of an electronic device provided in an embodiment of this application. For example, the electronic device 700 may be a mobile phone, computer, digital broadcasting terminal, messaging device, game console, tablet device, medical device, fitness equipment, personal digital assistant, etc.
[0132] Reference Figure 7 The electronic device 700 may include one or more of the following components: processing component 701, memory 702, power supply component 703, multimedia component 704, audio component 705, input / output (I / O) interface 706, sensor component 707, and communication component 708.
[0133] Processing component 701 typically controls the overall operation of electronic device 700, such as operations associated with at least one of display, telephone call, data communication, camera operation, and recording operation. Processing component 701 may include one or more processors 709 to execute instructions to perform all or part of the steps of the methods described above. Furthermore, processing component 701 may include one or more modules to facilitate interaction between processing component 701 and other components. For example, processing component 701 may include a multimedia module to facilitate interaction between multimedia component 704 and processing component 701.
[0134] Memory 702 is configured to store various types of data to support the operation of electronic device 700. Examples of such data include at least one of the following: instructions for any application or method operating on electronic device 700, contact data, phonebook data, messages, pictures, and videos. Memory 702 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk.
[0135] Power supply component 703 provides power to various components of electronic device 700. Power supply component 703 may include at least one of the following: a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to electronic device 700.
[0136] Multimedia component 704 includes a screen that provides an output interface between electronic device 700 and user. In some embodiments, the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touchscreen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touches, swipes, and gestures on the touch panel. The touch sensors may sense not only the boundaries of touch or swipe actions but also the duration and pressure associated with the touch or swipe operation. In some embodiments, multimedia component 704 includes a front-facing camera and / or a rear-facing camera. When electronic device 700 is in an operating mode, such as a shooting mode or video mode, the front-facing camera and / or rear-facing camera may receive external multimedia data. Each front-facing camera and rear-facing camera may be a fixed optical lens system or have focal length and optical zoom capabilities.
[0137] Audio component 705 is configured to output and / or input audio signals. For example, audio component 705 includes a microphone (MIC) configured to receive external audio signals when electronic device 700 is in an operating mode, such as call mode, recording mode, and voice recognition mode. The received audio signals may be further stored in memory 702 or transmitted via communication component 708. In some embodiments, audio component 705 also includes a speaker for outputting audio signals.
[0138] I / O interface 706 provides an interface between processing component 701 and peripheral interface modules, such as keyboards, click wheels, and buttons. These buttons may include, but are not limited to, home buttons, volume buttons, power buttons, and lock buttons.
[0139] Sensor assembly 707 includes one or more sensors for providing state assessments of various aspects of electronic device 700. For example, sensor assembly 707 can detect the on / off state of electronic device 700, the relative positioning of components such as the display and keypad of electronic device 700, changes in position of electronic device 700 or one of its components, the presence or absence of user contact with electronic device 700, orientation or acceleration / deceleration of electronic device 700, and temperature changes of electronic device 700. Sensor assembly 707 may include a proximity sensor configured to detect the presence of nearby objects without any physical contact. Sensor assembly 707 may also include an optical sensor, such as a complementary metal oxide semiconductor (CMOS) or charge coupled device (CCD) image sensor, for use in imaging applications. In some embodiments, sensor assembly 707 may also include, but is not limited to, at least one of the following: an accelerometer, a gyroscope, a magnetometer, a pressure sensor, and a temperature sensor.
[0140] Communication component 708 is configured to facilitate wired or wireless communication between electronic device 700 and other devices. Electronic device 700 can access wireless networks based on communication standards, such as Wi-Fi, 4G, 5G, or combinations thereof. In one exemplary embodiment, communication component 708 receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, communication component 708 also includes a near field communication (NFC) module to facilitate short-range communication. For example, the NFC module may be implemented based on radio frequency identification (RFID), infrared data association (IrDA), UWB, Bluetooth (BT), and other technologies.
[0141] In an exemplary embodiment, the electronic device 700 may be implemented by one or more application-specific integrated circuits (ASICs), DSPs, DSPDs, programmable logic devices (PLDs), FPGAs, controllers, microcontrollers, microprocessors, or other electronic components.
[0142] In an exemplary embodiment, a non-transitory computer-readable storage medium including instructions is also provided, such as a memory 702 including executable instructions or a computer program, which can be executed by a processor 709 of an electronic device 700 to perform the above-described method.
[0143] This application provides an electronic device, including a memory and a processor. The memory stores a computer program that can run on the processor. When the processor executes the program, it implements some or all of the steps in the above-described method.
[0144] This application provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements some or all of the steps in the above-described method. The computer-readable storage medium can be transient or non-transient.
[0145] This application provides a computer program including computer-readable code, wherein when the computer-readable code is run in a computer device, a processor in the computer device performs some or all of the steps in the above-described method.
[0146] This application provides a computer program product, which includes a non-transitory computer-readable storage medium storing a computer program. When the computer program is read and executed by a computer, it implements some or all of the steps in the above-described method. This computer program product can be implemented specifically through hardware, software, or a combination thereof. In some embodiments, the computer program product is specifically embodied as a computer storage medium; in other embodiments, the computer program product is specifically embodied as a software product, such as a software development kit (SDK), etc.
[0147] It should be noted that the descriptions of the various embodiments above tend to emphasize the differences between them, while their similarities or commonalities can be referred to interchangeably. The descriptions of the above embodiments of the device, storage medium, computer program, and computer program product are similar to the descriptions of the above method embodiments and have similar beneficial effects. For technical details not disclosed in the embodiments of the device, storage medium, computer program, and computer program product of this application, please refer to the descriptions of the method embodiments of this application for understanding.
[0148] It should be understood that the phrase "one embodiment" or "an embodiment" throughout the specification means that a specific feature, structure, or characteristic related to the embodiment is included in at least one embodiment of this application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this application, the sequence numbers of the above steps / processes do not imply a sequential order of execution; the execution order of each step / process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application. The sequence numbers of the above embodiments of this application are merely descriptive and do not represent the superiority or inferiority of the embodiments.
[0149] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0150] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods, such as: multiple units or components can be combined, or integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the various components shown or discussed can be through some interfaces, and the indirect coupling or communication connection between devices or units can be electrical, mechanical, or other forms.
[0151] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units. They may be located in one place or distributed across multiple network units. Some or all of the units may be selected based on actual needs to achieve the purpose of this embodiment.
[0152] In addition, each functional unit in the various embodiments of this application can be integrated into one processing unit, or each unit can be a separate unit, or two or more units can be integrated into one unit; the integrated unit can be implemented in hardware or in the form of hardware plus software functional units.
[0153] Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media that can store program code, such as mobile storage devices, ROMs, magnetic disks, or optical disks.
[0154] Alternatively, if the integrated units described above are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, or the part that contributes to related technologies, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, ROM, magnetic disks, or optical disks.
[0155] Other embodiments of this application will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this application that follow the general principles of this application and include common knowledge or customary techniques in the art not disclosed herein. The specification and embodiments are to be considered exemplary only, and the true scope and spirit of this application are indicated by the following claims. It should be understood that this application is not limited to the precise structures described above and shown in the drawings, and various modifications and changes can be made without departing from its scope. The scope of this application is limited only by the appended claims.
Claims
1. A multi-screen display method for a network video recorder (NVR) system, characterized in that, include: Receives a user's instruction to start the NVR system; wherein the NVR system includes multiple graphical user interface (GUI) processes; The GUI process is used to provide a display interface for the display device, and each GUI process corresponds to one display device; For each of the plurality of GUI processes, in response to the instruction, the display interface provided by each GUI process is output on the corresponding display device.
2. The method according to claim 1, characterized in that, The step of outputting the display interface provided by each of the plurality of GUI processes on the corresponding display device in response to the instruction includes: For each of the plurality of GUI processes, in response to the instruction, first display data corresponding to each GUI process is obtained; the first display data is used to generate the background layer of the display interface; each GUI process corresponds to one set of first display data. Second display data is obtained from the input device; the second display data is used to indicate the position of the pointer in the display interface, and the movement of the pointer is controlled by the input device. The background layer and pointer layer are output on the display device corresponding to each GUI process.
3. The method according to claim 2, characterized in that, For each of the plurality of GUI processes, in response to the instruction, obtaining the first display data corresponding to each GUI process includes: For each of the plurality of GUI processes, in response to the instruction, the original graphics data generated by each GUI process is obtained; wherein, each GUI process generates one set of original graphics data. Based on the original graphics data corresponding to each GUI process, the first display data corresponding to each GUI process is determined; each original graphics data corresponds to one first display data.
4. The method according to claim 2, characterized in that, The step of outputting the background layer and pointer layer on the display device corresponding to each GUI process includes: The second display data and the first display data corresponding to each GUI process are superimposed to obtain the superimposed display data corresponding to each GUI process; each display device corresponds to one superimposed display data. The corresponding overlay display data is displayed on each display device.
5. The method according to claim 4, characterized in that, The NVR system includes a multi-graphics overlay layer driver, and the NVR system configures a first frame buffer and a second frame buffer for each display device; The second display data and the first display data corresponding to each GUI process are overlaid to obtain the overlaid display data corresponding to each GUI process, including: Write the first display data corresponding to each GUI process into the first frame buffer corresponding to each GUI process; Write the second display data into multiple second frame buffers; By loading the multi-graphics overlay driver, the first display data in the first frame buffer and the second display data in the second frame buffer corresponding to each GUI process are overlaid to obtain the overlaid display data corresponding to each GUI process.
6. The method according to claim 5, characterized in that, The NVR system includes a frame buffer driver. The method further includes: Load the frame buffer driver and register a first frame buffer for each display device; Load the multi-graphics overlay driver and register a second frame buffer for each display device; Bind the first and second frame buffers corresponding to the same display device together.
7. The method according to claim 2, characterized in that, The method further includes: Establish a virtual coordinate system; the virtual coordinate system covers the display interfaces of all display devices in the NVR system; In response to the input device controlling the movement of the pointer, the coordinates of the pointer in the virtual coordinate system are obtained; Based on the coordinates, determine the target display interface where the pointer is located among multiple display interfaces; Based on the target display interface, determine the target display device from among multiple display devices; Based on the coordinates, the second display data corresponding to the target display device is updated to the target display data; the target display data is used to indicate the updated position of the pointer on the display interface.
8. The method according to claim 1, characterized in that, The method further includes: In response to an input event occurring on an input device, a first GUI process is run to parse the input event and generate a control instruction. The control instruction is used to instruct a second GUI process to update the display interface. The first GUI process is the GUI process corresponding to the display device that receives the input event. The second GUI process is a GUI process other than the first GUI process among the plurality of GUI processes. Synchronize the control commands to the second GUI process; The second GUI process updates the display interface corresponding to the second GUI process.
9. A multi-screen display device for a network video recorder (NVR) system, characterized in that, include: The instruction receiving module receives instructions from the user to start the NVR system; wherein, the NVR system includes multiple graphical user interface (GUI) processes; the GUI processes are used to provide a display interface for the display devices, and each GUI process corresponds to one display device; The data processing module is used to, in response to the instruction, output the display interface provided by each of the plurality of GUI processes on the corresponding display device.
10. An electronic device, characterized in that, The electronic device includes: Memory, used to store executable instructions; A processor, when executing executable instructions or computer programs stored in the memory, implements the method of any one of claims 1 to 8.
11. A computer-readable storage medium storing executable instructions or a computer program, characterized in that, When the executable instructions are executed by the processor, they implement the method of any one of claims 1 to 8.
12. A computer program product, comprising a computer program or instructions, characterized in that, When the computer program or instructions are executed by a processor, they implement the steps of the method according to any one of claims 1 to 8.