Distributed video wall intelligent control method and device, terminal equipment and storage medium

By calculating the comprehensive weight of screen nodes and synchronous playback parameters, the problems of performance differences and network fluctuations between nodes in the distributed video wall system are solved, achieving high-precision synchronization and automatic adaptation to screen layout, thus improving the stability and display effect of the system.

CN122437982APending Publication Date: 2026-07-21WUHAN FENGQI INNOVATION TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
WUHAN FENGQI INNOVATION TECHNOLOGY CO LTD
Filing Date
2026-03-20
Publication Date
2026-07-21

AI Technical Summary

Technical Problem

In existing technologies, performance differences between screen nodes and network environment fluctuations in distributed video wall systems lead to poor stability, making it difficult to achieve high-precision synchronized playback and automatic adaptation to screen layout.

Method used

By calculating the comprehensive weight of screen nodes, master and slave nodes are determined, physical layout information is obtained, bidirectional network latency is measured, synchronization playback parameters are calculated, and each node is controlled to play in coordination to achieve high-precision synchronization.

Benefits of technology

It improves the intelligent control reliability and automatic screen layout adaptation capability of the distributed video wall, ensuring the stable and efficient operation of the system and the overall display effect.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122437982A_ABST
    Figure CN122437982A_ABST
Patent Text Reader

Abstract

The application is suitable for the technical field of intelligent terminals, and provides a distributed video wall intelligent control method and device, terminal equipment and storage medium, comprising: calculating the comprehensive weight of the current screen node, and broadcasting a discovery message containing the comprehensive weight; electing a master node according to the discovery message carrying the comprehensive weight broadcasted by other screen nodes; if the current screen node is determined as the master node, obtaining the physical layout information of all screen nodes; determining the corresponding playing area information of all screen nodes in the content to be played according to the physical layout information; performing bidirectional network delay measurement with the slave nodes, and calculating the synchronous playing parameters of each slave node according to the measurement result; sending the corresponding playing area information and synchronous playing parameters of each slave node to the current screen node, and controlling the current screen node and each slave node to synchronously play. The application can improve the reliability of intelligent control of the screen nodes of the distributed video wall, improve the automatic adaptation capability to the screen layout, and realize high-precision synchronous playing.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of smart terminal technology, and in particular to a distributed video wall smart control method, device, terminal equipment and storage medium. Background Technology

[0002] With the ever-growing demand for digital media displays, video wall systems are widely used in various scenarios such as control centers, digital exhibition halls, commercial displays, and performance stages. A video wall system typically consists of multiple screen nodes spliced ​​together to present continuous, related, or spatially connected video content. It achieves collaborative display of video content through a distributed architecture, allowing for flexible addition or removal of screen nodes as needed, without relying on a single central control device. To achieve coordinated display of the overall image, the screen nodes need to maintain a high degree of synchronization and accurately segment and map video content based on their actual physical arrangement.

[0003] In practical applications, multiple screen nodes need to work together to complete content playback tasks. On the one hand, there are performance differences between screen nodes, making it difficult to reasonably determine the master control node to ensure stable system operation, and network environment fluctuations may even lead to partition failures; on the other hand, the physical layout of screens is becoming increasingly diverse, requiring a lot of manual configuration, making it difficult to achieve automatic and accurate content adaptation.

[0004] Therefore, improving the reliability of intelligent control of distributed video wall screen nodes, enhancing the automatic adaptation capability to screen layout, and achieving high-precision synchronous playback are issues that need to be considered. Summary of the Invention

[0005] This application provides a distributed video wall intelligent control method, device, terminal equipment, and storage medium, which can improve the reliability of intelligent control of distributed video wall screen nodes, enhance the automatic adaptation capability to screen layout, and achieve high-precision synchronous playback.

[0006] In a first aspect, embodiments of this application provide a distributed video wall intelligent control method, applied to any screen node among multiple screen nodes of a video wall, including: Calculate the overall weight of the screen node based on the node performance parameters, and broadcast a discovery message containing the overall weight; Based on the discovery messages broadcast by other screen nodes carrying their overall weights, determine whether this screen node is a master node or a slave node. If this screen node is determined to be the master node, then obtain the physical layout information of all screen nodes; Based on the physical layout information, determine the playback area information corresponding to each screen node in the content to be played; Perform bidirectional network latency measurements with the slave nodes and calculate the synchronization playback parameters for each slave node based on the measurement results; The screen node sends its corresponding playback area information and synchronization playback parameters to each of the slave nodes, and controls the screen node and each slave node to play synchronously according to the corresponding playback area information and synchronization playback parameters.

[0007] Secondly, embodiments of this application provide a distributed video wall intelligent control device, applied to any screen node among multiple screen nodes of a video wall, including: The discovery message broadcasting unit is used to calculate the comprehensive weight of the screen node based on the node performance parameters and broadcast a discovery message containing the comprehensive weight. The election unit is used to determine whether the current screen node is a master node or a slave node based on the discovery message broadcast by other screen nodes carrying their comprehensive weights. The layout information acquisition unit is used to acquire the physical layout information of all screen nodes if the current screen node is determined to be the main node. The region determination unit is used to determine the playback region information corresponding to all screen nodes in the content to be played based on the physical layout information. The delay synchronization unit is used to perform bidirectional network delay measurement with the slave nodes and calculate the synchronization playback parameters of each slave node based on the measurement results; The intelligent control unit is used to send the corresponding playback area information and the synchronization playback parameters to each of the slave nodes, and to control the screen node and each slave node to play synchronously according to the corresponding playback area information and the synchronization playback parameters.

[0008] Thirdly, embodiments of this application provide a terminal device, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the distributed video wall intelligent control method as described in the first aspect above.

[0009] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program that, when executed by a processor, implements the distributed video wall intelligent control method as described in the first aspect above.

[0010] Fifthly, embodiments of this application provide a computer program product that, when run on a terminal device, causes the terminal device to execute the distributed video wall intelligent control method as described in the first aspect above.

[0011] In this embodiment, by calculating the comprehensive weight of the screen node based on node performance parameters and broadcasting a discovery message containing the comprehensive weight, each screen node can clearly obtain the performance status of each other. Then, based on the comprehensive weight of each node, the master node and slave nodes are reasonably determined, avoiding control disorder caused by unreasonable master node election. This effectively improves the reliability of intelligent control of distributed video wall screen nodes. Once the screen node is determined to be the master node, by acquiring the physical layout information of all screen nodes and determining the corresponding playback area information of each screen node in the content to be played, it can automatically adapt to various layout forms of screen nodes in different scenarios without manual configuration of playback areas. This significantly improves the automatic adaptation capability to screen layout and ensures the effective display of the content to be played on each screen node. The master node and slave nodes perform bidirectional network latency measurement, and calculate the synchronization playback parameters of each slave node based on the measurement results. Then, the corresponding playback area information and synchronization playback parameters are sent to each slave node to control all screen nodes to play collaboratively. This effectively compensates for network latency differences between screen nodes, achieving high-precision synchronous playback of each screen node, thereby improving the overall display effect of the distributed video wall and ensuring stable and efficient system operation. Attached Figure Description

[0012] To more clearly illustrate the technical solutions in the embodiments of this application, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0013] Figure 1 This is a flowchart illustrating the implementation of the distributed video wall intelligent control method provided in this application embodiment; Figure 2.1 This is a flowchart illustrating a specific implementation of step S102 in the distributed video wall intelligent control method provided in this application embodiment; Figure 2.2 This is another specific implementation flowchart of step S102 in the distributed video wall intelligent control method provided in the embodiments of this application; Figure 3 This is a flowchart illustrating a specific implementation of step S104 in the distributed video wall intelligent control method provided in this application embodiment; Figure 3.1 This is a flowchart illustrating a specific implementation of the distributed video wall intelligent control method for handling overlapping areas provided in this application embodiment; Figure 4 This is another specific implementation flowchart of step S104 in the distributed video wall intelligent control method provided in the embodiments of this application; Figure 5This is a flowchart illustrating a specific implementation of step S105 in the distributed video wall intelligent control method provided in this application embodiment; Figure 6 This is a flowchart illustrating a specific implementation of step S106 in the distributed video wall intelligent control method provided in this application embodiment; Figure 7 This is a structural block diagram of the distributed video wall intelligent control device provided in the embodiments of this application; Figure 8 This is a schematic diagram of the terminal device provided in the embodiments of this application. Detailed Implementation

[0014] In the following description, specific details such as particular system architectures and techniques are set forth for illustrative purposes and not for limitation, in order to provide a thorough understanding of the embodiments of this application. However, those skilled in the art will understand that this application may also be implemented in other embodiments without these specific details. In other instances, detailed descriptions of well-known systems, apparatuses, circuits, and methods have been omitted so as not to obscure the description of this application with unnecessary detail.

[0015] It should be understood that, when used in this application specification and the appended claims, the term "comprising" indicates the presence of the described features, integrals, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components and / or a collection thereof.

