Network Video Driver Frame Management for Thin Clients
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Thin network clients without instruction-based processing elements face challenges in maintaining visual, video, and multimedia performance under degraded network conditions, leading to issues like frame tearing, irregular frame rates, and missing frames, which degrade the user experience.
Innovation Solution
A display driver operating over a network that manages frame updates by using a local offscreen buffer and remote copy commands to ensure frame integrity and regular frame rates, employing keep-drop patterns to intentionally drop frames when necessary, and utilizing a remote offscreen buffer to maintain seamless video playback.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If thin network clients are designed without instruction-based processing elements to reduce cost and security vulnerability, then manufacturing cost and security vulnerability are reduced, but visual and video performance is degraded under network conditions
Solution Approach 1:
The patent extracts the display driver functionality from the thin client device and relocates it to a remote server. The thin client only contains display hardware without processing elements, while the server handles all driver-level message interpretation and frame buffer management. This extraction allows thin clients to be manufactured without expensive processors while maintaining video performance through server-side processing.
Solution Approach 2:
The patent introduces a frame buffer and display driver as intermediary components between the thin client and the display device. The frame buffer stores video data on the server, and the display driver manages the transfer and rendering of this data. This intermediary architecture allows the thin client to function without processing elements while the server handles all complex video processing tasks.
2Productivity
If frame updates are transmitted over the network without buffering, then network bandwidth is utilized efficiently, but frame tearing and irregular frame rates occur under degraded network conditions
Solution Approach 1:
The patent implements preliminary action by pre-rendering complete video frames in the frame buffer before transmission. The display driver waits until an entire frame is ready and then transmits it atomically over the network. This preliminary preparation ensures that frames are complete and intact before being sent, preventing frame tearing even when network conditions are degraded.
Solution Approach 2:
The patent employs periodic action through a frame rate controller that manages the transmission of frames at regular intervals. The system uses keep-drop patterns to intentionally skip certain frames when network conditions are poor, maintaining a steady, predictable frame rate. This periodic transmission schedule ensures regular frame rates and prevents the irregularity that would occur with continuous transmission attempts.
3Reliability
If all video frames are transmitted to maintain high frame rates, then visual performance is improved, but network bandwidth consumption increases and causes degradation under poor network conditions
Solution Approach 1:
The patent applies partial action by selectively transmitting only certain frames rather than all frames. The frame rate controller implements keep-drop patterns where some frames are intentionally discarded (dropped) to reduce network bandwidth consumption. This partial transmission strategy maintains acceptable visual performance while significantly reducing the network load compared to transmitting every frame.
Data Source
AI summary
It is determined at a display driver level that a video is being played. A frame processing rate at a local frame buffer is measured, wherein the frame processing rate is dependent on a performance condition. A video frame is dropped from the local frame buffer based at least in part on the frame processing rate. Frames are output from the local frame buffer for video playback.


