Server Frame Aggregation for Screen Sharing Bandwidth
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Screen sharing applications face issues when participants have differing bandwidth capabilities, leading to lag and inability to view shared screens, and late joiners miss initial shared information due to missing key frames.
Innovation Solution
Implementing frame aggregation by receiving key frames and delta frames, updating and aggregating them on a server, and transmitting the aggregated frames to ensure all participants, including late joiners, receive the current screen state, reducing bandwidth requirements and duplicative data transmission.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the presenter transmits screen data at a high rate (200 kbps), then the screen sharing quality is improved, but viewers with lower bandwidth capabilities (100 kbps) experience lag and cannot view the shared screen
Solution Approach 1:
The screen sharing data stream is segmented into key frames and delta frames. Key frames contain complete screen information, while delta frames contain only incremental changes. This segmentation allows viewers with limited bandwidth to receive and reconstruct screen content more efficiently, resolving the contradiction between high transmission quality and bandwidth constraints.
Solution Approach 2:
Multiple delta frames are aggregated into a single aggregated delta frame that combines all incremental changes. This merging reduces the total number of transmissions required and decreases bandwidth consumption while maintaining complete screen update information, enabling reliable viewing for users with lower bandwidth capabilities.
2Adaptability or versatility
If a late joiner attempts to access an ongoing screen sharing session, then session accessibility is improved, but the late joiner misses initial shared information and cannot view the shared screen
Solution Approach 1:
The server maintains an aggregated current key frame that continuously incorporates all screen updates from key frames and delta frames. This preliminary preparation of aggregated frame data ensures that when a late joiner connects, the complete current screen state is already available for immediate transmission, preventing information loss.
Solution Approach 2:
The server acts as an intermediary that aggregates screen sharing data from the presenter and reconstructs complete screen states for late joiners. By maintaining and managing the aggregated current key frame, the server mediates between the presenter's continuous stream and the late joiner's need for complete screen information, ensuring no initial data is lost.
3Manufacturing precision
If multiple delta frames are transmitted separately to viewers, then screen update accuracy is improved, but bandwidth consumption increases and efficiency decreases
Solution Approach 1:
Multiple separate delta frames are merged into a single aggregated delta frame that contains all incremental screen changes. This combining maintains complete screen update accuracy while reducing the number of individual transmissions, thereby improving data transmission efficiency and reducing bandwidth consumption.
Solution Approach 2:
The aggregated delta frame serves multiple functions simultaneously: it maintains screen update accuracy, reduces transmission overhead, and provides complete screen state information for both ongoing viewers and late joiners. This multi-functionality resolves the contradiction between precision and efficiency.
Data Source
AI summary
In accordance with disclosed embodiments, there are provided methods, systems, and apparatuses for implementing frame aggregation with screen sharing including, for example, means for receiving, at a server, a stream of delta frames from a publishing client as part of a screen sharing session with one or more viewing clients; establishing a FIFO buffer for each of the respective one or more viewing clients on 1:1 basis; queuing a copy of the stream of delta frames into each of the FIFO buffers corresponding to the one or more viewing clients, wherein the stream of delta frames are transmitted from the respective FIFO buffers to the corresponding one or more client viewers; monitoring each of the respective FIFO buffers for each of the one or more viewing clients to determine if two or more delta frames are concurrently queued in any single one of the respective FIFO buffers at any given time; aggregating the two or more delta frames into a single aggregated delta frame; re-queuing the aggregated delta frame; and transmitting the aggregated delta frame to the respective viewing client. Other related embodiments are disclosed.