[0016] It should also be understood that the term “and / or” as used in this application specification and the appended claims means any combination of one or more of the associated listed items and all possible combinations, and includes such combinations.

[0017] As used in this application specification and the appended claims, the term "if" may be interpreted, depending on the context, as "when," "once," "in response to determination," or "in response to detection." Similarly, the phrase "if determined" or "if detected [the described condition or event]" may be interpreted, depending on the context, as meaning "once determined," "in response to determination," "once detected [the described condition or event]," or "in response to detection [the described condition or event]."

[0018] Furthermore, in the description of this application and the appended claims, the terms "first," "second," "third," etc., are used only to distinguish descriptions and should not be construed as indicating or implying relative importance.

[0019] References to "one embodiment" or "some embodiments" as described in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized. The terms "comprising," "including," "having," and variations thereof mean "including but not limited to," unless otherwise specifically emphasized.

[0020] By way of example and not limitation, the distributed video wall intelligent control method provided in this application is applicable to various types of terminal devices that need to perform distributed video wall intelligent control. Specific terminal devices may include mobile phones, tablets, wearable devices, laptops, ultra-mobile personal computers (UMPCs), desktop computers, smart interactive screens, and servers, etc. This application does not impose any restrictions on the specific type of terminal device.

[0021] Figure 1 This document illustrates the implementation flow of the distributed video wall intelligent control method provided in this application embodiment. The method is applied to any one of multiple screen nodes in the video wall. A screen node is a terminal device used to form the video wall and display content. "This screen node" refers to any one of the multiple screen nodes in the distributed video wall, while "other screen nodes" refers to all other screen nodes in the distributed video wall besides this screen node. The method flow includes steps S101 to S106. The specific implementation principles of each step are as follows: Step S101: Calculate the comprehensive weight of the screen node based on the node performance parameters, and broadcast a discovery message containing the comprehensive weight.

[0022] Node performance parameters are used to evaluate the overall capabilities of screen nodes. The overall score is used to quantify the overall capabilities of a node. Discovery messages are UDP messages used by screen nodes to broadcast their own status and achieve discovery between nodes, such as Hello messages.

[0023] Node performance parameters include, but are not limited to, computing power, network status, runtime, node priority, and battery level. Among them, computing power refers to the hardware processing power of the screen node, network status refers to the transmission quality of the screen node's network access, runtime refers to the continuous runtime of the screen node from startup to the present, node priority refers to the set node priority (an integer ranging from 0 to 100, which can be customized through the operation page), and battery level refers to the current remaining power of the screen node (especially mobile devices).

[0024] In one possible implementation, the overall weight is calculated according to the following formula (1): (1) in, To score computational ability, Score the network condition. Score based on runtime. Score the node priority. This is a penalty item for battery power. , , , , Let be the weighting coefficients for each node performance parameter, and satisfy . It can be flexibly configured according to the actual application scenario, for example, α=0.35, β=0.25, γ=0.20, δ=0.15, ε=0.05; .

[0025] In one possible implementation, the computational ability score is determined according to the following formula (2). : (2) in, Calculate the score for floating-point numbers. , This indicates the actual floating-point operation speed. Indicates the target floating-point operation speed; The video decoding score, , Indicates the actual decoding frame rate. Indicates the target decoding frame rate; Score for memory bandwidth. , Indicates actual memory bandwidth. Indicates the target memory bandwidth; , , These are the weighting coefficients. .

[0026] For example, the computing power score is obtained through benchmark tests: a standardized benchmark program is run when the screen starts, and the test content includes: floating point performance (running the LINPACK benchmark test to calculate the speed of double-precision floating point operations (GFLOPS)), video decoding performance (decoding 4K video and measuring the decoding frame rate), and memory bandwidth (running the Stream memory bandwidth test).

[0027] In one possible implementation, the network condition score is determined according to the following formula (3). : (3) in, To delay the scoring, , Indicates the average delay. single delay , Indicates the receiving time. Indicates the sending time; For bandwidth score, , Indicates the measured bandwidth (Mbps); For stability score, , Indicates the number of successful responses. Indicates the total number of messages sent; , , These are the weighting coefficients. .

[0028] For example, the network condition score is evaluated every 30 seconds, and the average of the most recent 10 evaluations is taken as the current network condition score.

[0029] In one possible implementation, the runtime score is determined according to the following formula (4). : (4) in, The original running time is in hours. 720 hours is equivalent to 30 days. 30 days of running time corresponds to a full score of 100 points.

[0030] In one possible implementation, node priority Use manually configured integers between 0 and 100.

[0031] In one possible implementation, This is a battery level penalty, only applicable to mobile devices, applied when the actual battery level is low. hour, ;when , ;when hour, .

[0032] In this embodiment, the comprehensive weight of the screen node is scientifically calculated based on the node performance parameters, which can objectively and comprehensively evaluate the comprehensive capabilities of the node. By broadcasting a discovery message containing the comprehensive weight, information exchange between screen nodes can be achieved, allowing all nodes to obtain each other's comprehensive capability information and avoiding the problem of unreasonable master-slave node selection due to opaque node information.

[0033] Step S102: Determine whether this screen node is a master node or a slave node based on the discovery message carrying its comprehensive weight broadcast by other screen nodes.

[0034] Discovery messages broadcast by other screen nodes carry their own comprehensive weights. In this embodiment, the role of each screen node is determined based on the comprehensive weights carried in the discovery messages broadcast by each screen node: either a master node or a slave node. A master node refers to a screen node in the distributed video wall that is responsible for global control, layout calculation, and synchronization management. A slave node refers to a screen node in the distributed video wall that accepts the control of the master node and executes content playback according to the master node's instructions. The master node and slave nodes work together to realize the overall display function of the video wall.

[0035] In one possible implementation, among all screen nodes participating in the election (broadcasting discovery messages), the node with the highest overall weight becomes the master node, and the remaining screen nodes become slave nodes. Since each screen node can receive discovery messages from other screen nodes, each screen node can independently calculate the distribution of overall weights throughout the system, thus arriving at a consistent election result. By comparing the overall weights of each screen node, the screen node with the optimal overall capability is selected as the master node, ensuring that the global control of the distributed video wall is undertaken by the optimal screen node, guaranteeing the stability and reliability of system control.

[0036] As one possible implementation of this application, in order to avoid multiple screen nodes competing for the master node role at the same time during the election process, a backoff mechanism is introduced to effectively ensure the stability of the master-slave node election process. Figure 2.1 A specific implementation flow of step S102 in the distributed video wall intelligent control method provided in this application embodiment is shown below: A1: Collect discovery messages broadcast by other screen nodes carrying their comprehensive weights within the preset discovery period, and record the maximum comprehensive weight received.

[0037] The preset discovery period is a fixed duration for collecting discovery messages from other screen nodes. This preset discovery period can be flexibly configured according to the actual application scenario to ensure that this screen node can fully receive discovery messages broadcast by all other screen nodes. For example, the preset discovery period can be set to 5 seconds. The maximum comprehensive weight is the highest comprehensive weight selected by this screen node from all the comprehensive weights received from other screen nodes within the preset discovery period.

[0038] After broadcasting its own discovery message carrying a comprehensive weight, this screen node immediately initiates a preset discovery period. During this period, it continuously listens for discovery messages broadcast by other screen nodes. Upon receiving a discovery message, it extracts the comprehensive weight carried within it and compares it with the currently recorded comprehensive weight. If the extracted comprehensive weight is greater than the currently recorded maximum comprehensive weight, it updates the recorded maximum comprehensive weight. If the comprehensive weight is less than or equal to the currently recorded maximum comprehensive weight, it keeps the currently recorded maximum comprehensive weight unchanged. If no discovery message is received from any other screen node during the preset discovery period, the recorded maximum comprehensive weight is 0.

[0039] A2: After the preset detection period ends, calculate the backoff time based on the ratio of the comprehensive weight of this screen node to the recorded maximum comprehensive weight, and start the backoff timer based on the backoff time.

[0040] The backoff time is the amount of time a screen node needs to wait before declaring itself as the master node. Its purpose is to allow the node with the highest overall weight to declare first, thereby avoiding conflicts caused by multiple nodes declaring at the same time.

[0041] In one possible implementation, the retreat time is calculated according to the following formula (5). : (5) in, This represents the maximum backoff time for screen nodes. This represents the overall weight of this screen node. This indicates the maximum overall weight of the current record. The random jitter value is a randomly generated tiny time increment. The value ranges from 0 to 200ms, and is used to avoid multiple nodes with the same comprehensive weight having completely identical backoff times.

[0042] In one possible implementation, if this screen node does not receive a discovery message from any other screen node, that is... If the timeout is set to 0, the backoff timer will be started immediately without waiting.

