RDP Tile Image Classification for Adaptive Codec Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current runtime classification systems for virtual computing systems, such as those using Remote Desktop Protocol (RDP), are limited in their ability to efficiently manage network bandwidth and responsiveness due to their reliance on single codecs and simplistic compression decision criteria, which negatively impact user experience with long codec switching times.

Innovation Solution

Implement a modular system that allows multiple factors to influence compression decisions, including image content, network conditions, and CPU load, by determining the preferred codec for each image tile through a hybrid approach that classifies images and selects appropriate codecs and fidelity settings dynamically.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single codec is used for compression, then device complexity is reduced, but adaptability to different image types and network conditions deteriorates

Engineering Contradiction:
Improvecodec management complexityVSAvoidadaptability to different image types
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system dynamically selects between multiple codecs (H.264, JPEG, PNG) based on real-time classification of image content and network conditions. The codec selection is not static but adapts continuously to changing conditions, resolving the contradiction between using a single simple codec and having multiple adaptive codecs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of codec selection based on image classification results and network conditions. Different codecs are selected for different image types (e.g., H.264 for video, PNG for text), allowing the system to optimize compression for each specific scenario without maintaining a complex fixed structure.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If multiple codecs are maintained simultaneously, then adaptability to different image types improves, but device complexity increases

Engineering Contradiction:
Improveadaptability to different image typesVSAvoidcodec management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments the image processing task by classifying images into different types (text, photograph, video) and assigning appropriate codecs to each segment. This segmentation approach allows multiple codecs to be used efficiently without managing all of them simultaneously for all images, reducing overall complexity while maintaining adaptability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The image classification mechanism acts as an intermediary between the multiple available codecs and the actual compression task. The classifier determines which codec should be used based on image content, simplifying the management complexity by providing a clear selection criterion rather than requiring complex codec management logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If codec switching is implemented, then adaptability to network conditions improves, but responsiveness deteriorates due to switching time

Engineering Contradiction:
Improveadaptability to network conditionsVSAvoidsession responsiveness
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The system performs preliminary classification of image tiles to determine the appropriate codec before actual compression begins. By pre-determining the codec selection based on image content analysis, the system avoids time-consuming codec switching during the compression process itself, maintaining responsiveness while achieving adaptability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system skips the codec switching step by pre-selecting the appropriate codec based on image classification. This allows the compression process to proceed directly with the selected codec without interruption, rushing through what would otherwise be a time-consuming switching operation and maintaining session responsiveness.

Inventive Principle:
Principle #21Skipping (Rushing through)

4Loss of energy

If compression is performed at runtime, then network bandwidth efficiency improves, but processing time increases

Engineering Contradiction:
Improvenetwork bandwidth usageVSAvoidcompression processing time
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The system performs partial classification on image tiles, focusing only on the most critical features needed for codec selection rather than exhaustive analysis. This partial action approach achieves sufficient classification accuracy to enable appropriate codec selection while minimizing the time spent on classification, balancing bandwidth efficiency with processing speed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8189661B2Remote desktop protocol (RDP) tile image classification for improving compression efficiency and quality
Publication Date: 2012.05.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8189661B2 patent drawing
  • US8189661B2 patent drawing
  • US8189661B2 patent drawing

AI summary

Systems, methods and computer readable media are disclosed for improving compression efficiency and quality in a remote session via tile image classification and variable encoding. A server determines a set of codecs that are shared by both the server and a corresponding client. Then, when it receives an image, it determines whether classification of the image is required. Where classification of the image is not required, the server sends the client the image, either uncompressed or compressed with a default codec and default fidelity. Where classification of the image is required, the server classifies the image (e.g. the image comprises either text or photograph), and based on that classification determines a codec with which to encode the image, and a fidelity to use on the encoding. The server performs that encoding with the codec and the fidelity, and then sends this encoded image to the client.