Raster Segment Motion Detection for Thin Client Bandwidth Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing remoting methods for thin clients are inefficient in processing updates to rich user interfaces, leading to suboptimal performance due to high network bandwidth and resource usage when transmitting bitmapped graphics.
Innovation Solution
Implementing a caching mechanism that detects similarities between raster segments in consecutive frames and replaces redundant payloads with motion or cache commands, utilizing a raster segment cache to reduce payload sizes and enhance processing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If bitmapped graphics are transmitted for rich user interface frames, then graphical quality is improved, but network bandwidth usage increases
Solution Approach 1:
The frame is divided into multiple rasters, and each raster is further divided into segments. Only segments containing changed pixels are encoded and transmitted, rather than transmitting the entire frame bitmap. This segmentation allows high graphical quality to be maintained in changed areas while reducing overall network bandwidth usage.
Solution Approach 2:
The invention extracts only the necessary information for frame updates by identifying changed pixels and encoding them as differential values relative to the previous frame. Instead of transmitting complete bitmapped graphics, only the differential segment data is transmitted, significantly reducing network bandwidth consumption while preserving graphical quality.
2Manufacturing precision
If complete frame data is transmitted, then rendering accuracy is improved, but client processing resources increase
Solution Approach 1:
Instead of processing and rendering complete frame data, the client only processes and renders the differential segment data representing changed pixels. This partial action approach maintains rendering accuracy for changed areas while significantly reducing client processing resource consumption.
Solution Approach 2:
The client maintains a copy of the previous frame in memory and applies differential updates to it. This copying mechanism allows the client to reconstruct current frame imagery with high accuracy by combining the previous frame copy with the transmitted differential data, avoiding the need to process complete frame data from scratch.
3Quantity of substance
If differential encoding is applied, then network bandwidth usage is reduced, but encoding complexity increases
Solution Approach 1:
The encoding process is simplified by segmenting the frame into rasters and further into segments. This segmentation allows the encoder to focus only on changed segments, reducing the overall encoding complexity compared to differential encoding of complete frames, while still achieving significant network bandwidth reduction.
Solution Approach 2:
Different encoding approaches are applied to different segments: segments with changes use differential encoding, while unchanged segments are not transmitted at all. This local quality approach optimizes the balance between encoding complexity and network bandwidth usage by applying complex encoding only where necessary.
Data Source
AI summary
Raster segment commands are generated by a delta encoder and are encoded for raster segments detected to have moved in the current frame with respect to a location of the raster segment in a previous frame. Raster segment motion commands are stored in a queue and, when written, copy a raster segment into the current frame from a previous payload or cache. When written from the queue to a payload, raster segment motion commands are applied to a copy of the current frame maintained at the server using a copy of the previous payload sent. When copying a raster segment from a raster segment cache, a raster segment cache command retrieves identified raster segment data from the raster segment cache and copies the raster segment into a particular location in the current frame at the client. The raster segment commands are sent to a client via a payload to copy a raster segment from a previous payload into the current frame at the client or from a raster segment cache to the current frame.