[0043] A3: If a master control declaration message broadcast by another screen node is received before the backoff timer expires, the backoff timer is turned off, this screen node is determined to be a slave node, and a connection is established with the other screen node that sent the master control declaration message.

[0044] A master declaration message is a message broadcast by a screen node that has been identified as the master node to declare its master node identity, such as the Master_Announcement message. The master declaration message includes information such as the sending node's screen identifier, overall weight, and TCP port.

[0045] A4: If the backoff timer times out and no valid master declaration message is received, then this screen node is determined to be the master node, and a master declaration message is broadcast.

[0046] A valid master control declaration message is one that clearly identifies the master node, contains complete information, and is free from anomalies. If the received master control declaration message is missing information or incorrectly identified, it is considered invalid.

[0047] During the backoff timer, the screen node continuously listens to the network and receives master declaration messages broadcast by other screen nodes.

[0048] If the backoff timer has not expired (i.e., the preset backoff time has not been reached), and a master declaration message is received, the backoff timer is immediately turned off and stopped. At the same time, this screen node is determined to be a slave node and no longer participates in the competition for the master node. Subsequently, this screen node establishes a TCP connection with the screen node that sent the master declaration message (i.e., the master node) based on the TCP port information carried in the master declaration message, completes the confirmation of the slave node role, and waits for subsequent instructions from the master node.

[0049] If the backoff timer expires (i.e., the preset backoff time is reached) and no valid master declaration message is received during the entire backoff period, it means that no other screen node in the current network has been identified as the master node. At this time, this screen node identifies itself as the master node. Subsequently, this screen node broadcasts a master declaration message, which contains information such as its own screen identifier, overall weight, and TCP port, to notify all other screen nodes of its master node identity.

[0050] In this embodiment, by collecting the comprehensive weights of all other screen nodes during a preset discovery period and recording the maximum comprehensive weight, the current screen node can fully grasp the comprehensive capabilities of other nodes, avoiding election conflicts. The comprehensive weights of related nodes are correlated with their backoff times; screen nodes with higher comprehensive weights have shorter backoff times and can be prioritized to declare themselves as the master node, ensuring that the node with the best comprehensive capabilities can quickly become the master node. During the backoff period, the system listens for master declaration messages and responds promptly to the determined master node, preventing multiple nodes from repeatedly competing for the master node and shortening the election cycle. Simultaneously, by establishing a TCP connection, it ensures stable communication between slave nodes and the master node. When the backoff timeout occurs and no valid master declaration message is received, the current screen node is promptly determined as the master node and broadcasts the declaration, ensuring that the distributed video wall system can quickly determine the control core, preventing the system from failing to operate normally due to the absence of a master node, and guaranteeing the stability and continuity of the system.

[0051] As one possible implementation of this application, to resolve the conflict problem of multiple coexisting master nodes after network partition recovery, the discovery message and the master declaration message also include a generation number, further improving the stability and rationality of the election process. The generation number is used to identify the time order of master node generation and is a monotonically increasing integer value. In the initial state, in a system where no master node has yet been generated, the generation number of each screen node can be set to 0. When a new master node is generated in the system, the generation number of that master node will be increased by 1 based on the original highest generation number. Therefore, the larger the generation number of the master node, the later its generation time and the higher its authority.

[0052] Figure 2.2 Another specific implementation flow of step S102 in the distributed video wall intelligent control method provided in the embodiments of this application is shown below: B1: When collecting discovery messages broadcast by other screen nodes during the preset discovery period, record the highest generation number received.

[0053] The highest generation number refers to the generation number with the largest value selected by this screen node from all the generation numbers contained in the discovery messages during the process of collecting discovery messages from other screen nodes.

[0054] Each time a screen node receives a discovery message, in addition to extracting the overall weight and recording the maximum overall weight carried in the message, it also extracts the generation number carried in the message. Each extracted generation number is compared with the currently recorded highest generation number. If the generation number is greater than the currently recorded highest generation number, the recorded highest generation number is updated. If the generation number is less than or equal to the currently recorded highest generation number, the currently recorded highest generation number remains unchanged. If the received discovery message does not carry a generation number, or the generation number is 0 (unknown state), the highest generation number is not updated. If no discovery message from any other screen node is received within the preset discovery period, the recorded highest generation number is 0.

[0055] B2: If a master control declaration message containing a generation number is received from another screen node before the backoff timer expires, and the generation number in the master control declaration message is greater than or equal to the highest generation number recorded by this screen node, then the backoff timer is turned off and this screen node is determined to be a slave node.

[0056] If the backoff timer has not expired (i.e., the preset backoff time has not been reached), this screen node continuously listens for master declaration messages broadcast by other screen nodes in the network. These master declaration messages contain the generation number of the sending node. If such a master declaration message is received, the generation number in the message is immediately extracted and compared with the highest recorded generation number. If the generation number is greater than or equal to the highest recorded generation number, it means that the node that sent the message is a master node whose current time order is updated or is consistent with the current highest time order, and is a valid master node. At this time, this screen node closes the backoff timer, stops counting, determines itself as a slave node, and no longer participates in the master node competition. If the generation number is less than the highest recorded generation number, it means that the node that sent the message is a master node with an earlier time order, and is an invalid master node. This screen node ignores the message, continues to keep the backoff timer running, and waits for other valid master declaration messages.

[0057] B3: If the backoff timer times out and no valid master declaration message is received, then the screen node is determined to be the master node, the recorded highest generation number is incremented by one to determine the latest generation number of the screen node, and the master declaration message is broadcast.

[0058] If the backoff timer expires (i.e., the preset backoff time is reached) and no valid master declaration message is received during the entire backoff period, this screen node determines itself as the master node. Subsequently, this screen node retrieves the highest generation number recorded and increments it by one to obtain the latest generation number of this screen node (for example, if the highest generation number recorded is 0, the latest generation number is set to 1). Then, this screen node broadcasts a master declaration message, which contains information such as its own screen identifier, overall weight, latest generation number, and TCP port, to notify all other screen nodes of its master node identity.

[0059] In this embodiment, recording the highest generation number allows the current screen node to grasp the time order of existing master nodes in the network. By comparing generation numbers to determine the validity of the master control declaration message, the node with the updated time order can be prioritized, avoiding control conflicts caused by multiple master nodes existing simultaneously after network partition recovery. This further improves the stability and rationality of master-slave node election, ensuring the uniqueness and effectiveness of the system control core. After determining the master node, the highest generation number is incremented by one to become its own generation number. This ensures that the generation number of each newly generated master node is greater than that of the previous master node. The incremental characteristic of generation numbers effectively solves the conflict problem of multiple master nodes after network partition recovery. At the same time, broadcasting a master control declaration message containing the generation number allows other screen nodes to clearly identify the time order of the current master node, ensuring the rationality of the election mechanism and the stability of the system.

[0060] In one possible implementation, when the screen node is determined to be the master node, it periodically sends heartbeat information to each slave node to maintain the validity of the master node's identity, making it easier for other slave nodes to identify and establish connections.

[0061] Network failures can lead to network partitioning. When a network failure causes a cluster to split into multiple independent subsets that cannot communicate with each other, the screen nodes within each partition, unaware of the existence of other partitions, will initiate a new election internally and produce a new master node, resulting in multiple master nodes existing simultaneously in the system. After the network failure is resolved, as the previously isolated partitions reconnect, the master nodes in each partition will broadcast their own master information, causing the current screen node to simultaneously receive announcements from multiple master nodes in different partitions.

[0062] In one possible implementation, when the current screen node acts as a slave node and receives heartbeat messages or master control declaration messages from multiple master nodes, the generation numbers carried in the heartbeat messages or master control declaration messages are compared, and the master node with the highest generation number is selected as the master node to which the current screen node is connected. If the generation numbers are the same, the comprehensive weights carried in the heartbeat messages or master control declaration messages are compared, and the master node with the highest comprehensive weight is selected as the master node to which the current screen node is connected.

[0063] In one possible implementation, when this screen node acts as a master node and receives a master control declaration message from another master node containing a higher generation number or a higher comprehensive weight for the same generation number, this screen node becomes a slave node.

[0064] In this embodiment, a two-level comparison mechanism of generation number and comprehensive weight is used to enable slave nodes to accurately select the master node with the highest authority and the best comprehensive capabilities from multiple master nodes for connection. At the same time, master nodes with insufficient authority are automatically demoted to slave nodes. This quickly resolves multi-master conflicts after network partition recovery, ensuring that the system automatically converges to a single optimal master node, effectively improving the stability and reliability of the distributed video wall system.

[0065] In one possible implementation, when the screen node is a slave node and detects that the master node's heartbeat has timed out, a re-election process is triggered, that is, the screen node is re-determined to be the master node or a slave node; or, when the screen node is a master node and detects that its overall weight is lower than a preset threshold or its performance has degraded, it actively triggers a re-election process, broadcasts an election trigger message (Election_Trigger message), and enters the election state.

[0066] Step S103: If this screen node is determined to be the master node, then obtain the physical layout information of all screen nodes.

[0067] Physical layout information is used to describe the position and size of each screen node in the physical space of the video wall.

[0068] In one possible implementation, the physical layout information includes the position coordinates and physical dimensions of each screen node in a physical coordinate system. The position coordinates are represented by the coordinates of the top-left corner of the physical coordinate system (origin at the top-left corner of the video wall layout, x-axis to the right, y-axis downwards), and the physical dimensions are represented by width and height. In another possible implementation, the physical layout information also includes the aspect ratio, which is the ratio of the physical width to the physical height.

[0069] In one possible implementation, the master node can establish a communication connection with each slave node and request its physical layout information from each slave node. After receiving the request, the slave node sends its stored or configured location coordinates and physical dimensions to the master node.

[0070] Step S104: Based on the physical layout information, determine the playback area information corresponding to all screen nodes in the content to be played.

[0071] The content to be played includes videos, images, and other content that the distributed video wall needs to play collaboratively, and has a fixed original resolution and aspect ratio. The playback area information describes the specific area that each screen node needs to play in the content to be played, including the starting coordinates and area size (area width, area height) of the playback area. The area size is determined based on the content coordinate system of the content to be played (the resolution coordinate system of the original video or image content). The origin of the content coordinate system is located at the upper left corner of the content to be played, with the x-axis to the right and the y-axis downward.

[0072] In one possible implementation, after the master node obtains the physical layout information of all screen nodes, it determines whether the physical layout type of the video wall is a regular layout or an irregular layout based on the physical layout information, and determines the playback area information corresponding to each screen node based on the determined layout type and the original resolution and aspect ratio of the content to be played.

[0073] As one possible implementation of this application, the physical layout type of the video wall is an irregular layout; Figure 3 A specific implementation flow of step S104 in the distributed video wall intelligent control method provided in this application embodiment is shown below: C1: Calculate the global bounding box that can surround all screen nodes based on the position coordinates and physical dimensions of all screen nodes.

[0074] The global bounding box is the smallest rectangular area that can completely enclose all screen nodes.

[0075] In one possible implementation, the minimum value of the left boundary coordinates of all screen nodes is determined, denoted as... Determine the maximum value of the right boundary coordinates of all screen nodes, denoted as . Determine the minimum value of the boundary coordinates of all screen nodes, denoted as . Determine the maximum value of the lower boundary coordinates of all screen nodes, denoted as . , , , , Together, they determine the boundaries of the global bounding box; where the right boundary coordinates of a screen node are equal to the x-coordinate of its position coordinates plus the physical width of the screen node, and the bottom boundary coordinates of a screen node are equal to the y-coordinate of its position coordinates plus the physical height of the screen node. The width of the global bounding box is... The height is By calculating the global bounding box, multiple irregularly arranged screen nodes are integrated into a unified physical region.

[0076] C2: For each screen node, its starting coordinates and region size within the content to be played are calculated based on its relative position and relative size within the global bounding box. The relative position is determined based on the position coordinates and the boundary of the global bounding box, and the relative size is the physical size. The region size matches the original resolution of the content to be played.

[0077] For each screen node i, its relative position X coordinate is: Relative position Y coordinate: The relative size is the physical width of the screen node itself. and physical height .

[0078] The mapping calculation process is based on proportional relationships: the relative position ratio of a screen node in the global bounding box is equal to the starting position ratio of its position in the content to be played; the relative size ratio of a screen node in the global bounding box is equal to the area size ratio of its position in the content to be played.

[0079] In one possible implementation, the original width of the content to be played is The original height is , The width of the global bounding box. The height of the global bounding box; the starting coordinates include the starting X coordinate and the starting Y coordinate, where the starting X coordinate is: Starting Y coordinate: Area width: Area height: .

[0080] In one possible implementation, boundary constraints are applied to the starting coordinates and region size to ensure they do not exceed the boundaries of the content to be played, thus obtaining the playback region information for each screen node. For example, the final starting X coordinate is: Final starting Y coordinate: Final area width: Final area height: .

[0081] In one possible implementation, when the current screen node acts as the master node and a slave node failure is detected, the global bounding box of the remaining screen nodes is recalculated, and the playback area information of each surviving screen node is updated.

[0082] In this embodiment, the irregular layout processing based on global bounding boxes enables the video wall system to automatically adapt to various irregular arrangements of screen nodes. Through the mapping calculation of relative position and relative size, the physical layout of each screen node is accurately mapped to the content to be played, and the corresponding playback area is determined. This achieves accurate adaptation between the content to be played and the irregular screen layout. The content can be accurately segmented and mapped without manual configuration of the playback area, which can improve the automatic adaptation capability of the screen layout and ensure that the content to be played can be displayed completely and continuously under irregular layout.

[0083] As one possible implementation of this application Figure 3.1 This application illustrates a specific implementation flow of the distributed video wall intelligent control method for handling overlapping areas, as detailed below: D1: When this screen node is determined to be the main node and two or more screen nodes are detected to have overlapping areas, calculate the overlapping area of ​​the overlapping areas.

[0084] The overlapping region refers to the area where the physical positions of two or more screen nodes overlap in the physical coordinate system, that is, the physical rectangular areas of the two screen nodes intersect; the overlapping area refers to the actual area of ​​the overlapping region, which can reflect the degree of overlap between screen nodes.

[0085] In one possible implementation, for any two screen nodes i and j, their overlapping region exists if and only if their projections in the x-axis and y-axis directions intersect. The physical width and physical height of screen node i are... , The physical width and physical height of screen node j are , Overlapping left boundary Overlapping right boundary Overlapping upper boundary Overlapping lower boundary .if and Then there is an overlapping region. Overlap width Overlap height Overlapping area .

[0086] By detecting overlapping areas and calculating the overlapping area, we can accurately grasp the specific situation of screen node overlap and avoid content display chaos and image distortion in overlapping parts due to unprocessed overlapping areas.

[0087] D2: Determine the content display method of the overlapping area based on the overlapping area.

[0088] Content display mode refers to the specific way screen nodes in an overlapping area play content within that area, ensuring continuous and clear content display. Content display modes include, but are not limited to, full display, complementary display, and priority display. Determining the corresponding content display mode based on the overlapping area allows for the adoption of the most reasonable display strategy for different degrees of overlap, avoiding content duplication and clutter in overlapping areas, ensuring continuous and clear content display, and further improving the automatic adaptability of screen layouts to suit application scenarios with overlapping layouts.

[0089] In one possible implementation, the content display method can be flexibly determined based on the size of the overlapping area. Specifically: when the proportion of the overlapping area to the physical area of ​​any screen node participating in the overlap is less than or equal to a first area threshold (e.g., 10%), a complete display method is adopted, that is, each screen node participating in the overlap fully displays the content of its corresponding playback area, and the content of the overlapping area is displayed by both screen nodes simultaneously to ensure content continuity; when the proportion of the overlapping area to the physical area of ​​any screen node participating in the overlap is greater than the first area threshold and less than or equal to a second area threshold (e.g., 50%), a complementary display method is adopted, that is, the content of the overlapping area is split, and each screen node participating in the overlap displays different parts of the content in the overlapping area to avoid content duplication and ensure that the content of the overlapping area is complete and without redundancy; when the proportion of the overlapping area to the physical area of ​​any screen node participating in the overlap is greater than the second area threshold, a priority display method is adopted, that is, based on the comprehensive weight of the screen nodes participating in the overlap, the screen node with the higher comprehensive weight is selected to display the content of the overlapping area, and the screen node with the lower comprehensive weight does not display the content of the overlapping area to avoid screen chaos caused by content overlap.

[0090] D3: Send the playback area information and its corresponding content display method to the target screen node, so that the target screen node can extract the content to be played according to the playback area information and process the overlapping area according to the content display method; the target screen node is the screen node participating in the overlapping area.

[0091] After the master node determines the content display method for each overlapping area, it integrates the corresponding playback area information and content display method for each target screen node and sends it to the corresponding target screen node via TCP unicast. Upon receiving the information, the target screen node parses the playback area information and content display method, extracts the corresponding area segment from the content to be played based on the playback area information, and then processes the overlapping area according to the content display method: if it is a complete display method, the extracted content is displayed directly, and the overlapping area is displayed normally; if it is a complementary display method, the portion of the content allocated to it in the overlapping area is displayed according to the splitting rules synchronized by the master node; if it is a priority display method, the content of the overlapping area is shown or hidden according to the instructions of the master node, ensuring that the content display of the overlapping area conforms to the preset strategy.

[0092] In this embodiment, the overlapping area processing mechanism enables the video wall system to effectively cope with complex scenarios of screen overlap. By quantifying the overlapping area and setting preset display rules, the processing method of overlapping content is automatically determined, thereby ensuring that multiple screens can present a coordinated visual effect in the overlapping area.

[0093] As one possible implementation of this application, the playback area information includes starting coordinates, area size, actual display area, and centering offset. Figure 4 Another specific implementation flow of step S104 in the distributed video wall intelligent control method provided in the embodiments of this application is shown below: E1: When the screen nodes are arranged in a regular matrix, the content to be played is equally divided according to the number of rows and columns of the regular matrix to obtain content sub-regions that correspond one-to-one with the screen nodes.

[0094] A regular matrix is ​​a layout in which all screen nodes are neatly arranged with a fixed number of rows and columns, and the physical size and spacing of each screen node are consistent. A content sub-region is an independent segment obtained by equally dividing the content to be played.

[0095] In one possible implementation, the number of rows m and columns n of the rule matrix are determined, and the width of the content to be played is... The height is Width of each content sub-region ,high After segmentation, m×n content sub-regions of completely equal size are obtained, each sub-region corresponding to a screen node. By equally dividing the content to be played according to the number of rows and columns of the rule matrix, the content sub-regions corresponding to each screen node can be quickly obtained, adapting to the rule matrix layout.

[0096] E2: Based on the row and column index of each screen node in the rule matrix, determine the starting coordinates and area size of the corresponding content sub-region in the content to be played.

[0097] Row and column indices refer to the position identifier of each screen node in the rule matrix, including the row index. and column indexes row index Used to identify the row position of a screen node in the rule matrix (values ​​start from 0 or 1 and increase sequentially), column index. Used to identify the column position of a screen node in the rule matrix (values ​​start from 0 or 1 and increase sequentially). The starting coordinates include the starting X coordinate and the starting Y coordinate, where the starting X coordinate is: Starting Y coordinate: .

[0098] By matching content sub-regions using row and column indexes, the playback area of ​​each screen node within the content to be played can be quickly determined. This ensures that, under a rule matrix layout, the content to be played can be evenly distributed to each screen node, enabling rapid adaptation to the rule layout and improving the accuracy and efficiency of playback area determination.

[0099] E3: Calculate the actual display area corresponding to each screen node based on the screen node's own resolution and the determined area size.

[0100] The screen node's own resolution refers to the display resolution supported by the hardware of each screen node, including the screen width resolution and the screen height resolution; the actual display area refers to the area of ​​the screen node that is actually used to display the content segment to be played at its own resolution. Its size must be adapted to the screen node's own resolution to avoid content stretching or distortion.

[0101] In one possible implementation, for each screen node, let its own resolution be... The corresponding content sub-region size is Calculate the scaling factor in the X direction: Scaling ratio in the Y direction: To maintain the aspect ratio of the content, the minimum scaling factor is used as the actual scaling factor. ; Calculate the width of the actual display area: The actual height of the display area: .

[0102] E4: Determine the centering offset based on the actual display area's display position on its corresponding screen node.

[0103] The master node determines the position of the actual display area on the screen based on the calculated actual display area size and the screen node's own resolution, typically using center alignment. The centering offset includes horizontal and vertical offsets; where the horizontal offset... Vertical offset: .

[0104] The centering offset represents the offset distance of the actual display area relative to the top left corner of the screen. When a screen node plays content, the actual display area starts to be displayed from this offset position, thus achieving center alignment of the content.

[0105] In this embodiment, the regular layout processing enables the video wall system to quickly complete the equal division and distribution of content under the condition of regular screen arrangement. By calculating the actual display area and determining the centering offset, it ensures that the content can be presented in the correct proportion and position on screens of different resolutions, thus achieving a unified visual experience.

[0106] Step S105: Perform bidirectional network latency measurement with the slave nodes, and calculate the synchronization playback parameters of each slave node based on the measurement results.

[0107] Bidirectional network latency measurement refers to a measurement method in which the master node and each slave node send measurement messages to each other to calculate the network transmission latency between them; synchronous playback parameters are control parameters used to guide slave nodes to perform precise synchronous playback.

[0108] As one possible implementation of this application, the synchronous playback parameters include a target media time, which refers to the playback progress position that the slave node should reach during playback. This time is calculated based on the current media time of the master node, network latency, clock offset, and clock drift compensation, and is used to instruct the slave node to dynamically adjust playback to maintain synchronization with the master node. Figure 5 A specific implementation flow of step S105 in the distributed video wall intelligent control method provided in this application embodiment is shown below: F1: Send the first synchronization message to the slave nodes and record the first transmission time. The first synchronization message is a TCP unicast message sent by the master node to all slave nodes to initiate the synchronization process, such as the Sync_Request message. The first transmission time refers to the instant the master node sends the first synchronization message, the time value recorded by the master node's own clock, denoted as T1. The first synchronization message contains a timestamp sequence number to identify this measurement process, as well as T1. T1 is associated with and stored in association with the identifier of the corresponding slave node.

[0109] F2: Receive the second synchronization message replied by the slave node. The second synchronization message contains the first reception time and the second transmission time recorded by the slave node, and records the second reception time of receiving the second synchronization message.

[0110] The second synchronization message is the response message sent by the slave node to the master node after receiving the first synchronization message. This message is also a TCP unicast message. The second synchronization message includes the slave node's identifier, the first reception time, and the second transmission time. The first reception time is the instant the slave node successfully receives the first synchronization message sent by the master node, recorded by the slave node's own clock, denoted as T2. The second transmission time is the instant the slave node sends the second synchronization message, recorded by the slave node's own clock, denoted as T3. The second reception time is the instant the master node successfully receives the second synchronization message sent by the slave node, recorded by the master node's own clock, denoted as T4.

[0111] F3: Calculate the one-way network delay and clock offset based on the first transmission time, the first reception time, the second transmission time, and the second reception time.

[0112] One-way network latency refers to the time delay of data packets on the one-way transmission path between the master node and the slave node, which reflects the time consumption of network transmission; clock skew refers to the time deviation of the slave node clock relative to the master node clock, that is, the time difference between the slave node clock and the master node clock. A positive value indicates that the slave node clock is faster than the master node clock, and a negative value indicates that the slave node clock is slower than the master node clock.

[0113] In one possible implementation, the one-way network delay is calculated according to the following formula (6). : (6) In one possible implementation, the clock offset is calculated according to the following formula (7). : (7) In one possible implementation, to ensure measurement accuracy, filtering strategies such as multiple measurements and outlier filtering are employed. For example, during the initial stage of establishing a connection between the master and slave nodes, at least five consecutive measurements are performed to eliminate the impact of random fluctuations. A delay threshold is set; measurements exceeding this threshold are considered abnormal and discarded.

[0114] One possible implementation is to use a median algorithm to calculate the final one-way network latency, thus avoiding the impact of extreme values.

[0115] One possible implementation involves predicting future network latency based on historical network latency. Specifically, future network latency is predicted according to the following formula (8). : (8) in, The currently measured network latency, This is the average historical network latency; for example, the average network latency can be obtained from the last 10 calculations. This is a smoothing coefficient, ranging from 0 to 1, used to adjust the weights of the currently measured network latency and the historical network latency.

[0116] F4: Obtain historical synchronization records and determine the clock drift rate based on the synchronization timestamps and clock offsets of multiple historical synchronization processes in the historical synchronization records.

[0117] The historical synchronization record stores the synchronization timestamps of multiple historical synchronization processes and the calculated clock offset. Due to the physical characteristics of the crystal oscillator, the hardware clock may have frequency deviations, causing the clock offset to gradually accumulate and change over time. The clock drift rate represents the change in clock offset per unit time, usually measured in nanoseconds per nanosecond. The closer the clock drift rate is to 0, the more stable the slave node clock is.

[0118] One possible implementation uses a linear regression algorithm to determine the clock drift rate. Specifically, a linear fit is performed on the most recent N synchronization points (e.g., 20) to obtain the fitted line y = a + b × x, where x is the master node synchronization timestamp, y is the clock offset corresponding to x, and b is the clock drift rate.

[0119] By recording historical clock drift rates, we can understand the changing patterns of clock offsets at slave nodes, providing a basis for subsequent calculations of clock drift compensation.

[0120] F5: Calculate the target media time that the slave node should play based on the one-way network delay, the clock offset, and the clock drift compensation amount, wherein the clock drift compensation amount is determined based on the clock drift rate.

[0121] Clock drift compensation is an adjustment amount used to compensate for the deviation of the slave node's hardware clock frequency. It is calculated based on the clock drift rate and the time interval since the last synchronization and is used to offset the time error caused by the accumulation of slave node clock drift.

[0122] In one possible implementation, the target media time is determined according to the following calculation formula (9). : (9) in, This indicates the current media time of the master node, that is, the time point corresponding to the content being played on the master node. This indicates the currently measured one-way network latency. This indicates the current measured clock offset. This represents the amount of clock drift compensation since the last synchronization, used to compensate for the accumulated clock drift since the last synchronization. It is the product of the clock drift rate and the time interval since the last synchronization.

[0123] In this embodiment, the target media time is calculated by one-way network latency, clock offset, and clock drift compensation. This allows for precise adjustment of the playback timing of the slave nodes, offsetting synchronization errors caused by network latency, clock offset, and clock drift. This ensures that the content to be played by the slave nodes and the master nodes is completely synchronized, avoiding issues such as screen misalignment and stuttering, and improving the overall playback effect and synchronization accuracy of the distributed video wall.

[0124] Step S106: Send the corresponding playback area information and synchronization playback parameters to each of the slave nodes, and control the local screen node and each slave node to perform synchronized playback according to the corresponding playback area information and synchronization playback parameters.

[0125] The master node distributes the playback area information and synchronization parameters to the corresponding slave nodes, and uniformly controls all screen nodes to start playback and maintain synchronization during playback.

[0126] As one possible implementation of this application Figure 6 A specific implementation flow of step S106 in the distributed video wall intelligent control method provided in this application embodiment is shown below: G1: Calculate a unified future start time for playback based on the resource loading readiness status of all slave nodes, and send the future start time and synchronization playback parameters to all slave nodes.

[0127] The resource loading ready state refers to the state of a slave node after it has completed loading the content to be played, configuring the playback area, and parsing synchronization parameters. It indicates whether the slave node is ready to start playback. After completing all preparations, the slave node sends a loading ready message to the master node, which uses this message to determine the resource loading ready state of the slave node. The future start playback time is a time set uniformly by the master node, at which all screen nodes (the master node itself and all slave nodes) will begin playing the content to be played. This time is based on the master node's clock and is later than the current time, allowing sufficient time for all slave nodes to complete final preparations and ensuring a unified start.

[0128] In one possible implementation, the future start time of playback is the sum of the current system time and a preset buffer time. The preset buffer time can be configured according to the actual system performance to avoid some slave nodes failing to receive playback instructions in a timely manner due to network latency.

[0129] In this embodiment, the future playback start time is determined based on the resource loading readiness status of all slave nodes. This ensures that all slave nodes are ready for playback before starting uniformly, avoiding playback abnormalities caused by some slave nodes not completing loading. Sending the future playback start time and synchronization playback parameters to the slave nodes allows all slave nodes to clearly understand the playback start time and their own calibration benchmark, ensuring the synchronization of the initial playback.

[0130] G2: During playback, periodically broadcast synchronization messages, which include the current media time of this screen node and the updated synchronization playback parameters.

[0131] The synchronization message refers to the message sent by the master node to calibrate the playback status of the slave nodes. This synchronization message contains the current media time of the master node and the updated synchronization playback parameters. The current media time refers to the time point corresponding to the content to be played on the master node during playback. The updated synchronization playback parameters are parameters dynamically adjusted by the master node based on its own playback status, network fluctuations, and its own clock drift, etc., to correct the synchronization deviation of the slave nodes.

[0132] In this embodiment, during the playback phase, the master node continuously sends synchronization messages to all slave nodes according to a preset broadcast period. The broadcast period can be configured according to the synchronization accuracy requirements, for example, it can be set to 100ms-200ms. By periodically broadcasting synchronization messages, the master node's playback status and updated synchronization parameters can be fed back to all slave nodes in real time, solving the synchronization deviation problem caused by network fluctuations and clock drift during playback. By dynamically updating the synchronization playback parameters, slave nodes can adjust their playback timing in a timely manner, ensuring that the master and slave nodes remain synchronized throughout the entire playback process, avoiding the accumulation of synchronization deviations, and improving the stability and accuracy of synchronized playback.

[0133] In one possible implementation, when the screen node acts as a slave node, it calculates the target media time it should play based on the received synchronization message, and compares the target media time with the current actual playback time to obtain a deviation value. When the deviation value is less than a first threshold, a preset playback rate is maintained. When the deviation value is greater than or equal to the first threshold and less than a second threshold, the playback rate is adjusted by a first adjustment range. When the deviation value is greater than or equal to the second threshold and less than a third threshold, the playback rate is adjusted by a second adjustment range greater than the first adjustment range. When the deviation value is greater than or equal to the third threshold, it directly jumps to the playback position corresponding to the target media time. The first threshold, the second threshold, and the adjustment range can be adaptively configured according to the actual application scenario. The slave node calculates the deviation value by receiving the synchronization message and performs different adjustment operations according to the degree of deviation, which can correct the synchronization deviation between itself and the master node in real time and avoid the accumulation of deviation. At the same time, the hierarchical adjustment method ensures both smooth playback when the deviation is small and fast synchronization when the deviation is large, further improving the accuracy and stability of synchronized playback, ensuring that the master and slave node screens are completely synchronized throughout the playback process, and improving the overall display effect of the distributed video wall.

[0134] In one embodiment, the overall workflow of the distributed video wall intelligent control method is as follows: After each screen node starts, it first enters the election phase, discovering each other by broadcasting a discovery message containing a comprehensive weight and generation number. Based on the backoff mechanism and generation number comparison, the node with the optimal comprehensive weight is dynamically determined as the master node, and the remaining nodes automatically become slave nodes. After the master node is determined, the physical layout information of all screen nodes is collected, the global bounding box is calculated according to the regular or irregular arrangement, and the playback area information corresponding to the content to be played is mapped to each screen node. Subsequently, the master node and each slave node perform bidirectional network latency measurement, obtain the one-way network latency and clock offset, and determine the clock drift rate based on historical synchronization data, thereby calculating the synchronous playback parameters including the target media time. After confirming the resources of all slave nodes... Once loaded and ready, the master node uniformly sets the future start time for playback, distributes playback area information and synchronization parameters to each slave node, and controls all screen nodes to start playback synchronously. During playback, the master node periodically broadcasts synchronization messages containing its current media time and updated synchronization parameters. Slave nodes calculate the deviation from the target media time in real time based on the synchronization messages, and adjust the playback rate or directly jump to the target position according to the magnitude of the deviation to maintain long-term accurate synchronization. At the same time, the system continuously monitors the network status and node operation status. When it detects that the master node heartbeat timeout, master node performance degradation, or slave node failure, it triggers re-election or layout recalculation. After the network partition is restored, it resolves multi-master conflicts by comparing generation numbers, thereby achieving intelligent control of a distributed video wall with high reliability, strong adaptability, and high-precision synchronization.

[0135] As can be seen from the above, in this embodiment, by calculating the comprehensive weight of the screen node based on the node performance parameters and broadcasting a discovery message containing the comprehensive weight, each screen node can clearly obtain the performance status of each other. Then, based on the comprehensive weight of each node, the master node and slave nodes are reasonably determined, avoiding control disorder caused by unreasonable master node election. This effectively improves the reliability of intelligent control of distributed video wall screen nodes. Once the screen node is determined to be the master node, by obtaining the physical layout information of all screen nodes and determining the corresponding playback area information of each screen node in the content to be played, it can automatically adapt to various layout forms of screen nodes in different scenarios. There is no need to manually configure the playback area, significantly improving the automatic adaptation capability to screen layout and ensuring the effective display of the content to be played on each screen node. The master node and slave nodes perform bidirectional network latency measurement, and calculate the synchronous playback parameters of each slave node based on the measurement results. Then, the corresponding playback area information and synchronous playback parameters are sent to each slave node to control the coordinated playback of all screen nodes. This effectively compensates for the network latency differences between screen nodes, achieving high-precision synchronous playback of each screen node, thereby improving the overall display effect of the distributed video wall and ensuring stable and efficient system operation.

[0136] It should be understood that the sequence number of each step in the above embodiments does not imply the order of execution. The execution order of each 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.

[0137] Corresponding to the distributed video wall intelligent control method described in the above embodiments, Figure 7 The diagram shows a structural block diagram of a distributed video wall intelligent control device provided in an embodiment of this application. For ease of explanation, only the parts related to the embodiments of this application are shown.

[0138] Reference Figure 7 This distributed video wall intelligent control device is applied to any screen node among multiple screen nodes of the video wall, and includes: a discovery message broadcasting unit 71, an election unit 72, a layout information acquisition unit 73, a region determination unit 74, a delay synchronization unit 75, and an intelligent control unit 76, wherein: Discovery message broadcasting unit 71 is used to calculate the comprehensive weight of the screen node based on the node performance parameters, and broadcast a discovery message containing the comprehensive weight; Election unit 72 is used to determine whether the current screen node is a master node or a slave node based on the discovery message carrying the comprehensive weight broadcast by other screen nodes. The layout information acquisition unit 73 is used to acquire the physical layout information of all screen nodes if the current screen node is determined to be the main node. The region determination unit 74 is used to determine the playback region information corresponding to all screen nodes in the content to be played based on the physical layout information. The delay synchronization unit 75 is used to perform bidirectional network delay measurement with the slave nodes and calculate the synchronization playback parameters of each slave node based on the measurement results. The intelligent control unit 76 is used to send the corresponding playback area information and the synchronization playback parameters to each of the slave nodes, and to control the screen node and each slave node to play synchronously according to the corresponding playback area information and the synchronization playback parameters.

[0139] As one possible implementation of this application, the election unit 72 is specifically used for: Collect discovery messages broadcast by other screen nodes carrying their comprehensive weights within the preset discovery period, and record the maximum comprehensive weight received. After the preset detection period ends, the backoff time is calculated based on the ratio of the comprehensive weight of this screen node to the recorded maximum comprehensive weight, and the backoff timer is started based on the backoff time. If a master control declaration message broadcast by another screen node is received before the backoff timer expires, the backoff timer is turned off, this screen node is determined to be a slave node, and a connection is established with the other screen node that sent the master control declaration message; If the backoff timer times out and no valid master declaration message is received, the screen node is determined to be the master node, and a master declaration message is broadcast.

[0140] As one possible implementation of this application, the discovery message and the master control declaration message further include a generation number, which is used to identify the time order in which the master nodes are generated; the election unit 72 is further specifically used for: When collecting discovery messages broadcast by other screen nodes during the preset discovery period, the highest generation number received is also recorded. If, before the backoff timer expires, a master control declaration message containing a generation number is received broadcast by another screen node, and the generation number in the master control declaration message is greater than or equal to the highest generation number recorded by this screen node, then the backoff timer is turned off, and this screen node is determined to be a slave node. If the backoff timer times out and no valid master declaration message is received, the screen node is determined to be the master node, the recorded highest generation number is incremented by one to determine the latest generation number of the screen node, and the master declaration message is broadcast.

[0141] As one possible implementation of this application, the election unit 72 is further configured to: When this screen node is determined to be the master node, it periodically sends heartbeat information to each slave node; When this screen node acts as a slave node and receives heartbeat messages or master control declaration messages from multiple master nodes, it compares the generation number carried in the heartbeat message or the master control declaration message and selects the master node with the highest generation number as the master node to which this screen node is connected. If the generation numbers are the same, compare the comprehensive weights carried in the heartbeat message or the master control declaration message, and select the master node with the highest comprehensive weight as the master node connected to this screen node. When this screen node acts as a master node and receives a master control declaration message from another master node containing a higher generation number or a higher overall weight for the same generation number, this screen node becomes a slave node.

[0142] As one possible implementation of this application, the physical layout information includes the position coordinates and physical dimensions of each screen node in the physical coordinate system, and the playback area information includes the starting coordinates and area dimensions; the area determination unit 74 is specifically used for: Calculate the global bounding box that can surround all screen nodes based on the position coordinates and physical dimensions of all screen nodes; For each screen node, its starting coordinates and region size in the content to be played are calculated based on its relative position and relative size within the global bounding box. The relative position is determined based on the position coordinates and the boundary of the global bounding box, and the relative size is the physical size.

[0143] As one possible implementation of this application, the distributed video wall intelligent control device further includes an overlap processing unit, used for: When this screen node is determined to be the main node and two or more screen nodes are detected to have overlapping areas, the overlapping area of ​​the overlapping areas is calculated. Based on the overlapping area, determine the content display method of the overlapping area; The playback area information and its corresponding content display method are sent to the target screen node so that the target screen node can extract the content to be played according to the playback area information and process the overlapping area according to the content display method. The target screen node is the screen node that participates in the overlapping area.

[0144] As one possible implementation of this application, the playback area information includes starting coordinates, area size, actual display area, and centering offset; the area determination unit 74 is further specifically used for: When the screen nodes are arranged in a regular matrix, the content to be played is divided equally according to the number of rows and columns of the regular matrix to obtain content sub-regions that correspond one-to-one with the screen nodes. Based on the row and column indices of each screen node in the rule matrix, determine the starting coordinates and area size of the corresponding content sub-region in the content to be played; Calculate the actual display area corresponding to each screen node based on its own resolution and the determined area size; The centering offset is determined based on the actual display area's position on its corresponding screen node.

[0145] As one possible implementation of this application, the synchronized playback parameters include the target media time; the delay synchronization unit 75 is specifically used for: Send the first synchronization message to the slave node and record the first sending time; The slave node receives a second synchronization message in response, the second synchronization message containing the first reception time and the second transmission time recorded by the slave node, and records the second reception time of receiving the second synchronization message; Calculate the one-way network delay and clock offset based on the first transmission time, the first reception time, the second transmission time, and the second reception time; Obtain historical synchronization records, and determine the clock drift rate based on the synchronization timestamps and clock offsets of multiple historical synchronization processes in the historical synchronization records; The target media time that the slave node should play is calculated based on the one-way network latency, the clock offset, and the clock drift compensation amount, wherein the clock drift compensation amount is determined based on the clock drift rate.

[0146] As one possible implementation of this application, the intelligent control unit is specifically used for: Based on the resource loading readiness status of all slave nodes, calculate a unified future start time for playback, and send the future start time and synchronization playback parameters to all slave nodes; During playback, synchronization messages are broadcast periodically, including the current media time of this screen node and the updated synchronization playback parameters.

[0147] As one possible implementation of this application, the distributed video wall intelligent control device further includes a rate adjustment unit, used for: When this screen node acts as a slave node, it calculates the target media time that it should play based on the received synchronization message, and compares the target media time with the current actual playback time to obtain the deviation value; When the deviation value is less than the first threshold, the preset playback rate is maintained; When the deviation value is greater than or equal to the first threshold and less than the second threshold, the playback rate is adjusted by the first adjustment range; When the deviation value is greater than or equal to the second threshold and less than the third threshold, the playback rate is adjusted by a second adjustment range greater than the first adjustment range. When the deviation value is greater than or equal to the third threshold, the playback position corresponding to the target media time is directly jumped to.

[0148] As can be seen from the above, in this embodiment, by calculating the comprehensive weight of the screen node based on the node performance parameters and broadcasting a discovery message containing the comprehensive weight, each screen node can clearly obtain the performance status of each other. Then, based on the comprehensive weight of each node, the master node and slave nodes are reasonably determined, avoiding control disorder caused by unreasonable master node election. This effectively improves the reliability of intelligent control of distributed video wall screen nodes. Once the screen node is determined to be the master node, by obtaining the physical layout information of all screen nodes and determining the corresponding playback area information of each screen node in the content to be played, it can automatically adapt to various layout forms of screen nodes in different scenarios. There is no need to manually configure the playback area, significantly improving the automatic adaptation capability to screen layout and ensuring the effective display of the content to be played on each screen node. The master node and slave nodes perform bidirectional network latency measurement, and calculate the synchronous playback parameters of each slave node based on the measurement results. Then, the corresponding playback area information and synchronous playback parameters are sent to each slave node to control the coordinated playback of all screen nodes. This effectively compensates for the network latency differences between screen nodes, achieving high-precision synchronous playback of each screen node, thereby improving the overall display effect of the distributed video wall and ensuring stable and efficient system operation.

[0149] It should be noted that the information interaction and execution process between the above-mentioned devices / units are based on the same concept as the method embodiments of this application. For details on their specific functions and technical effects, please refer to the method embodiments section, and they will not be repeated here.

[0150] This application embodiment also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements... Figures 1 to 6 The steps of any distributed video wall intelligent control method are represented.

[0151] This application embodiment also provides a terminal device, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements... Figures 1 to 6 The steps of any distributed video wall intelligent control method are represented.

[0152] This application also provides a computer program product that, when run on a terminal device, causes the terminal device to execute the implementation of... Figures 1 to 6The steps of any distributed video wall intelligent control method are represented.

[0153] Figure 8 This is a schematic diagram of a terminal device provided in an embodiment of this application. For example... Figure 8 As shown, the terminal device 8 in this embodiment includes: a processor 80, a memory 81, and a computer program 82 stored in the memory 81 and executable on the processor 80. When the processor 80 executes the computer program 82, it implements the steps in the various embodiments of the distributed video wall intelligent control method described above, for example... Figure 1 Steps S101 to S106 are shown. Alternatively, when the processor 80 executes the computer program 82, it implements the functions of each module / unit in the above-described device embodiments, for example... Figure 7 The functions of units 71 to 76 are shown.

[0154] For example, the computer program 82 may be divided into one or more modules / units, which are stored in the memory 81 and executed by the processor 80 to complete this application. The one or more modules / units may be a series of computer-readable instruction segments capable of performing a specific function, which describe the execution process of the computer program 82 in the terminal device 8.

[0155] The terminal device 8 may include, but is not limited to, a processor 80 and a memory 81. Those skilled in the art will understand that... Figure 8 This is merely an example of terminal device 8 and does not constitute a limitation on terminal device 8. It may include more or fewer components than shown, or combine certain components, or different components. For example, terminal device 8 may also include input / output devices, network access devices, buses, etc.

[0156] The processor 80 can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor.

[0157] The memory 81 can be an internal storage unit of the terminal device 8, such as a hard disk or memory of the terminal device 8. The memory 81 can also be an external storage device of the terminal device 8, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the terminal device 8. Furthermore, the memory 81 can include both internal and external storage units of the terminal device 8. The memory 81 is used to store the computer program and other programs and data required by the terminal device. The memory 81 can also be used to temporarily store data that has been output or will be output.

[0158] It should be noted that the information interaction and execution process between the above-mentioned devices / units are based on the same concept as the method embodiments of this application. For details on their specific functions and technical effects, please refer to the method embodiments section, and they will not be repeated here.

[0159] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the above-described division of functional units and modules is merely an example. In practical applications, the above functions can be assigned to different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit. Furthermore, the specific names of the functional units and modules are only for easy differentiation and are not intended to limit the scope of protection of this application. The specific working process of the units and modules in the above system can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.

[0160] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, all or part of the processes in the methods of the above embodiments of this application can be implemented by a computer program instructing related hardware. The computer program can be stored in a computer-readable storage medium, and when executed by a processor, it can implement the steps of the various method embodiments described above. The computer program includes computer program code, which can be in the form of source code, object code, executable files, or certain intermediate forms. The computer-readable medium can include at least: any entity or device capable of carrying computer program code to a device / terminal equipment, a recording medium, a computer memory, a read-only memory (ROM), a random access memory (RAM), an electrical carrier signal, a telecommunication signal, and a software distribution medium. Examples include USB flash drives, portable hard drives, magnetic disks, or optical disks. In some jurisdictions, according to legislation and patent practice, computer-readable media cannot be electrical carrier signals or telecommunication signals.

[0161] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0162] The above-described embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application, and should all be included within the protection scope of this application.

Claims

1. A distributed video wall intelligent control method, characterized in that, Applied to any one of the multiple screen nodes in the video wall, including: Calculate the overall weight of the screen node based on the node performance parameters, and broadcast a discovery message containing the overall weight; Based on the discovery messages broadcast by other screen nodes carrying their overall weights, determine whether this screen node is a master node or a slave node. If this screen node is determined to be the master node, then obtain the physical layout information of all screen nodes; Based on the physical layout information, determine the playback area information corresponding to each screen node in the content to be played; Perform bidirectional network latency measurements with the slave nodes and calculate the synchronization playback parameters for each slave node based on the measurement results; The screen node sends its corresponding playback area information and synchronization playback parameters to each of the slave nodes, and controls the screen node and each slave node to play synchronously according to the corresponding playback area information and synchronization playback parameters.

2. The method according to claim 1, characterized in that, The step of determining whether the current screen node is a master node or a slave node based on discovery messages carrying the overall weights broadcast by other screen nodes includes: Collect discovery messages broadcast by other screen nodes carrying their comprehensive weights within the preset discovery period, and record the maximum comprehensive weight received. After the preset detection period ends, the backoff time is calculated based on the ratio of the comprehensive weight of this screen node to the recorded maximum comprehensive weight, and the backoff timer is started based on the backoff time. If a master control declaration message broadcast by another screen node is received before the backoff timer expires, the backoff timer is turned off, this screen node is determined to be a slave node, and a connection is established with the other screen node that sent the master control declaration message; If the backoff timer times out and no valid master declaration message is received, the screen node is determined to be the master node, and a master declaration message is broadcast.

3. The method according to claim 2, characterized in that, The discovery message and the master control declaration message also contain a generation number, which is used to identify the time order in which the master node is generated. The step of determining whether the current screen node is a master node or a slave node based on discovery messages carrying the overall weights broadcast by other screen nodes also includes: When collecting discovery messages broadcast by other screen nodes during the preset discovery period, the highest generation number received is also recorded. If, before the backoff timer expires, a master control declaration message containing a generation number is received broadcast by another screen node, and the generation number in the master control declaration message is greater than or equal to the highest generation number recorded by this screen node, then the backoff timer is turned off, and this screen node is determined to be a slave node. If the backoff timer times out and no valid master declaration message is received, the screen node is determined to be the master node, the recorded highest generation number is incremented by one to determine the latest generation number of the screen node, and the master declaration message is broadcast.

4. The method according to claim 3, characterized in that, The method further includes: When this screen node is determined to be the master node, it periodically sends heartbeat information to each slave node; When this screen node acts as a slave node and receives heartbeat messages or master control declaration messages from multiple master nodes, it compares the generation number carried in the heartbeat message or the master control declaration message and selects the master node with the highest generation number as the master node to which this screen node is connected. If the generation numbers are the same, compare the comprehensive weights carried in the heartbeat message or the master control declaration message, and select the master node with the highest comprehensive weight as the master node connected to this screen node. When this screen node acts as a master node and receives a master control declaration message from another master node containing a higher generation number or a higher overall weight for the same generation number, this screen node becomes a slave node.

5. The method according to claim 1, characterized in that, The physical layout information includes the position coordinates and physical dimensions of each screen node in the physical coordinate system, and the playback area information includes the starting coordinates and area dimensions. The step of determining the playback area information corresponding to all screen nodes in the content to be played based on the physical layout information includes: Calculate the global bounding box that can surround all screen nodes based on the position coordinates and physical dimensions of all screen nodes; For each screen node, its starting coordinates and region size in the content to be played are calculated based on its relative position and relative size within the global bounding box. The relative position is determined based on the position coordinates and the boundary of the global bounding box, and the relative size is the physical size.

6. The method according to claim 1, characterized in that, The method further includes: When this screen node is determined to be the main node and two or more screen nodes are detected to have overlapping areas, the overlapping area of ​​the overlapping areas is calculated. Based on the overlapping area, determine the content display method of the overlapping area; The playback area information and its corresponding content display method are sent to the target screen node so that the target screen node can extract the content to be played according to the playback area information and process the overlapping area according to the content display method. The target screen node is the screen node that participates in the overlapping area.

7. The method according to claim 1, characterized in that, The synchronized playback parameters include the target media time; the bidirectional network latency measurement with the slave nodes, and the calculation of the synchronized playback parameters for each slave node based on the measurement results, includes: Send the first synchronization message to the slave node and record the first sending time; The slave node receives a second synchronization message in response, the second synchronization message containing the first reception time and the second transmission time recorded by the slave node, and records the second reception time of receiving the second synchronization message; Calculate the one-way network delay and clock offset based on the first transmission time, the first reception time, the second transmission time, and the second reception time; Obtain historical synchronization records, and determine the clock drift rate based on the synchronization timestamps and clock offsets of multiple historical synchronization processes in the historical synchronization records; The target media time that the slave node should play is calculated based on the one-way network latency, the clock offset, and the clock drift compensation amount, wherein the clock drift compensation amount is determined based on the clock drift rate.

8. The method according to any one of claims 1 to 7, characterized in that, The control of the screen node and each slave node to synchronize playback according to the corresponding playback area information and the synchronization playback parameters includes: Based on the resource loading readiness status of all slave nodes, calculate a unified future start time for playback, and send the future start time and synchronization playback parameters to all slave nodes; During playback, synchronization messages are broadcast periodically, including the current media time of this screen node and the updated synchronization playback parameters.

9. The method according to claim 8, characterized in that, The method further includes: When this screen node acts as a slave node, it calculates the target media time that it should play based on the received synchronization message, and compares the target media time with the current actual playback time to obtain the deviation value; When the deviation value is less than the first threshold, the preset playback rate is maintained; When the deviation value is greater than or equal to the first threshold and less than the second threshold, the playback rate is adjusted by the first adjustment range; When the deviation value is greater than or equal to the second threshold and less than the third threshold, the playback rate is adjusted by a second adjustment range greater than the first adjustment range. When the deviation value is greater than or equal to the third threshold, the playback position corresponding to the target media time is directly jumped to.

10. A distributed video wall intelligent control device, characterized in that, Applied to any one of the multiple screen nodes in the video wall, including: The discovery message broadcasting unit is used to calculate the comprehensive weight of the screen node based on the node performance parameters and broadcast a discovery message containing the comprehensive weight. The election unit is used to determine whether the current screen node is a master node or a slave node based on the discovery message broadcast by other screen nodes carrying their comprehensive weights. The layout information acquisition unit is used to acquire the physical layout information of all screen nodes if the current screen node is determined to be the main node. The region determination unit is used to determine the playback region information corresponding to all screen nodes in the content to be played based on the physical layout information. The delay synchronization unit is used to perform bidirectional network delay measurement with the slave nodes and calculate the synchronization playback parameters of each slave node based on the measurement results; The intelligent control unit is used to send the corresponding playback area information and the synchronization playback parameters to each of the slave nodes, and to control the screen node and each slave node to play synchronously according to the corresponding playback area information and the synchronization playback parameters.

11. A terminal device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the distributed video wall intelligent control method as described in any one of claims 1 to 10.

12. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by the processor, it implements the distributed video wall intelligent control method as described in any one of claims 1 to 10.